diff --git a/Objects/longobject.c b/Objects/longobject.c
index be9430a..048b8e5 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -508,18 +508,22 @@
 PyObject *
 PyLong_FromVoidPtr(void *p)
 {
-#if SIZEOF_VOID_P == SIZEOF_LONG
+#if SIZEOF_VOID_P <= SIZEOF_LONG
 	return PyInt_FromLong((long)p);
 #else
-	/* optimize null pointers */
-	if ( p == NULL )
-		return PyInt_FromLong(0);
 
-	/* we can assume that HAVE_LONG_LONG is true. if not, then the
-	   configuration process should have bailed (having big pointers
-	   without long longs seems non-sensical) */
+#ifndef HAVE_LONG_LONG
+#   error "PyLong_FromVoidPtr: sizeof(void*) > sizeof(long), but no long long"
+#endif
+#if SIZEOF_LONG_LONG < SIZEOF_VOID_P
+#   error "PyLong_FromVoidPtr: sizeof(LONG_LONG) < sizeof(void*)"
+#endif
+	/* optimize null pointers */
+	if (p == NULL)
+		return PyInt_FromLong(0);
 	return PyLong_FromLongLong((LONG_LONG)p);
-#endif /* SIZEOF_VOID_P == SIZEOF_LONG */
+
+#endif /* SIZEOF_VOID_P <= SIZEOF_LONG */
 }
 
 /* Get a C pointer from a long object (or an int object in some cases) */
@@ -531,25 +535,29 @@
 	   then the PyLong_AsLong*() functions will raise the exception:
 	   PyExc_SystemError, "bad argument to internal function"
 	*/
-
-#if SIZEOF_VOID_P == SIZEOF_LONG
+#if SIZEOF_VOID_P <= SIZEOF_LONG
 	long x;
 
-	if ( PyInt_Check(vv) )
+	if (PyInt_Check(vv))
 		x = PyInt_AS_LONG(vv);
 	else
 		x = PyLong_AsLong(vv);
 #else
-	/* we can assume that HAVE_LONG_LONG is true. if not, then the
-	   configuration process should have bailed (having big pointers
-	   without long longs seems non-sensical) */
+
+#ifndef HAVE_LONG_LONG
+#   error "PyLong_AsVoidPtr: sizeof(void*) > sizeof(long), but no long long"
+#endif
+#if SIZEOF_LONG_LONG < SIZEOF_VOID_P
+#   error "PyLong_AsVoidPtr: sizeof(LONG_LONG) < sizeof(void*)"
+#endif
 	LONG_LONG x;
 
-	if ( PyInt_Check(vv) )
+	if (PyInt_Check(vv))
 		x = PyInt_AS_LONG(vv);
 	else
 		x = PyLong_AsLongLong(vv);
-#endif /* SIZEOF_VOID_P == SIZEOF_LONG */
+
+#endif /* SIZEOF_VOID_P <= SIZEOF_LONG */
 
 	if (x == -1 && PyErr_Occurred())
 		return NULL;
