Index: src/frontends/qt2/QContentPane.h
===================================================================
--- src/frontends/qt2/QContentPane.h	(revision 14703)
+++ src/frontends/qt2/QContentPane.h	(working copy)
@@ -16,6 +16,9 @@
 #undef emit
 #endif
 
+// this is needed by the generated QContentPane_moc.cpp file
+#include <config.h>
+
 #include "funcrequest.h"
 #include "frontends/Timeout.h"
 
Index: src/support/tempname.C
===================================================================
--- src/support/tempname.C	(revision 14703)
+++ src/support/tempname.C	(working copy)
@@ -54,6 +54,10 @@
 	// This probably just barely works...
 	::mktemp(templ);
 # if defined (HAVE_OPEN)
+# if (!defined S_IRUSR)
+#   define S_IRUSR S_IREAD
+#   define S_IWUSR S_IWRITE
+# endif
 	return ::open(templ, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
 # elif defined (HAVE__OPEN)
 	return ::_open(templ,
Index: src/support/forkedcall.C
===================================================================
--- src/support/forkedcall.C	(revision 14703)
+++ src/support/forkedcall.C	(working copy)
@@ -38,6 +38,7 @@
 #include <boost/bind.hpp>
 
 #include <vector>
+# include <cerrno>
 
 #ifdef _WIN32
 # define SIGHUP 1
@@ -46,7 +47,6 @@
 # include <windows.h>
 
 #else
-# include <cerrno>
 # include <csignal>
 # include <cstdlib>
 # ifdef HAVE_UNISTD_H
Index: src/support/mkdir.C
===================================================================
--- src/support/mkdir.C	(revision 14703)
+++ src/support/mkdir.C	(working copy)
@@ -22,6 +22,9 @@
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif
+#ifdef HAVE_DIRECT_H
+# include <direct.h>
+#endif
 #ifdef _WIN32
 # include <windows.h>
 #endif
Index: src/support/package.C.in
===================================================================
--- src/support/package.C.in	(revision 14703)
+++ src/support/package.C.in	(working copy)
@@ -357,8 +357,8 @@
 {
 #if defined (USE_WINDOWS_PACKAGING)
 	// Typical example: C:/TEMP/.
-	char path[PATH_MAX];
-	GetTempPath(PATH_MAX, path);
+	char path[MAX_PATH];
+	GetTempPath(MAX_PATH, path);
 	return os::internal_path(path);
 #else // Posix-like.
 	return "/tmp";
Index: INSTALL.scons
===================================================================
--- INSTALL.scons	(revision 14703)
+++ INSTALL.scons	(working copy)
@@ -291,9 +291,8 @@
     http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/.
 
   * build qt3
-    - download qt3 source from trolltech (not the binary version, which
-      only works with mingw)
-    - get q../free patch for qt3
+    - download qt3 source from Q../Free sourceforge.net website (not from 
+      trolltech).
     - compile qt3 as instructed
 
   * download and install the official zlib library from www.zlib.org.
Index: status.14x
===================================================================
--- status.14x	(revision 14703)
+++ status.14x	(working copy)
@@ -95,6 +95,8 @@
 
 - A scons build system is added, details please see INSTALL.scons.
 
+- Lyx can be compiled with MSVC using qt3 from Q../Free project and scons.
+
 * Miscellaneous
 
 - Display latex package checking results faster during configuration.
Index: development/scons/SConstruct
===================================================================
--- development/scons/SConstruct	(revision 14703)
+++ development/scons/SConstruct	(working copy)
@@ -670,16 +670,18 @@
     #
     # qt3 does not use pkg_config
     if frontend == 'qt2':
-        if not conf.CheckLibWithHeader('qt-mt', 'qapp.h', 'c++', 'QApplication qapp();'):
+        # windows lib name is qt-mt3
+        if not conf.CheckLibWithHeader('qt-mt', 'qapp.h', 'c++', 'QApplication qapp();') \
+            and not conf.CheckLibWithHeader('qt-mt3', 'qapp.h', 'c++', 'QApplication qapp();'):
             print 'Did not find qt libraries, exiting!'
             Exit(1)
 
 # now, if msvc2005 is used, we will need that QT_LIB_PATH/QT_LIB.manifest file
 if use_vc:
     if mode == 'debug':
-        manifest = os.path.join(qt_lib_path, 'QtGuid4.dll.manifest')
+        manifest = os.path.join(qt_lib_path, 'qt-mt3.dll.manifest')
     else:
-        manifest = os.path.join(qt_lib_path, 'QtGui4.dll.manifest')
+        manifest = os.path.join(qt_lib_path, 'qt-mt3.dll.manifest')
     if os.path.isfile(manifest):
         env['LINKCOM'] = [env['LINKCOM'], 'mt.exe /MANIFEST %s /outputresource:$TARGET;1' % manifest]
 
@@ -865,7 +867,6 @@
 #define BOOST_ENABLE_ASSERT_HANDLER 1
 
 #define BOOST_DISABLE_THREADS 1
-#define BOOST_NO_WREGEX 1
 #define BOOST_NO_WSTRING 1
 
 #ifdef __CYGWIN__
@@ -1257,8 +1258,11 @@
 # in their respective directory and specialized env.
 if frontend == 'qt2':
     # note: env.Tool('qt') my set QT_LIB to qt
-    qt_libs = ['qt-mt']
-    frontend_libs = ['qt-mt']
+    if platform_name == 'win32':
+        qt_libs = ['qt-mt3']
+    else:
+        qt_libs = ['qt-mt']
+    frontend_libs = qt_libs
 
 
 if platform_name in ['win32', 'cygwin']:
