import.c: When something is wrong with the .pyc, properly open the .py
	file.
object.c: Write allocation statistics to stderr.
diff --git a/Objects/object.c b/Objects/object.c
index f2d801b..73fba50 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -45,14 +45,15 @@
 	typeobject *tp;
 
 	for (tp = type_list; tp; tp = tp->tp_next)
-		printf("%s alloc'd: %d, freed: %d, max in use: %d\n",
-		       tp->tp_name, tp->tp_alloc, tp->tp_free,
-		       tp->tp_maxalloc);
-	printf("fast tuple allocs: %d, empty: %d\n", fast_tuple_allocs,
-	       tuple_zero_allocs);
-	printf("fast int allocs: pos: %d, neg: %d\n", quick_int_allocs,
-	       quick_neg_int_allocs);
-	printf("null strings: %d, 1-strings: %d\n", null_strings, one_strings);
+		fprintf(stderr, "%s alloc'd: %d, freed: %d, max in use: %d\n",
+			tp->tp_name, tp->tp_alloc, tp->tp_free,
+			tp->tp_maxalloc);
+	fprintf(stderr, "fast tuple allocs: %d, empty: %d\n",
+		fast_tuple_allocs, tuple_zero_allocs);
+	fprintf(stderr, "fast int allocs: pos: %d, neg: %d\n",
+		quick_int_allocs, quick_neg_int_allocs);
+	fprintf(stderr, "null strings: %d, 1-strings: %d\n",
+		null_strings, one_strings);
 }
 
 void
diff --git a/Python/import.c b/Python/import.c
index f0d4828..c0f163a 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -228,7 +228,6 @@
 		pyc_mtime = rd_long(fpc);
 		if (mtime != -1 && mtime > pyc_mtime) {
 			fclose(fpc);
-			fp = fopen(namebuf, "rb");
 			goto read_py;
 		}
 		if (magic == MAGIC) {
@@ -247,40 +246,46 @@
 				fprintf(stderr,
 			"import %s # precompiled from \"%s\"\n",
 					name, namebuf);
-			else
+			else {
 				fprintf(stderr,
 				"# invalid precompiled file \"%s\"\n",
 					namebuf);
-		}
-	}
-	else if ((fp = find_module(name, PY_SUFFIX, "r",
-				   namebuf, &mtime)) != NULL) {
-read_py:
-		namelen = strlen(namebuf);
-		if (co == NULL) {
-			if (verbose)
-				fprintf(stderr,
-					"import %s # from \"%s\"\n",
-					name, namebuf);
-			err = parse_file(fp, namebuf, file_input, &n);
-		} else
-			err = E_DONE;
-		fclose(fp);
-		if (err != E_DONE) {
-			err_input(err);
-			return NULL;
+				goto read_py;
+			}
 		}
 	}
 	else {
-		if (m == NULL) {
-			sprintf(namebuf, "no module named %.200s", name);
-			err_setstr(ImportError, namebuf);
+read_py:
+		if ((fp = find_module(name, PY_SUFFIX, "r",
+				      namebuf, &mtime)) != NULL) {
+			namelen = strlen(namebuf);
+			if (co == NULL) {
+				if (verbose)
+					fprintf(stderr,
+						"import %s # from \"%s\"\n",
+						name, namebuf);
+				err = parse_file(fp, namebuf, file_input, &n);
+			} else
+				err = E_DONE;
+			fclose(fp);
+			if (err != E_DONE) {
+				err_input(err);
+				return NULL;
+			}
 		}
 		else {
-			sprintf(namebuf, "no source for module %.200s", name);
-			err_setstr(ImportError, namebuf);
+			if (m == NULL) {
+				sprintf(namebuf, "no module named %.200s",
+					name);
+				err_setstr(ImportError, namebuf);
+			}
+			else {
+				sprintf(namebuf, "no source for module %.200s",
+					name);
+				err_setstr(ImportError, namebuf);
+			}
+			return NULL;
 		}
-		return NULL;
 	}
 	if (m == NULL) {
 		m = add_module(name);