PyModule_AddObject():  Added missing exceptions.
Closes SF bug #523473.
diff --git a/Python/modsupport.c b/Python/modsupport.c
index f29b27c..f4f8298 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -488,15 +488,22 @@
 PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 {
 	PyObject *dict;
-        if (!PyModule_Check(m) || o == NULL)
-                return -1;
-	dict = PyModule_GetDict(m);
-	if (dict == NULL)
+	if (!PyModule_Check(m) || o == NULL) {
+		PyErr_SetString(PyExc_TypeError,
+			    "PyModule_AddObject() needs module as first arg");
 		return -1;
-        if (PyDict_SetItemString(dict, name, o))
-                return -1;
-        Py_DECREF(o);
-        return 0;
+	}
+	dict = PyModule_GetDict(m);
+	if (dict == NULL) {
+		/* Internal error -- modules must have a dict! */
+		PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
+			     PyModule_GetName(m));
+		return -1;
+	}
+	if (PyDict_SetItemString(dict, name, o))
+		return -1;
+	Py_DECREF(o);
+	return 0;
 }
 
 int