diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c
index 7b9e0e9..09bbae9 100644
--- a/Objects/moduleobject.c
+++ b/Objects/moduleobject.c
@@ -37,7 +37,7 @@
 	object *m;
 {
 	if (!is_moduleobject(m)) {
-		errno = EBADF;
+		err_badarg();
 		return NULL;
 	}
 	return ((moduleobject *)m) -> md_dict;
@@ -48,10 +48,14 @@
 	object *m;
 	object *v;
 {
-	if (!is_moduleobject(m))
-		return errno = EBADF;
-	if (!is_dictobject(v))
-		return errno = EINVAL;
+	if (!is_moduleobject(m)) {
+		err_badarg();
+		return -1;
+	}
+	if (!is_dictobject(v)) {
+		err_badarg();
+		return -1;
+	}
 	DECREF(((moduleobject *)m) -> md_dict);
 	INCREF(v);
 	((moduleobject *)m) -> md_dict = v;
@@ -94,7 +98,12 @@
 	moduleobject *m;
 	char *name;
 {
-	object *res = dictlookup(m->md_dict, name);
+	object *res;
+	if (strcmp(name, "__dict") == 0) {
+		INCREF(m->md_dict);
+		return m->md_dict;
+	}
+	res = dictlookup(m->md_dict, name);
 	if (res == NULL)
 		err_setstr(NameError, name);
 	else
@@ -108,6 +117,12 @@
 	char *name;
 	object *v;
 {
+	if (strcmp(name, "__dict") == 0) {
+		/* Can't allow assignment to __dict, it would screw up
+		   module's functions which still use the old dictionary. */
+		err_setstr(NameError, "__dict is a reserved member name");
+		return NULL;
+	}
 	if (v == NULL)
 		return dictremove(m->md_dict, name);
 	else
