diff --git a/Python/import.c b/Python/import.c
index 2be3308..529c3c2 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -3023,13 +3023,21 @@
 		int fd = PyObject_AsFileDescriptor(fob);
 		if (fd == -1)
 			return NULL;
-		/* XXX This will leak a FILE struct. Fix this!!!!
-		   (But it doesn't leak a file descrioptor!) */
+		if (!_PyVerify_fd(fd))
+			goto error;
+		/* the FILE struct gets a new fd, so that it can be closed
+		 * independently of the file descriptor given
+		 */
+		fd = dup(fd);
+		if (fd == -1)
+			goto error;
 		fp = fdopen(fd, mode);
 	}
-	if (fp == NULL)
-		PyErr_SetFromErrno(PyExc_IOError);
-	return fp;
+	if (fp)
+		return fp;
+error:
+	PyErr_SetFromErrno(PyExc_IOError);
+	return NULL;
 }
 
 static PyObject *
@@ -3051,8 +3059,7 @@
 		return NULL;
 	}
 	m = load_compiled_module(name, pathname, fp);
-	if (fob == NULL)
-		fclose(fp);
+	fclose(fp);
 	PyMem_Free(pathname);
 	return m;
 }
@@ -3081,6 +3088,8 @@
 	}
 	m = _PyImport_LoadDynamicModule(name, pathname, fp);
 	PyMem_Free(pathname);
+	if (fp)
+		fclose(fp);
 	return m;
 }
 
@@ -3105,8 +3114,7 @@
 		return NULL;
 	}
 	m = load_source_module(name, pathname, fp);
-	if (fob == NULL)
-		fclose(fp);
+	fclose(fp);
 	return m;
 }
 
@@ -3150,6 +3158,8 @@
 	} 
 	ret = load_module(name, fp, pathname, type, NULL);
 	PyMem_Free(pathname);
+	if (fp)
+		fclose(fp);
 	return ret;
 }
 
