diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
index 268a4b7..3b0a13d 100644
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -60,6 +60,14 @@
                          '"""Tokenization help for Python programs.\n')
         fp.close()
 
+    def test_reload(self):
+        import marshal
+        imp.reload(marshal)
+        import string
+        imp.reload(string)
+        ## import sys
+        ## self.assertRaises(ImportError, reload, sys)
+
 
 def test_main():
     test_support.run_unittest(
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index cb4059a..6c9e0b0 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -7,6 +7,7 @@
 import sys
 import py_compile
 import warnings
+import imp
 from test.test_support import unlink, TESTFN, unload
 
 
@@ -160,6 +161,45 @@
             warnings.simplefilter('error', ImportWarning)
             self.assertRaises(ImportWarning, __import__, "site-packages")
 
+    def test_failing_reload(self):
+        # A failing reload should leave the module object in sys.modules.
+        source = TESTFN + ".py"
+        with open(source, "w") as f:
+            f.write("a = 1\nb=2\n")
+
+        sys.path.insert(0, os.curdir)
+        try:
+            mod = __import__(TESTFN)
+            self.assert_(TESTFN in sys.modules, "expected module in sys.modules")
+            self.assertEquals(mod.a, 1, "module has wrong attribute values")
+            self.assertEquals(mod.b, 2, "module has wrong attribute values")
+
+            # On WinXP, just replacing the .py file wasn't enough to
+            # convince reload() to reparse it.  Maybe the timestamp didn't
+            # move enough.  We force it to get reparsed by removing the
+            # compiled file too.
+            remove_files(TESTFN)
+
+            # Now damage the module.
+            with open(source, "w") as f:
+                f.write("a = 10\nb=20//0\n")
+
+            self.assertRaises(ZeroDivisionError, imp.reload, mod)
+            # But we still expect the module to be in sys.modules.
+            mod = sys.modules.get(TESTFN)
+            self.failIf(mod is None, "expected module to still be in sys.modules")
+
+            # We should have replaced a w/ 10, but the old b value should
+            # stick.
+            self.assertEquals(mod.a, 10, "module has wrong attribute values")
+            self.assertEquals(mod.b, 2, "module has wrong attribute values")
+
+        finally:
+            sys.path.pop(0)
+            remove_files(TESTFN)
+            if TESTFN in sys.modules:
+                del sys.modules[TESTFN]
+
 class PathsTests(unittest.TestCase):
     SAMPLES = ('test', 'test\u00e4\u00f6\u00fc\u00df', 'test\u00e9\u00e8',
                'test\u00b0\u00b3\u00b2')
