diff -uraN qt-x11-free-3.3.8b.orig/configure qt-x11-free-3.3.8b/configure
--- qt-x11-free-3.3.8b.orig/configure	2008-01-15 19:09:15.000000000 +0000
+++ qt-x11-free-3.3.8b/configure	2008-09-07 10:40:34.979331973 +0000
@@ -1434,6 +1434,9 @@
 	    - Also available for Linux: linux-kcc linux-icc linux-cxx
 	"
 	;;
+     GNU/kOpenSolaris:*)
+	PLATFORM=kopensolaris-gnu-g++
+	;;
      SunOS:5*)
 	#PLATFORM=solaris-g++
 	PLATFORM=solaris-cc
diff -uraN qt-x11-free-3.3.8b.orig/include/qglobal.h qt-x11-free-3.3.8b/include/qglobal.h
--- qt-x11-free-3.3.8b.orig/include/qglobal.h	2008-01-15 19:09:13.000000000 +0000
+++ qt-x11-free-3.3.8b/include/qglobal.h	2008-09-07 10:43:19.989122178 +0000
@@ -107,7 +107,7 @@
 #  define Q_OS_WIN32
 #elif defined(__MWERKS__) && defined(__INTEL__)
 #  define Q_OS_WIN32
-#elif defined(__sun) || defined(sun)
+#elif defined(__sun) || defined(sun) || defined(__OpenSolaris_kernel__)
 #  define Q_OS_SOLARIS
 #elif defined(hpux) || defined(__hpux)
 #  define Q_OS_HPUX
diff -uraN qt-x11-free-3.3.8b.orig/mkspecs/kopensolaris-gnu-g++/qmake.conf qt-x11-free-3.3.8b/mkspecs/kopensolaris-gnu-g++/qmake.conf
--- qt-x11-free-3.3.8b.orig/mkspecs/kopensolaris-gnu-g++/qmake.conf	1970-01-01 00:00:00.000000000 +0000
+++ qt-x11-free-3.3.8b/mkspecs/kopensolaris-gnu-g++/qmake.conf	2008-09-07 10:41:57.866290179 +0000
@@ -0,0 +1,89 @@
+#
+#
+# qmake configuration for kopensolaris-gnu-g++
+#
+
+MAKEFILE_GENERATOR	= UNIX
+TEMPLATE		= app
+CONFIG			+= qt warn_on release incremental link_prl
+QMAKE_INCREMENTAL_STYLE = sublib
+
+QMAKE_CC		= gcc
+QMAKE_LEX		= flex
+QMAKE_LEXFLAGS		= 
+QMAKE_YACC		= yacc
+QMAKE_YACCFLAGS		= -d
+QMAKE_YACCFLAGS_MANGLE  = -p $base -b $base
+QMAKE_YACC_HEADER       = $base.tab.h
+QMAKE_YACC_SOURCE       = $base.tab.c
+QMAKE_CFLAGS		= -pipe
+QMAKE_CFLAGS_DEPS	= -M
+QMAKE_CFLAGS_WARN_ON	= -Wall -W
+QMAKE_CFLAGS_WARN_OFF	= -w
+QMAKE_CFLAGS_RELEASE	= -O2
+QMAKE_CFLAGS_DEBUG	= -g
+QMAKE_CFLAGS_SHLIB	= -fPIC
+QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_THREAD	= -D_REENTRANT
+
+QMAKE_CXX		= g++
+QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB	= $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_YACC	= $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD	= $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR		=
+QMAKE_LIBDIR		=
+QMAKE_INCDIR_X11	= /usr/X11R6/include
+QMAKE_LIBDIR_X11	= /usr/X11R6/lib
+QMAKE_INCDIR_QT		= $(QTDIR)/include
+QMAKE_LIBDIR_QT		= $(QTDIR)/lib
+QMAKE_INCDIR_OPENGL	= /usr/X11R6/include
+QMAKE_LIBDIR_OPENGL	= /usr/X11R6/lib
+
+QMAKE_LINK		= g++
+QMAKE_LINK_SHLIB	= g++
+QMAKE_LFLAGS		=
+QMAKE_LFLAGS_RELEASE	=
+QMAKE_LFLAGS_DEBUG	=
+QMAKE_LFLAGS_SHLIB	= -shared
+QMAKE_LFLAGS_PLUGIN	= $$QMAKE_LFLAGS_SHLIB
+QMAKE_LFLAGS_SONAME	= -Wl,-soname,
+QMAKE_LFLAGS_THREAD	=
+QMAKE_RPATH		= -Wl,-rpath,
+
+QMAKE_LIBS		=
+QMAKE_LIBS_DYNLOAD	= -ldl
+QMAKE_LIBS_X11		= -lXext -lX11 -lm
+QMAKE_LIBS_X11SM	= -lSM -lICE
+QMAKE_LIBS_NIS		= -lnsl
+QMAKE_LIBS_QT		= -lqt
+QMAKE_LIBS_QT_THREAD	= -lqt-mt
+QMAKE_LIBS_OPENGL	= -lGLU -lGL -lXmu
+QMAKE_LIBS_OPENGL_QT	= -lGL -lXmu
+QMAKE_LIBS_THREAD	= -lpthread
+
+QMAKE_MOC		= $(QTDIR)/bin/moc
+QMAKE_UIC		= $(QTDIR)/bin/uic
+
+QMAKE_AR		= ar cqs
+QMAKE_RANLIB		=
+
+QMAKE_TAR		= tar -cf
+QMAKE_GZIP		= gzip -9f
+
+QMAKE_COPY		= cp -f
+QMAKE_COPY_FILE         = $(COPY)
+QMAKE_COPY_DIR          = $(COPY) -r
+QMAKE_MOVE		= mv -f
+QMAKE_DEL_FILE		= rm -f
+QMAKE_DEL_DIR		= rmdir
+QMAKE_STRIP             = strip
+QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
+QMAKE_CHK_DIR_EXISTS	= test -d
+QMAKE_MKDIR		= mkdir -p
diff -uraN qt-x11-free-3.3.8b.orig/mkspecs/kopensolaris-gnu-g++/qplatformdefs.h qt-x11-free-3.3.8b/mkspecs/kopensolaris-gnu-g++/qplatformdefs.h
--- qt-x11-free-3.3.8b.orig/mkspecs/kopensolaris-gnu-g++/qplatformdefs.h	1970-01-01 00:00:00.000000000 +0000
+++ qt-x11-free-3.3.8b/mkspecs/kopensolaris-gnu-g++/qplatformdefs.h	2008-01-15 19:09:16.000000000 +0000
@@ -0,0 +1,106 @@
+#ifndef QPLATFORMDEFS_H
+#define QPLATFORMDEFS_H
+
+// Get Qt defines/settings
+
+#include "qglobal.h"
+
+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
+
+// DNS system header files are a mess!
+// <resolv.h> includes <arpa/nameser.h>. <arpa/nameser.h> is using
+// 'u_char' and includes <sys/types.h>.  Now the problem is that
+// <sys/types.h> defines 'u_char' only if __USE_BSD is defined.
+// __USE_BSD is defined in <features.h> if _BSD_SOURCE is defined.
+#ifndef _BSD_SOURCE
+#  define _BSD_SOURCE
+#endif
+
+// 1) need to reset default environment if _BSD_SOURCE is defined
+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
+// 3) it seems older glibc need this to include the X/Open stuff
+#ifndef _GNU_SOURCE
+#  define _GNU_SOURCE
+#endif
+
+#include <unistd.h>
+
+
+// We are hot - unistd.h should have turned on the specific APIs we requested
+
+
+#ifdef QT_THREAD_SUPPORT
+#include <pthread.h>
+#endif
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <pwd.h>
+#include <signal.h>
+#include <dlfcn.h>
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/ipc.h>
+#include <sys/time.h>
+#include <sys/shm.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+// DNS header files are not fully covered by X/Open specifications.
+// In particular nothing is said about res_* :/
+// Header files <netinet/in.h> and <arpa/nameser.h> are not included
+// by <resolv.h> on older versions of the GNU C library. Note that
+// <arpa/nameser.h> must be included before <resolv.h>.
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+
+#if !defined(QT_NO_COMPAT)
+#define QT_STATBUF		struct stat
+#define QT_STATBUF4TSTAT	struct stat
+#define QT_STAT			::stat
+#define QT_FSTAT		::fstat
+#define QT_STAT_REG		S_IFREG
+#define QT_STAT_DIR		S_IFDIR
+#define QT_STAT_MASK		S_IFMT
+#define QT_STAT_LNK		S_IFLNK
+#define QT_FILENO		fileno
+#define QT_OPEN			::open
+#define QT_CLOSE		::close
+#define QT_LSEEK		::lseek
+#define QT_READ			::read
+#define QT_WRITE		::write
+#define QT_ACCESS		::access
+#define QT_GETCWD		::getcwd
+#define QT_CHDIR		::chdir
+#define QT_MKDIR		::mkdir
+#define QT_RMDIR		::rmdir
+#define QT_OPEN_RDONLY		O_RDONLY
+#define QT_OPEN_WRONLY		O_WRONLY
+#define QT_OPEN_RDWR		O_RDWR
+#define QT_OPEN_CREAT		O_CREAT
+#define QT_OPEN_TRUNC		O_TRUNC
+#define QT_OPEN_APPEND		O_APPEND
+#endif
+
+#define QT_SIGNAL_RETTYPE	void
+#define QT_SIGNAL_ARGS		int
+#define QT_SIGNAL_IGNORE	SIG_IGN
+
+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
+#define QT_SOCKLEN_T		socklen_t
+#else
+#define QT_SOCKLEN_T		int
+#endif
+
+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
+#define QT_SNPRINTF		::snprintf
+#define QT_VSNPRINTF		::vsnprintf
+#endif
+
+
+#endif // QPLATFORMDEFS_H
diff -uraN qt-x11-free-3.3.8b.orig/src/tools/qglobal.h qt-x11-free-3.3.8b/src/tools/qglobal.h
--- qt-x11-free-3.3.8b.orig/src/tools/qglobal.h	2008-01-15 19:09:13.000000000 +0000
+++ qt-x11-free-3.3.8b/src/tools/qglobal.h	2008-09-07 10:43:19.989122178 +0000
@@ -107,7 +107,7 @@
 #  define Q_OS_WIN32
 #elif defined(__MWERKS__) && defined(__INTEL__)
 #  define Q_OS_WIN32
-#elif defined(__sun) || defined(sun)
+#elif defined(__sun) || defined(sun) || defined(__OpenSolaris_kernel__)
 #  define Q_OS_SOLARIS
 #elif defined(hpux) || defined(__hpux)
 #  define Q_OS_HPUX
