diff --git a/CHANGES b/CHANGES
index 3ce6545fb8ad12baf74385ee9f2834bf6483e212..e792913192dc697d43398ac6bd3fe4665fc7c4b9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   Changelog
 
+Daniel (13 February 2007)
+- Robert A. Monat made libcurl build fine with VC2005 - it doesn't have
+  gmtime_r() like the older VC versions. He also made use of some machine-
+  specific defines to differentiate the "OS" define.
+
 Daniel (12 February 2007)
 - Rob Crittenden added support for NSS (Network Security Service) for the
   SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/
diff --git a/lib/config-win32.h b/lib/config-win32.h
index b9703cfcf0398127bb6dcf4b96898c2c1b0c524e..3e1721204b5371d4db0f6fe4cad5683351b99ffd 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -352,8 +352,8 @@
 /* Undef keyword 'const' if it does not work.  */
 /* #undef const */
 
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-/* MSVC 2003 has gmtime_r */
+#if defined(_MSC_VER) && (_MSC_VER > 1310) && (_MSC_VER < 1400)
+/* MSVC 2003 has gmtime_r, MSVC 2005 doesn't */
 #define HAVE_GMTIME_R
 #endif
 
@@ -377,7 +377,15 @@
 
 /* Define cpu-machine-OS */
 #undef OS
+#if defined(_M_IX86) /* x86 */
 #define OS "i386-pc-win32"
+#elif defined(_M_IA64) /* Itanium */
+#define OS "ia64-pc-win32"
+#elif defined(_M_X64) /* AMD64/EM64T - Not defined until MSVC 2005 */
+#define OS "amd64-pc-win32"
+#else
+#define OS "unknown-pc-win32"
+#endif
 
 /* Name of package */
 #define PACKAGE "curl"