diff --git a/src/netbeans.c b/src/netbeans.c
index 0ef6b690459d3518948db21071f8cac9b85aab1c..e058f9e8eee897d2bfdf775d31a27a64383424fe 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -47,6 +47,7 @@
    * stdint.h which tries to typedef uint32_t and fails. */
 # ifdef uint32_t
 #  undef uint32_t
+#  undef __uint32_t_defined
 # endif
 # include <netdb.h>
 # include <netinet/in.h>
diff --git a/src/vim.h b/src/vim.h
index fb999b290b537fc1279fe442f4d6809f3be4a333..60eae8445e318a69005feb630e3d8681324fcad1 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -32,6 +32,10 @@
 # include "auto/config.h"
 # define HAVE_PATHDEF
 
+/* Avoid a problem when stdint.h gets included later, autoconf defines
+ * uint32_t when it is not typedef'ed. */
+# define __uint32_t_defined
+
 /*
  * Check if configure correctly managed to find sizeof(int).  If this failed,
  * it becomes zero.  This is likely a problem of not being able to run the
@@ -2075,6 +2079,7 @@ typedef int VimClipboard;	/* This is required for the prototypes. */
  * stdint.h which tries to typedef uint32_t and fails. */
 # ifdef uint32_t
 #  undef uint32_t
+#  undef __uint32_t_defined
 # endif
 
 # ifdef __BORLANDC__