diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c
index 180f7bc..12a3591 100644
--- a/Objects/moduleobject.c
+++ b/Objects/moduleobject.c
@@ -43,24 +43,31 @@
 PyObject *
 PyModule_GetDict(PyObject *m)
 {
+	PyObject *d;
 	if (!PyModule_Check(m)) {
 		PyErr_BadInternalCall();
 		return NULL;
 	}
-	return ((PyModuleObject *)m) -> md_dict;
+	d = ((PyModuleObject *)m) -> md_dict;
+	if (d == NULL)
+		((PyModuleObject *)m) -> md_dict = d = PyDict_New();
+	return d;
 }
 
 char *
 PyModule_GetName(PyObject *m)
 {
+	PyObject *d;
 	PyObject *nameobj;
 	if (!PyModule_Check(m)) {
 		PyErr_BadArgument();
 		return NULL;
 	}
-	nameobj = PyDict_GetItemString(((PyModuleObject *)m)->md_dict,
-				       "__name__");
-	if (nameobj == NULL || !PyString_Check(nameobj)) {
+	d = ((PyModuleObject *)m)->md_dict;
+	if (d == NULL ||
+	    (nameobj = PyDict_GetItemString(d, "__name__")) == NULL ||
+	    !PyString_Check(nameobj))
+	{
 		PyErr_SetString(PyExc_SystemError, "nameless module");
 		return NULL;
 	}
@@ -70,14 +77,17 @@
 char *
 PyModule_GetFilename(PyObject *m)
 {
+	PyObject *d;
 	PyObject *fileobj;
 	if (!PyModule_Check(m)) {
 		PyErr_BadArgument();
 		return NULL;
 	}
-	fileobj = PyDict_GetItemString(((PyModuleObject *)m)->md_dict,
-				       "__file__");
-	if (fileobj == NULL || !PyString_Check(fileobj)) {
+	d = ((PyModuleObject *)m)->md_dict;
+	if (d == NULL ||
+	    (fileobj = PyDict_GetItemString(d, "__file__")) == NULL ||
+	    !PyString_Check(fileobj))
+	{
 		PyErr_SetString(PyExc_SystemError, "module filename missing");
 		return NULL;
 	}
@@ -99,6 +109,8 @@
 	PyObject *d;
 
 	d = ((PyModuleObject *)m)->md_dict;
+	if (d == NULL)
+		return;
 
 	/* First, clear only names starting with a single underscore */
 	pos = 0;
