Index: /trunk/src/kmk/config.h.win
===================================================================
--- /trunk/src/kmk/config.h.win	(revision 2765)
+++ /trunk/src/kmk/config.h.win	(revision 2766)
@@ -222,5 +222,7 @@
 
 /* Define to 1 if you have the <stdint.h> header file. */
-/*#define HAVE_STDINT_H 1*/
+#if _MSC_VER >= 1600
+# define HAVE_STDINT_H 1
+#endif
 
 /* Define to 1 if you have the <stdlib.h> header file. */
@@ -447,8 +449,10 @@
 
 /* Define uintmax_t if not defined in <stdint.h> or <inttypes.h>. */
-#if 0
-#define uintmax_t unsigned long
-#else
-#define uintmax_t unsigned __int64
+#if _MSC_VER < 1600
+# if 0
+#  define uintmax_t unsigned long
+# else
+#  define uintmax_t unsigned __int64
+# endif
 #endif
 
Index: /trunk/src/kmk/kmkbuiltin/mscfakes.h
===================================================================
--- /trunk/src/kmk/kmkbuiltin/mscfakes.h	(revision 2765)
+++ /trunk/src/kmk/kmkbuiltin/mscfakes.h	(revision 2766)
@@ -93,4 +93,15 @@
 typedef unsigned short u_short;
 
+#if _MSC_VER >= 1600
+# include <stdint.h>
+#else
+typedef unsigned char  uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int   uint32_t;
+typedef signed char    int8_t;
+typedef signed short   int16_t;
+typedef signed int     int32_t;
+#endif
+
 #if !defined(timerisset) && defined(MSCFAKES_NO_WINDOWS_H)
 struct timeval
