HAVE_LIMITS_H -- raise #error if not defined; limits.h is std C
ULONG_MAX -- removed; std C requires it in limits.h
LONGLONG_MAX -- removed; never used
ULONGLONGMAX -- removed; never used
diff --git a/Include/Python.h b/Include/Python.h
index d4afdaf..32efa0c 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -33,6 +33,8 @@
 
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
+#else
+#error "limits.h is required by std C -- why isn't HAVE_LIMITS_H defined?"
 #endif
 
 #if defined(__sgi) && defined(WITH_THREAD) && !defined(_SGI_MP_SOURCE)
diff --git a/Include/longobject.h b/Include/longobject.h
index 6b10625..4cc9402 100644
--- a/Include/longobject.h
+++ b/Include/longobject.h
@@ -33,18 +33,6 @@
 extern DL_IMPORT(void *) PyLong_AsVoidPtr(PyObject *);
 
 #ifdef HAVE_LONG_LONG
-
-/* Hopefully this is portable... */
-#ifndef ULONG_MAX
-#define ULONG_MAX 4294967295U
-#endif
-#ifndef LONGLONG_MAX
-#define LONGLONG_MAX 9223372036854775807LL
-#endif
-#ifndef ULONGLONG_MAX
-#define ULONGLONG_MAX 0xffffffffffffffffULL
-#endif
-
 extern DL_IMPORT(PyObject *) PyLong_FromLongLong(LONG_LONG);
 extern DL_IMPORT(PyObject *) PyLong_FromUnsignedLongLong(unsigned LONG_LONG);
 extern DL_IMPORT(LONG_LONG) PyLong_AsLongLong(PyObject *);