Check return result from Py_InitModule*().  This API can fail.

Probably should be backported.
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c
index 6f4da7e..aa4a161 100644
--- a/Modules/_bsddb.c
+++ b/Modules/_bsddb.c
@@ -5034,6 +5034,8 @@
 
     /* Create the module and add the functions */
     m = Py_InitModule(_bsddbModuleName, bsddb_methods);
+    if (m == NULL)
+    	return;
 
     /* Add some symbolic constants to the module */
     d = PyModule_GetDict(m);
diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index b5f30cb..c3f313a 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -462,6 +462,8 @@
 
     /* Create the module and add the functions */
     m = Py_InitModule("_curses_panel", PyCurses_methods);
+    if (m == NULL)
+    	return;
     d = PyModule_GetDict(m);
 
     /* For exception _curses_panel.error */
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 176f024..4c03602 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -2481,6 +2481,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule("_curses", PyCurses_methods);
+	if (m == NULL)
+    		return;
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index 641f272..ea5aa6c 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -2590,6 +2590,8 @@
 #endif
 
     m = Py_InitModule("_elementtree", _functions);
+    if (m == NULL)
+    	return;
 
     /* python glue code */
 
diff --git a/Modules/_heapqmodule.c b/Modules/_heapqmodule.c
index 5a78c45..999647e 100644
--- a/Modules/_heapqmodule.c
+++ b/Modules/_heapqmodule.c
@@ -610,6 +610,8 @@
 	PyObject *m;
 
 	m = Py_InitModule3("_heapq", heapq_methods, module_doc);
+	if (m == NULL)
+    		return;
 	PyModule_AddObject(m, "__about__", PyString_FromString(__about__));
 }
 
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index bd57c2f..2d84d80 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -715,6 +715,8 @@
 #endif
 
     m = Py_InitModule("_locale", PyLocale_Methods);
+    if (m == NULL)
+    	return;
 
     d = PyModule_GetDict(m);
 
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index 8fe2b2b..bd1c9d3 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -573,6 +573,8 @@
 	if (PyType_Ready(&Random_Type) < 0)
 		return;
 	m = Py_InitModule3("_random", NULL, module_doc);
+	if (m == NULL)
+		return;
 	Py_INCREF(&Random_Type);
 	PyModule_AddObject(m, "Random", (PyObject *)&Random_Type);
 }
diff --git a/Modules/_sre.c b/Modules/_sre.c
index 1f0a8bc..4d9d1cd 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -3389,6 +3389,8 @@
         Scanner_Type.ob_type = &PyType_Type;
 
     m = Py_InitModule("_" SRE_MODULE, _functions);
+    if (m == NULL)
+    	return;
     d = PyModule_GetDict(m);
 
     x = PyInt_FromLong(SRE_MAGIC);
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 9c100ab..fd5e2c6 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -634,6 +634,8 @@
 	PySSL_Type.ob_type = &PyType_Type;
 
 	m = Py_InitModule3("_ssl", PySSL_methods, module_doc);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 
 	/* Load _socket module and its C API */
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 9a5d885..c008b87 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -627,6 +627,8 @@
 	PyObject *m;
 
 	m = Py_InitModule("_testcapi", TestMethods);
+	if (m == NULL)
+		return;
 
 	PyModule_AddObject(m, "UCHAR_MAX", PyInt_FromLong(UCHAR_MAX));
 	PyModule_AddObject(m, "USHRT_MAX", PyInt_FromLong(USHRT_MAX));
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index c3015b9..70cd670 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -3088,6 +3088,8 @@
 #endif
 
 	m = Py_InitModule("_tkinter", moduleMethods);
+	if (m == NULL)
+		return;
 
 	d = PyModule_GetDict(m);
 	Tkinter_TclError = PyErr_NewException("_tkinter.TclError", NULL, NULL);
diff --git a/Modules/almodule.c b/Modules/almodule.c
index 12b265e..5254fca 100644
--- a/Modules/almodule.c
+++ b/Modules/almodule.c
@@ -1996,6 +1996,8 @@
 	m = Py_InitModule4("al", al_methods,
 		al_module_documentation,
 		(PyObject*)NULL,PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 3c60350..4c7cdf2 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -2118,6 +2118,8 @@
 	Arraytype.ob_type = &PyType_Type;
 	PyArrayIter_Type.ob_type = &PyType_Type;
 	m = Py_InitModule3("array", a_methods, module_doc);
+	if (m == NULL)
+		return;
 
         Py_INCREF((PyObject *)&Arraytype);
 	PyModule_AddObject(m, "ArrayType", (PyObject *)&Arraytype);
diff --git a/Modules/audioop.c b/Modules/audioop.c
index 52824b8..8d5a305 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -1374,6 +1374,8 @@
 {
 	PyObject *m, *d;
 	m = Py_InitModule("audioop", audioop_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	AudioopError = PyErr_NewException("audioop.error", NULL, NULL);
 	if (AudioopError != NULL)
diff --git a/Modules/binascii.c b/Modules/binascii.c
index eab90b3..4a2c268 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -1335,6 +1335,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule("binascii", binascii_module_methods);
+	if (m == NULL)
+		return;
 
 	d = PyModule_GetDict(m);
 	x = PyString_FromString(doc_binascii);
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index ac8c443..6bdffde 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -849,6 +849,8 @@
 
 	Bsddbtype.ob_type = &PyType_Type;
 	m = Py_InitModule("bsddb185", bsddbmodule_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	BsddbError = PyErr_NewException("bsddb.error", NULL, NULL);
 	if (BsddbError != NULL)
diff --git a/Modules/bz2module.c b/Modules/bz2module.c
index 82b3958..9f30f8a 100644
--- a/Modules/bz2module.c
+++ b/Modules/bz2module.c
@@ -2192,6 +2192,8 @@
 	BZ2Decomp_Type.ob_type = &PyType_Type;
 
 	m = Py_InitModule3("bz2", bz2_methods, bz2__doc__);
+	if (m == NULL)
+		return;
 
 	PyModule_AddObject(m, "__author__", PyString_FromString(__author__));
 
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 865541f..cc821fd 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -5730,6 +5730,8 @@
 	m = Py_InitModule4("cPickle", cPickle_methods,
 			   cPickle_module_documentation,
 			   (PyObject*)NULL,PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 0d50459..ad2f36b 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -716,6 +716,7 @@
   m = Py_InitModule4("cStringIO", IO_methods,
 		     cStringIO_module_documentation,
 		     (PyObject*)NULL,PYTHON_API_VERSION);
+  if (m == NULL) return;
 
   /* Add some symbolic constants to the module */
   d = PyModule_GetDict(m);
diff --git a/Modules/cdmodule.c b/Modules/cdmodule.c
index 25add3e..f8efd39 100644
--- a/Modules/cdmodule.c
+++ b/Modules/cdmodule.c
@@ -760,6 +760,8 @@
 	PyObject *m, *d;
 
 	m = Py_InitModule("cd", CD_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 
 	CdError = PyErr_NewException("cd.error", NULL, NULL);
diff --git a/Modules/clmodule.c b/Modules/clmodule.c
index 70e8f8e..a535e03 100644
--- a/Modules/clmodule.c
+++ b/Modules/clmodule.c
@@ -963,6 +963,8 @@
 	PyObject *m, *d, *x;
 
 	m = Py_InitModule("cl", cl_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 
 	ClError = PyErr_NewException("cl.error", NULL, NULL);
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index 78b9dd5..ec48ce8 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -417,6 +417,8 @@
 	PyObject *m;
 
 	m = Py_InitModule3("cmath", cmath_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	PyModule_AddObject(m, "pi",
                            PyFloat_FromDouble(atan(1.0) * 4.0));
diff --git a/Modules/collectionsmodule.c b/Modules/collectionsmodule.c
index 1a8258e..16f25df 100644
--- a/Modules/collectionsmodule.c
+++ b/Modules/collectionsmodule.c
@@ -1077,6 +1077,8 @@
 	PyObject *m;
 
 	m = Py_InitModule3("collections", NULL, module_doc);
+	if (m == NULL)
+		return;
 
 	if (PyType_Ready(&deque_type) < 0)
 		return;
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 8a6fae2..50f47d4 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -4615,6 +4615,8 @@
 
 	m = Py_InitModule3("datetime", module_methods,
 			   "Fast implementation of the datetime type.");
+	if (m == NULL)
+		return;
 
 	if (PyType_Ready(&PyDateTime_DateType) < 0)
 		return;
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index 40d06fc..cc963a2 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -359,6 +359,8 @@
 
 	Dbmtype.ob_type = &PyType_Type;
 	m = Py_InitModule("dbm", dbmmodule_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	if (DbmError == NULL)
 		DbmError = PyErr_NewException("dbm.error", NULL, NULL);
diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c
index 927f4c0..0955681 100644
--- a/Modules/dlmodule.c
+++ b/Modules/dlmodule.c
@@ -219,6 +219,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule("dl", dl_methods);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index e9c0990..696d396 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -57,6 +57,8 @@
 {
 	PyObject *m, *d, *de;
 	m = Py_InitModule3("errno", errno_methods, errno__doc__);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	de = PyDict_New();
 	if (!d || !de || PyDict_SetItemString(d, "errorcode", de) < 0)
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 624019d..4197339 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -583,6 +583,8 @@
 
 	/* Create the module and add the functions and documentation */
 	m = Py_InitModule3("fcntl", fcntl_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index 1ae2dc8..aa0d04e 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -2130,6 +2130,8 @@
 initfl(void)
 {
 	Py_InitModule("fl", forms_methods);
+	if (m == NULL)
+		return;
 	foreground();
 	fl_init();
 }
diff --git a/Modules/fmmodule.c b/Modules/fmmodule.c
index 78a5877..0175390 100644
--- a/Modules/fmmodule.c
+++ b/Modules/fmmodule.c
@@ -258,5 +258,7 @@
 initfm(void)
 {
 	Py_InitModule("fm", fm_methods);
+	if (m == NULL)
+		return;
 	fminit();
 }
diff --git a/Modules/fpectlmodule.c b/Modules/fpectlmodule.c
index 241c1c2..c6d4f77 100644
--- a/Modules/fpectlmodule.c
+++ b/Modules/fpectlmodule.c
@@ -265,6 +265,8 @@
 {
     PyObject *m, *d;
     m = Py_InitModule("fpectl", fpectl_methods);
+    if (m == NULL)
+    	return;
     d = PyModule_GetDict(m);
     fpe_error = PyErr_NewException("fpectl.error", NULL, NULL);
     if (fpe_error != NULL)
diff --git a/Modules/fpetestmodule.c b/Modules/fpetestmodule.c
index aa14dd8..22e95db 100644
--- a/Modules/fpetestmodule.c
+++ b/Modules/fpetestmodule.c
@@ -177,6 +177,8 @@
     PyObject *m, *d;
 
     m = Py_InitModule("fpetest", fpetest_methods);
+    if (m == NULL)
+    	return;
     d = PyModule_GetDict(m);
     fpe_error = PyErr_NewException("fpetest.error", NULL, NULL);
     if (fpe_error != NULL)
diff --git a/Modules/functionalmodule.c b/Modules/functionalmodule.c
index 95ffd5d..58b07d9 100644
--- a/Modules/functionalmodule.c
+++ b/Modules/functionalmodule.c
@@ -263,6 +263,8 @@
 	};
 
 	m = Py_InitModule3("functional", module_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	for (i=0 ; typelist[i] != NULL ; i++) {
 		if (PyType_Ready(typelist[i]) < 0)
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index db9dd32..00239bd 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -1158,6 +1158,8 @@
 			      gc__doc__,
 			      NULL,
 			      PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	if (garbage == NULL) {
 		garbage = PyList_New(0);
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index 03e664d..6045743 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -512,6 +512,8 @@
     m = Py_InitModule4("gdbm", dbmmodule_methods,
                        gdbmmodule__doc__, (PyObject *)NULL,
                        PYTHON_API_VERSION);
+    if (m == NULL)
+	return;
     d = PyModule_GetDict(m);
     DbmError = PyErr_NewException("gdbm.error", NULL, NULL);
     if (DbmError != NULL) {
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index 5f33fe9..de849c9 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -171,6 +171,8 @@
 {
     PyObject *m, *d;
     m = Py_InitModule3("grp", grp_methods, grp__doc__);
+    if (m == NULL)
+        return;
     d = PyModule_GetDict(m);
     PyStructSequence_InitType(&StructGrpType, &struct_group_type_desc);
     PyDict_SetItemString(d, "struct_group", (PyObject *) &StructGrpType);
diff --git a/Modules/imageop.c b/Modules/imageop.c
index 5b87898..92f805a 100644
--- a/Modules/imageop.c
+++ b/Modules/imageop.c
@@ -776,6 +776,8 @@
 {
 	PyObject *m;
 	m = Py_InitModule("imageop", imageop_methods);
+	if (m == NULL)
+		return;
 	ImageopDict = PyModule_GetDict(m);
 	ImageopError = PyErr_NewException("imageop.error", NULL, NULL);
 	if (ImageopError != NULL)
diff --git a/Modules/imgfile.c b/Modules/imgfile.c
index f9fa25b..bb85a78 100644
--- a/Modules/imgfile.c
+++ b/Modules/imgfile.c
@@ -492,6 +492,8 @@
 {
 	PyObject *m, *d;
 	m = Py_InitModule("imgfile", imgfile_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	ImgfileError = PyErr_NewException("imgfile.error", NULL, NULL);
 	if (ImgfileError != NULL)
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index c675bf4..a7ecf93 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -2460,6 +2460,8 @@
 
 	teedataobject_type.ob_type = &PyType_Type;
 	m = Py_InitModule3("itertools", module_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	for (i=0 ; typelist[i] != NULL ; i++) {
 		if (PyType_Ready(typelist[i]) < 0)
diff --git a/Modules/linuxaudiodev.c b/Modules/linuxaudiodev.c
index a5ff367..f6d5b7d 100644
--- a/Modules/linuxaudiodev.c
+++ b/Modules/linuxaudiodev.c
@@ -491,6 +491,8 @@
     PyObject *m;
   
     m = Py_InitModule("linuxaudiodev", linuxaudiodev_methods);
+    if (m == NULL)
+	return;
 
     LinuxAudioError = PyErr_NewException("linuxaudiodev.error", NULL, NULL);
     if (LinuxAudioError)
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index a5fec15..e7fc6dd 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -355,6 +355,8 @@
 	PyObject *m, *d, *v;
 
 	m = Py_InitModule3("math", math_methods, module_doc);
+	if (m == NULL)
+		goto finally;
 	d = PyModule_GetDict(m);
 
         if (!(v = PyFloat_FromDouble(atan(1.0) * 4.0)))
diff --git a/Modules/md5module.c b/Modules/md5module.c
index 9c647c5..e12bef8 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -303,6 +303,8 @@
         if (PyType_Ready(&MD5type) < 0)
             return;
 	m = Py_InitModule3("_md5", md5_functions, module_doc);
+	if (m == NULL)
+	    return;
 	d = PyModule_GetDict(m);
 	PyDict_SetItemString(d, "MD5Type", (PyObject *)&MD5type);
 	PyModule_AddIntConstant(m, "digest_size", 16);
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 2ff4494..1cd7d17 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -1092,6 +1092,8 @@
 	mmap_object_type.ob_type = &PyType_Type;
 
 	module = Py_InitModule ("mmap", mmap_functions);
+	if (module == NULL)
+		return;
 	dict = PyModule_GetDict (module);
 	mmap_module_error = PyExc_EnvironmentError;
 	Py_INCREF(mmap_module_error);
diff --git a/Modules/nismodule.c b/Modules/nismodule.c
index 2494adb..207f7b8 100644
--- a/Modules/nismodule.c
+++ b/Modules/nismodule.c
@@ -379,6 +379,8 @@
 {
 	PyObject *m, *d;
 	m = Py_InitModule("nis", nis_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	NisError = PyErr_NewException("nis.error", NULL, NULL);
 	if (NisError != NULL)
diff --git a/Modules/operator.c b/Modules/operator.c
index ddd0252..4817d33 100644
--- a/Modules/operator.c
+++ b/Modules/operator.c
@@ -578,6 +578,8 @@
 	/* Create the module and add the functions */
         m = Py_InitModule4("operator", operator_methods, operator_doc,
 		       (PyObject*)NULL, PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	if (PyType_Ready(&itemgetter_type) < 0)
 		return;
diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c
index af3002d..4c22b07 100644
--- a/Modules/ossaudiodev.c
+++ b/Modules/ossaudiodev.c
@@ -963,6 +963,8 @@
     PyObject *m;
 
     m = Py_InitModule("ossaudiodev", ossaudiodev_methods);
+    if (m == NULL)
+	return;
 
     OSSAudioError = PyErr_NewException("ossaudiodev.OSSAudioError",
 				       NULL, NULL);
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index e788fc9..b2b32df 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -3148,6 +3148,8 @@
 
     PyST_Type.ob_type = &PyType_Type;
     module = Py_InitModule("parser", parser_functions);
+    if (module == NULL)
+    	return;
 
     if (parser_error == 0)
         parser_error = PyErr_NewException("parser.ParserError", NULL, NULL);
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index b783573..100dfcf 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -7967,6 +7967,8 @@
 	m = Py_InitModule3(MODNAME,
 			   posix_methods,
 			   posix__doc__);
+	if (m == NULL)
+    		return;
 
 	/* Initialize environ dictionary */
 	v = convertenviron();
diff --git a/Modules/puremodule.c b/Modules/puremodule.c
index 43c6441..95f4bde 100644
--- a/Modules/puremodule.c
+++ b/Modules/puremodule.c
@@ -952,6 +952,8 @@
 	PyObject *m, *d;
 
 	m = Py_InitModule("pure", pure_methods);
+	if (m == NULL)
+    		return;
 	d = PyModule_GetDict(m);
 
         /* this is bogus because we should be able to find this information
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index f418e43..9e7b864 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -183,6 +183,8 @@
 {
 	PyObject *m;
 	m = Py_InitModule3("pwd", pwd_methods, pwd__doc__);
+	if (m == NULL)
+    		return;
 
 	PyStructSequence_InitType(&StructPwdType, &struct_pwd_type_desc);
 	Py_INCREF((PyObject *) &StructPwdType);
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index c827581..76b7cf9 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -1854,6 +1854,8 @@
     /* Create the module and add the functions */
     m = Py_InitModule3(MODULE_NAME, pyexpat_methods,
                        pyexpat_module_documentation);
+    if (m == NULL)
+	return;
 
     /* Add some symbolic constants to the module */
     if (ErrorObject == NULL) {
diff --git a/Modules/readline.c b/Modules/readline.c
index f039f1a..8fda228 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -925,6 +925,8 @@
 
 	m = Py_InitModule4("readline", readline_methods, doc_module,
 			   (PyObject *)NULL, PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	PyOS_ReadlineFunctionPointer = call_readline;
 	setup_readline();
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index 9f84032..d449932 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -653,6 +653,8 @@
 	Regextype.ob_type = &PyType_Type;
 
 	m = Py_InitModule("regex", regex_global_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 
 	if (PyErr_Warn(PyExc_DeprecationWarning,
diff --git a/Modules/resource.c b/Modules/resource.c
index c5bec79..7cbd2c9 100644
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -234,6 +234,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule("resource", resource_methods);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	if (ResourceError == NULL) {
diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 904c64b..8c70d95 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -756,6 +756,8 @@
 {
 	PyObject *m, *d;
 	m = Py_InitModule("rgbimg", rgbimg_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	ImgfileError = PyErr_NewException("rgbimg.error", NULL, NULL);
 	if (ImgfileError != NULL)
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index ed2ea81..53c68c1 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -662,6 +662,8 @@
 {
 	PyObject *m;
 	m = Py_InitModule3("select", select_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	SelectError = PyErr_NewException("select.error", NULL, NULL);
 	Py_INCREF(SelectError);
diff --git a/Modules/sha256module.c b/Modules/sha256module.c
index b40bb70..e16338d 100644
--- a/Modules/sha256module.c
+++ b/Modules/sha256module.c
@@ -706,4 +706,6 @@
     if (PyType_Ready(&SHA256type) < 0)
         return;
     m = Py_InitModule("_sha256", SHA_functions);
+    if (m == NULL)
+	return;
 }
diff --git a/Modules/sha512module.c b/Modules/sha512module.c
index 44ed7a7..3837795 100644
--- a/Modules/sha512module.c
+++ b/Modules/sha512module.c
@@ -772,6 +772,8 @@
     if (PyType_Ready(&SHA512type) < 0)
         return;
     m = Py_InitModule("_sha512", SHA_functions);
+    if (m == NULL)
+	return;
 }
 
 #endif
diff --git a/Modules/shamodule.c b/Modules/shamodule.c
index 1de61c4..058391d 100644
--- a/Modules/shamodule.c
+++ b/Modules/shamodule.c
@@ -590,6 +590,8 @@
     if (PyType_Ready(&SHAtype) < 0)
         return;
     m = Py_InitModule("_sha", SHA_functions);
+    if (m == NULL)
+	return;
 
     /* Add some symbolic constants to the module */
     insint("blocksize", 1);  /* For future use, in case some hash
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index bec2729..a729604 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -317,6 +317,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule3("signal", signal_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	d = PyModule_GetDict(m);
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index b88703c..cdefc58 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -3871,6 +3871,8 @@
 	m = Py_InitModule3(PySocket_MODULE_NAME,
 			   socket_methods,
 			   socket_doc);
+	if (m == NULL)
+		return;
 
 	socket_error = PyErr_NewException("socket.error", NULL, NULL);
 	if (socket_error == NULL)
diff --git a/Modules/spwdmodule.c b/Modules/spwdmodule.c
index 36dd228..7c618e7 100644
--- a/Modules/spwdmodule.c
+++ b/Modules/spwdmodule.c
@@ -171,6 +171,8 @@
 {
 	PyObject *m;
 	m=Py_InitModule3("spwd", spwd_methods, spwd__doc__);
+	if (m == NULL)
+		return;
 	PyStructSequence_InitType(&StructSpwdType, &struct_spwd_type_desc);
 	Py_INCREF((PyObject *) &StructSpwdType);
 	PyModule_AddObject(m, "struct_spwd", (PyObject *) &StructSpwdType);
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index ed72a71..2917298 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -1210,6 +1210,8 @@
 	int c, n;
 	m = Py_InitModule4("strop", strop_methods, strop_module__doc__,
 			   (PyObject*)NULL, PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	/* Create 'whitespace' object */
 	n = 0;
diff --git a/Modules/structmodule.c b/Modules/structmodule.c
index 137b898..f07f21a 100644
--- a/Modules/structmodule.c
+++ b/Modules/structmodule.c
@@ -1278,6 +1278,8 @@
 	/* Create the module and add the functions */
 	m = Py_InitModule4("struct", struct_methods, struct__doc__,
 			   (PyObject*)NULL, PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	if (StructError == NULL) {
diff --git a/Modules/sunaudiodev.c b/Modules/sunaudiodev.c
index 3269c76..802184d 100644
--- a/Modules/sunaudiodev.c
+++ b/Modules/sunaudiodev.c
@@ -456,6 +456,8 @@
 	PyObject *m, *d;
 
 	m = Py_InitModule("sunaudiodev", sunaudiodev_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	SunAudioError = PyErr_NewException("sunaudiodev.error", NULL, NULL);
 	if (SunAudioError)
diff --git a/Modules/svmodule.c b/Modules/svmodule.c
index 9bd7968..fb58f19 100644
--- a/Modules/svmodule.c
+++ b/Modules/svmodule.c
@@ -956,6 +956,8 @@
 	PyObject *m, *d;
 
 	m = Py_InitModule("sv", sv_methods);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 
 	SvError = PyErr_NewException("sv.error", NULL, NULL);
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c
index 7a52aae..c90d765 100644
--- a/Modules/symtablemodule.c
+++ b/Modules/symtablemodule.c
@@ -53,6 +53,8 @@
 	PyObject *m;
 
 	m = Py_InitModule("_symtable", symtable_methods);
+	if (m == NULL)
+		return;
 	PyModule_AddIntConstant(m, "USE", USE);
 	PyModule_AddIntConstant(m, "DEF_GLOBAL", DEF_GLOBAL);
 	PyModule_AddIntConstant(m, "DEF_LOCAL", DEF_LOCAL);
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index 1f2b874..dd35923 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -163,6 +163,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule("syslog", syslog_methods);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 
diff --git a/Modules/termios.c b/Modules/termios.c
index a1d14a1..c53566c 100644
--- a/Modules/termios.c
+++ b/Modules/termios.c
@@ -910,6 +910,8 @@
 
 	m = Py_InitModule4("termios", termios_methods, termios__doc__,
                            (PyObject *)NULL, PYTHON_API_VERSION);
+	if (m == NULL)
+		return;
 
 	if (TermiosError == NULL) {
 		TermiosError = PyErr_NewException("termios.error", NULL, NULL);
diff --git a/Modules/threadmodule.c b/Modules/threadmodule.c
index 3025595..fccdd62 100644
--- a/Modules/threadmodule.c
+++ b/Modules/threadmodule.c
@@ -638,6 +638,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule3("thread", thread_methods, thread_doc);
+	if (m == NULL)
+		return;
 
 	/* Add a symbolic constant */
 	d = PyModule_GetDict(m);
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 2cd9a57..ba93957 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -785,6 +785,8 @@
 	PyObject *m;
 	char *p;
 	m = Py_InitModule3("time", time_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	/* Accept 2-digit dates unless PYTHONY2K is set and non-empty */
 	p = Py_GETENV("PYTHONY2K");
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 5f75b6c..ea66eef 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -352,6 +352,8 @@
 
 	/* Create the module and add the functions */
 	m = Py_InitModule3("xx", xx_methods, module_doc);
+	if (m == NULL)
+		return;
 
 	/* Add some symbolic constants to the module */
 	if (ErrorObject == NULL) {
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index a598ae3..725755d 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -878,6 +878,8 @@
     m = Py_InitModule4("zlib", zlib_methods,
 		       zlib_module_documentation,
 		       (PyObject*)NULL,PYTHON_API_VERSION);
+    if (m == NULL)
+	return;
 
     ZlibError = PyErr_NewException("zlib.error", NULL, NULL);
     if (ZlibError != NULL) {
diff --git a/PC/_subprocess.c b/PC/_subprocess.c
index 8ed4899..b675b88 100644
--- a/PC/_subprocess.c
+++ b/PC/_subprocess.c
@@ -553,6 +553,8 @@
 	sp_handle_as_number.nb_int = (unaryfunc) sp_handle_as_int;
 
 	m = Py_InitModule("_subprocess", sp_functions);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 
 	/* constants */
diff --git a/PC/_winreg.c b/PC/_winreg.c
index 34e4f68..965acf1 100644
--- a/PC/_winreg.c
+++ b/PC/_winreg.c
@@ -1459,6 +1459,8 @@
 {
 	PyObject *m, *d;
 	m = Py_InitModule3("_winreg", winreg_methods, module_doc);
+	if (m == NULL)
+		return;
 	d = PyModule_GetDict(m);
 	PyHKEY_Type.ob_type = &PyType_Type;
 	PyHKEY_Type.tp_doc = PyHKEY_doc;
diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c
index 84cf0c1..4453023 100755
--- a/PC/msvcrtmodule.c
+++ b/PC/msvcrtmodule.c
@@ -221,6 +221,8 @@
 initmsvcrt(void)
 {
 	PyObject *m = Py_InitModule("msvcrt", msvcrt_functions);
+	if (m == NULL)
+		return;
 	PyObject *d = PyModule_GetDict(m);
 
 	/* constants for the locking() function's mode argument */
diff --git a/PC/winsound.c b/PC/winsound.c
index b94b322..81e3917 100644
--- a/PC/winsound.c
+++ b/PC/winsound.c
@@ -220,6 +220,8 @@
 	PyObject *module = Py_InitModule3("winsound",
 					  sound_methods,
 					  sound_module_doc);
+	if (module == NULL)
+		return;
 	PyObject *dict = PyModule_GetDict(module);
 
 	ADD_DEFINE(SND_ASYNC);
diff --git a/Python/import.c b/Python/import.c
index f284ff4..8bd25f7 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -2817,6 +2817,8 @@
 
 	m = Py_InitModule4("imp", imp_methods, doc_imp,
 			   NULL, PYTHON_API_VERSION);
+	if (m == NULL)
+		goto failure;
 	d = PyModule_GetDict(m);
 
 	if (setint(d, "SEARCH_ERROR", SEARCH_ERROR) < 0) goto failure;
diff --git a/Python/marshal.c b/Python/marshal.c
index ff8247c..5617226 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -1107,5 +1107,7 @@
 PyMarshal_Init(void)
 {
 	PyObject *mod = Py_InitModule("marshal", marshal_methods);
+	if (mod == NULL)
+		return;
 	PyModule_AddIntConstant(mod, "version", Py_MARSHAL_VERSION);
 }
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 5bbe950..f793b99 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -1027,6 +1027,8 @@
 #endif
 
 	m = Py_InitModule3("sys", sys_methods, sys_doc);
+	if (m == NULL)
+		return NULL;
 	sysdict = PyModule_GetDict(m);
 
 	{