diff --git a/Lib/inspect.py b/Lib/inspect.py
index 240ff1d..ac0ee44 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -27,7 +27,7 @@
 __author__ = 'Ka-Ping Yee <ping@lfw.org>'
 __date__ = '1 Jan 2001'
 
-import sys, types, string, dis, imp, tokenize
+import sys, os, types, string, dis, imp, tokenize
 
 # ----------------------------------------------------------- type-checking
 def ismodule(object):
@@ -199,14 +199,15 @@
     if isclass(object):
         return sys.modules.get(object.__module__)
     try:
-        file = getsourcefile(object)
+        file = os.path.abspath(getsourcefile(object))
     except TypeError:
         return None
     if modulesbyfile.has_key(file):
         return sys.modules[modulesbyfile[file]]
     for module in sys.modules.values():
         if hasattr(module, '__file__'):
-            modulesbyfile[getsourcefile(module)] = module.__name__
+            modulesbyfile[
+                os.path.abspath(getsourcefile(module))] = module.__name__
     if modulesbyfile.has_key(file):
         return sys.modules[modulesbyfile[file]]
     main = sys.modules['__main__']
