diff --git a/Python/import.c b/Python/import.c
index ca3de3d..4239e12 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -48,9 +48,13 @@
 extern long getmtime(); /* In getmtime.c */
 
 /* Magic word to reject .pyc files generated by other Python versions */
-/* Increment by one for each incompatible change */
-/* MPW swaps CR and LF, so their value is incorporated as well */
-#define MAGIC (0x999903L ^ (('\n'^10L)<<16) ^ (('\r'^13L)<<8))
+/* Change for each incompatible change */
+/* The value of CR and LF is incorporated so if you ever read or write
+   a .pyc file in text mode the magic number will be wrong; also, the
+   Apple MPW compiler swaps their values, botching string constants */
+/* XXX Perhaps the magic number should be frozen and a version field
+   added to the .pyc file header? */
+#define MAGIC (0x4127L | ((long)'\r'<<16) | ((long)'\n'<<24))
 
 object *import_modules; /* This becomes sys.modules */
 
@@ -847,7 +851,7 @@
 	object *fob = NULL;
 	object *m;
 	FILE *fp;
-	if (!newgetargs(args, "ss|O!", &name, &pathname, &Filetype, &fob))
+	if (!newgetargs(args, "ssO!", &name, &pathname, &Filetype, &fob))
 		return NULL;
 	fp = get_file(pathname, fob, "rb");
 	if (fp == NULL)
@@ -865,10 +869,17 @@
 {
 	char *name;
 	char *pathname;
-	object *dummy;
-	if (!newgetargs(args, "ss|O", &name, &pathname, &dummy))
+	object *fob = NULL;
+	object *m;
+	FILE *fp = NULL;
+	if (!newgetargs(args, "ss|O!", &name, &pathname, &Filetype, &fob))
 		return NULL;
-	return load_dynamic_module(name, pathname, NULL);
+	if (fob)
+		fp = get_file(pathname, fob, "r");
+	m = load_dynamic_module(name, pathname, fp);
+	if (fob == NULL)
+		fclose(fp);
+	return m;
 }
 
 static object *
@@ -881,7 +892,7 @@
 	object *fob = NULL;
 	object *m;
 	FILE *fp;
-	if (!newgetargs(args, "ss|O!", &name, &pathname, &Filetype, &fob))
+	if (!newgetargs(args, "ssO!", &name, &pathname, &Filetype, &fob))
 		return NULL;
 	fp = get_file(pathname, fob, "r");
 	if (fp == NULL)
