Add try-finally to close the file after loading it in
ModuleLoader.load_module!  (Thanks to Daniel Larsson who complained
about this.)
diff --git a/Lib/ihooks.py b/Lib/ihooks.py
index dfe29cf..8f64957 100644
--- a/Lib/ihooks.py
+++ b/Lib/ihooks.py
@@ -252,19 +252,22 @@
 
     def load_module(self, name, stuff):
 	file, filename, (suff, mode, type) = stuff
-	if type == BUILTIN_MODULE:
-	    return self.hooks.init_builtin(name)
-	if type == FROZEN_MODULE:
-	    return self.hooks.init_frozen(name)
-	if type == C_EXTENSION:
-	    m = self.hooks.load_dynamic(name, filename, file)
-	elif type == PY_SOURCE:
-	    m = self.hooks.load_source(name, filename, file)
-	elif type == PY_COMPILED:
-	    m = self.hooks.load_compiled(name, filename, file)
-	else:
-	    raise ImportError, "Unrecognized module type (%s) for %s" % \
-		  (`type`, name)
+	try:
+	    if type == BUILTIN_MODULE:
+		return self.hooks.init_builtin(name)
+	    if type == FROZEN_MODULE:
+		return self.hooks.init_frozen(name)
+	    if type == C_EXTENSION:
+		m = self.hooks.load_dynamic(name, filename, file)
+	    elif type == PY_SOURCE:
+		m = self.hooks.load_source(name, filename, file)
+	    elif type == PY_COMPILED:
+		m = self.hooks.load_compiled(name, filename, file)
+	    else:
+		raise ImportError, "Unrecognized module type (%s) for %s" % \
+		      (`type`, name)
+	finally:
+	    if file: file.close()
 	m.__file__ = filename
 	return m