Include limits.h if we have it.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index bbd9969..82867e0 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -23,6 +23,9 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 
 /* Forward */
 static PyObject *filterstring Py_PROTO((PyObject *, PyObject *));
diff --git a/Python/codecs.c b/Python/codecs.c
index 20df522..27331ab 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -10,6 +10,9 @@
 
 #include "Python.h"
 #include <ctype.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 
 /* --- Globals ------------------------------------------------------------ */
 
diff --git a/Python/compile.c b/Python/compile.c
index d713c7e..ce7c0e4 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -33,6 +33,9 @@
 #include "structmember.h"
 
 #include <ctype.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 
 /* Three symbols from graminit.h are also defined in Python.h, with
    Py_ prefixes to their names.  Python.h can't include graminit.h
diff --git a/Python/modsupport.c b/Python/modsupport.c
index 4a206a1..afecc0e 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -11,6 +11,9 @@
 /* Module support implementation */
 
 #include "Python.h"
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 
 #ifdef MPW /* MPW pushes 'extended' for float and double types with varargs */
 typedef extended va_double;