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')
diff --git a/Python/import.c b/Python/import.c
index 658cc70..07bcbbf 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -2931,6 +2931,17 @@
 	return PyModule_New(name);
 }
 
+static PyObject *
+imp_reload(PyObject *self, PyObject *v)
+{
+        return PyImport_ReloadModule(v);
+}
+
+PyDoc_STRVAR(doc_reload,
+"reload(module) -> module\n\
+\n\
+Reload the module.  The module must have been successfully imported before.");
+
 /* Doc strings */
 
 PyDoc_STRVAR(doc_imp,
@@ -2989,6 +3000,7 @@
 	{"lock_held",	 imp_lock_held,	   METH_NOARGS,  doc_lock_held},
 	{"acquire_lock", imp_acquire_lock, METH_NOARGS,  doc_acquire_lock},
 	{"release_lock", imp_release_lock, METH_NOARGS,  doc_release_lock},
+	{"reload",       imp_reload,       METH_O,       doc_reload},
 	/* The rest are obsolete */
 	{"get_frozen_object",	imp_get_frozen_object,	METH_VARARGS},
 	{"init_builtin",	imp_init_builtin,	METH_VARARGS},
