diff -ur qt-mac-free-3.3.8/config.tests/mac/mac_version.test qt-mac-free-3.3.8-patch/config.tests/mac/mac_version.test
--- qt-mac-free-3.3.8/config.tests/mac/mac_version.test	2004-04-23 09:40:40.000000000 -0700
+++ qt-mac-free-3.3.8-patch/config.tests/mac/mac_version.test	2008-02-29 15:51:21.000000000 -0800
@@ -21,7 +21,7 @@
 echo "#include <stdio.h>" >>$TSTFILE
 echo "int main() {" >>$TSTFILE
 echo "  long gestalt_version;" >>$TSTFILE
-echo "  fprintf(stdout, \"%d\\n\", (Gestalt(gestaltSystemVersion, &gestalt_version) == noErr) ? gestalt_version : 0);" >>$TSTFILE
+/bin/echo "  fprintf(stdout, \"%d\\n\", (Gestalt(gestaltSystemVersion, &gestalt_version) == noErr) ? gestalt_version : 0);" >>$TSTFILE
 echo "  return 1;" >>$TSTFILE
 echo "}" >>$TSTFILE
 
diff -ur qt-mac-free-3.3.8/include/qglobal.h qt-mac-free-3.3.8-patch/include/qglobal.h
--- qt-mac-free-3.3.8/include/qglobal.h	2007-02-02 06:01:04.000000000 -0800
+++ qt-mac-free-3.3.8-patch/include/qglobal.h	2008-02-29 15:51:21.000000000 -0800
@@ -183,7 +183,10 @@
 #  if !defined(MAC_OS_X_VERSION_10_4)
 #       define MAC_OS_X_VERSION_10_4 MAC_OS_X_VERSION_10_3 + 1
 #  endif
-#  if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_4)
+#  if !defined(MAC_OS_X_VERSION_10_5)
+#       define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1
+#  endif
+#  if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5)
 #    error "This version of Mac OS X is unsupported"
 #  endif
 #endif
diff -ur qt-mac-free-3.3.8/include/qt_mac.h qt-mac-free-3.3.8-patch/include/qt_mac.h
--- qt-mac-free-3.3.8/include/qt_mac.h	2007-02-02 06:01:13.000000000 -0800
+++ qt-mac-free-3.3.8-patch/include/qt_mac.h	2008-02-29 15:51:21.000000000 -0800
@@ -54,7 +54,7 @@
 # define QMAC_DEFAULT_STYLE "QMacStyle" //DefaultStyle
 #endif
 
-#if !defined(Q_WS_MACX) || QT_MACOSX_VERSION < 0x1020 || QT_MACOSX_VERSION >= 0x1030
+#if !defined(Q_WS_MACX) || QT_MACOSX_VERSION < 0x1020 || (QT_MACOSX_VERSION >= 0x1030 && QT_MACOSX_VERSION <= 0x1040)
 # define QMAC_NO_FAKECURSOR
 #endif
 
diff -ur qt-mac-free-3.3.8/mkspecs/macx-g++/qmake.conf qt-mac-free-3.3.8-patch/mkspecs/macx-g++/qmake.conf
--- qt-mac-free-3.3.8/mkspecs/macx-g++/qmake.conf	2007-02-02 06:01:44.000000000 -0800
+++ qt-mac-free-3.3.8-patch/mkspecs/macx-g++/qmake.conf	2008-02-29 15:54:03.000000000 -0800
@@ -26,6 +26,7 @@
 QMAKE_CFLAGS_DEBUG	= -g
 QMAKE_CFLAGS_SHLIB	= -fPIC
 QMAKE_EXTENSION_SHLIB	= dylib
+QMAKE_EXTENSION_PLUGIN  = so
 QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
 
 QMAKE_CXX		= c++
@@ -38,9 +39,9 @@
 QMAKE_CXXFLAGS_SHLIB	= $$QMAKE_CFLAGS_SHLIB
 QMAKE_CXXFLAGS_YACC	= $$QMAKE_CFLAGS_YACC
 
-QMAKE_LIBDIR		=
-QMAKE_INCDIR_QT		= $(QTDIR)/include
-QMAKE_LIBDIR_QT		= $(QTDIR)/lib
+QMAKE_LIBDIR		= @PREFIX@/lib/qt3mac/lib
+QMAKE_INCDIR_QT		= @PREFIX@/lib/qt3mac/include
+QMAKE_LIBDIR_QT		= @PREFIX@/lib/qt3mac/lib
 QMAKE_INCDIR_OPENGL	= /System/Library/Frameworks/OpenGL.framework/Headers \
 	/System/Library/Frameworks/AGL.framework/Headers/
 
@@ -51,12 +52,12 @@
 QMAKE_LFLAGS_RELEASE	=
 QMAKE_LFLAGS_DEBUG	=
 QMAKE_LFLAGS_APP	= -prebind
-QMAKE_LFLAGS_SHLIB	= -prebind -dynamiclib 
-QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace
+QMAKE_LFLAGS_SHLIB	= -prebind -dynamiclib -single_module
+QMAKE_LFLAGS_INCREMENTAL = -undefined dynamic_lookup
 QMAKE_LFLAGS_PLUGIN	= -bundle
 #You probably don't want to mess with this, instead look at install_name_tool(1)
 #QMAKE_LFLAGS_SONAME	= -install_name$${LITERAL_WHITESPACE}@executable_path/../Frameworks/
-QMAKE_LFLAGS_SONAME	= -install_name$${LITERAL_WHITESPACE}
+QMAKE_LFLAGS_SONAME	= -install_name$${LITERAL_WHITESPACE}$$QMAKE_LIBDIR/
 QMAKE_LFLAGS_THREAD	= 
 
 QMAKE_LFLAGS_VERSION    = -current_version$${LITERAL_WHITESPACE}
@@ -64,7 +65,7 @@
 
 QMAKE_RPATH		= 
 
-QMAKE_LIBS_DYNLOAD	=
+QMAKE_LIBS_DYNLOAD	= -ldl
 QMAKE_LIBS_QT		= -lqt
 QMAKE_LIBS_QT_THREAD	= -lqt-mt
 QMAKE_LIBS_OPENGL	= -framework OpenGL -framework AGL
diff -ur qt-mac-free-3.3.8/mkspecs/macx-g++/qplatformdefs.h qt-mac-free-3.3.8-patch/mkspecs/macx-g++/qplatformdefs.h
--- qt-mac-free-3.3.8/mkspecs/macx-g++/qplatformdefs.h	2005-05-04 17:17:04.000000000 -0700
+++ qt-mac-free-3.3.8-patch/mkspecs/macx-g++/qplatformdefs.h	2008-02-29 15:54:03.000000000 -0800
@@ -22,6 +22,7 @@
 #include <grp.h>
 #include <pwd.h>
 #include <signal.h>
+#include <dlfcn.h>
 #define QT_NO_LIBRARY_UNLOAD
 
 #include <sys/types.h>
diff -ur qt-mac-free-3.3.8/src/kernel/qcursor_mac.cpp qt-mac-free-3.3.8-patch/src/kernel/qcursor_mac.cpp
--- qt-mac-free-3.3.8/src/kernel/qcursor_mac.cpp	2007-02-02 06:01:16.000000000 -0800
+++ qt-mac-free-3.3.8-patch/src/kernel/qcursor_mac.cpp	2008-02-29 15:51:21.000000000 -0800
@@ -177,7 +177,9 @@
 #ifdef QMAC_USE_BIG_CURSOR_API
 	char *big_cursor_name;
 #endif
+#ifdef QMAC_NO_FAKECURSOR
 	CursorImageRec *ci;
+#endif
 	struct {
 	    QMacAnimateCursor *anim;
 	    ThemeCursor curs;
@@ -257,8 +259,10 @@
     if(type == TYPE_CursPtr) {
 	if(curs.cp.hcurs && curs.cp.my_cursor)
 	    free(curs.cp.hcurs);
+#ifdef QMAC_NO_FAKECURSOR
     } else if(type == TYPE_CursorImage) {
 	free(curs.ci);
+#endif
 #ifdef QMAC_USE_BIG_CURSOR_API
     } else if(type == TYPE_BigCursor) {
 	QDUnregisterNamedPixMapCursur(curs.big_cursor_name);
diff -ur qt-mac-free-3.3.8/src/kernel/qt_mac.h qt-mac-free-3.3.8-patch/src/kernel/qt_mac.h
--- qt-mac-free-3.3.8/src/kernel/qt_mac.h	2007-02-02 06:01:13.000000000 -0800
+++ qt-mac-free-3.3.8-patch/src/kernel/qt_mac.h	2008-02-29 15:51:21.000000000 -0800
@@ -54,7 +54,7 @@
 # define QMAC_DEFAULT_STYLE "QMacStyle" //DefaultStyle
 #endif
 
-#if !defined(Q_WS_MACX) || QT_MACOSX_VERSION < 0x1020 || QT_MACOSX_VERSION >= 0x1030
+#if !defined(Q_WS_MACX) || QT_MACOSX_VERSION < 0x1020 || (QT_MACOSX_VERSION >= 0x1030 && QT_MACOSX_VERSION <= 0x1040)
 # define QMAC_NO_FAKECURSOR
 #endif
 
diff -ur qt-mac-free-3.3.8/src/network/qdns.cpp qt-mac-free-3.3.8-patch/src/network/qdns.cpp
--- qt-mac-free-3.3.8/src/network/qdns.cpp	2007-02-02 06:01:09.000000000 -0800
+++ qt-mac-free-3.3.8-patch/src/network/qdns.cpp	2008-02-29 15:54:03.000000000 -0800
@@ -76,7 +76,8 @@
 #include "qcleanuphandler.h"
 #include <limits.h>
 #ifdef Q_OS_MAC
-#include "../3rdparty/dlcompat/dlfcn.h"
+#include <dlfcn.h>
+#define DL_PREFIX(x) x
 #endif
 
 //#define QDNS_DEBUG
diff -ur qt-mac-free-3.3.8/src/qt_professional.pri qt-mac-free-3.3.8-patch/src/qt_professional.pri
--- qt-mac-free-3.3.8/src/qt_professional.pri	2004-02-06 04:08:19.000000000 -0800
+++ qt-mac-free-3.3.8-patch/src/qt_professional.pri	2008-02-29 15:54:03.000000000 -0800
@@ -25,7 +25,6 @@
 	unix {
 		NETWORK_H	= $$NETWORK_CPP
 	}
-	mac:INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/dlcompat
 	INCLUDEPATH += $$QT_SOURCE_TREE/src/network
 	include( $$QT_SOURCE_TREE/src/network/qt_network.pri )
 	DEFINES     *= QT_MODULE_NETWORK
diff -ur qt-mac-free-3.3.8/src/tools/qglobal.h qt-mac-free-3.3.8-patch/src/tools/qglobal.h
--- qt-mac-free-3.3.8/src/tools/qglobal.h	2007-02-02 06:01:04.000000000 -0800
+++ qt-mac-free-3.3.8-patch/src/tools/qglobal.h	2008-02-29 15:51:21.000000000 -0800
@@ -183,7 +183,10 @@
 #  if !defined(MAC_OS_X_VERSION_10_4)
 #       define MAC_OS_X_VERSION_10_4 MAC_OS_X_VERSION_10_3 + 1
 #  endif
-#  if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_4)
+#  if !defined(MAC_OS_X_VERSION_10_5)
+#       define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1
+#  endif
+#  if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5)
 #    error "This version of Mac OS X is unsupported"
 #  endif
 #endif
diff -ur qt-mac-free-3.3.8/src/tools/qt_tools.pri qt-mac-free-3.3.8-patch/src/tools/qt_tools.pri
--- qt-mac-free-3.3.8/src/tools/qt_tools.pri	2004-04-01 02:20:06.000000000 -0800
+++ qt-mac-free-3.3.8-patch/src/tools/qt_tools.pri	2008-02-29 15:54:03.000000000 -0800
@@ -101,10 +101,6 @@
 		  $$TOOLS_CPP/qwaitcondition_unix.cpp
 
         mac:!x11:!embedded:SOURCES += $$TOOLS_CPP/qsettings_mac.cpp
-	mac {
-		SOURCES+=3rdparty/dlcompat/dlfcn.c
-		INCLUDEPATH+=3rdparty/dlcompat
-	    }
 	unix:SOURCES += $$TOOLS_CPP/qlibrary_unix.cpp
 
 	SOURCES += $$TOOLS_CPP/qbitarray.cpp \
