diff --git a/Python/modsupport.c b/Python/modsupport.c
index 1f8ef07..98b0341 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -56,22 +56,24 @@
 	if ((m = PyImport_AddModule(name)) == NULL)
 		return NULL;
 	d = PyModule_GetDict(m);
-	for (ml = methods; ml->ml_name != NULL; ml++) {
-		if ((ml->ml_flags & METH_CLASS) ||
-		    (ml->ml_flags & METH_STATIC)) {
-			PyErr_SetString(PyExc_ValueError,
-					"module functions cannot set"
-					" METH_CLASS or METH_STATIC");
-			return NULL;
-		}
-		v = PyCFunction_New(ml, passthrough);
-		if (v == NULL)
-			return NULL;
-		if (PyDict_SetItemString(d, ml->ml_name, v) != 0) {
+	if (methods != NULL) {
+		for (ml = methods; ml->ml_name != NULL; ml++) {
+			if ((ml->ml_flags & METH_CLASS) ||
+			    (ml->ml_flags & METH_STATIC)) {
+				PyErr_SetString(PyExc_ValueError,
+						"module functions cannot set"
+						" METH_CLASS or METH_STATIC");
+				return NULL;
+			}
+			v = PyCFunction_New(ml, passthrough);
+			if (v == NULL)
+				return NULL;
+			if (PyDict_SetItemString(d, ml->ml_name, v) != 0) {
+				Py_DECREF(v);
+				return NULL;
+			}
 			Py_DECREF(v);
-			return NULL;
 		}
-		Py_DECREF(v);
 	}
 	if (doc != NULL) {
 		v = PyString_FromString(doc);
