Set the __file__ attribute of the imported module in both versions of
load_module(), to mimick the behavior of imp more closely.
diff --git a/Lib/ihooks.py b/Lib/ihooks.py
index 70aa811..dfe29cf 100644
--- a/Lib/ihooks.py
+++ b/Lib/ihooks.py
@@ -257,13 +257,16 @@
 	if type == FROZEN_MODULE:
 	    return self.hooks.init_frozen(name)
 	if type == C_EXTENSION:
-	    return self.hooks.load_dynamic(name, filename, file)
-	if type == PY_SOURCE:
-	    return self.hooks.load_source(name, filename, file)
-	if type == PY_COMPILED:
-	    return self.hooks.load_compiled(name, filename, file)
-	raise ImportError, "Unrecognized module type (%s) for %s" % \
-			   (`type`, name)
+	    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)
+	m.__file__ = filename
+	return m
 
 
 class FancyModuleLoader(ModuleLoader):
@@ -284,6 +287,7 @@
 	else:
 	    return ModuleLoader.load_module(self, name, stuff)
 	m = self.hooks.add_module(name)
+	m.__file__ = filename
 	exec code in m.__dict__
 	return m