diff --git a/Lib/importlib/test/__init__.py b/Lib/importlib/test/__init__.py
index bda33e6..e69de29 100644
--- a/Lib/importlib/test/__init__.py
+++ b/Lib/importlib/test/__init__.py
@@ -1,31 +0,0 @@
-import os.path
-import sys
-import unittest
-
-
-def test_suite(package=__package__, directory=os.path.dirname(__file__)):
-    suite = unittest.TestSuite()
-    for name in os.listdir(directory):
-        if name.startswith('.'):
-            continue
-        path = os.path.join(directory, name)
-        if (os.path.isfile(path) and name.startswith('test_') and
-                name.endswith('.py')):
-            submodule_name = os.path.splitext(name)[0]
-            module_name = "{0}.{1}".format(package, submodule_name)
-            __import__(module_name, level=0)
-            module_tests = unittest.findTestCases(sys.modules[module_name])
-            suite.addTest(module_tests)
-        elif os.path.isdir(path):
-            package_name = "{0}.{1}".format(package, name)
-            __import__(package_name, level=0)
-            package_tests = getattr(sys.modules[package_name], 'test_suite')()
-            suite.addTest(package_tests)
-        else:
-            continue
-    return suite
-
-
-if __name__ == '__main__':
-    from test.support import run_unittest
-    run_unittest(test_suite('importlib.test'))
diff --git a/Lib/importlib/test/__main__.py b/Lib/importlib/test/__main__.py
new file mode 100644
index 0000000..d0710bd
--- /dev/null
+++ b/Lib/importlib/test/__main__.py
@@ -0,0 +1,14 @@
+import os.path
+from test.support import run_unittest
+import unittest
+
+
+def test_main():
+    start_dir = os.path.dirname(__file__)
+    top_dir = os.path.dirname(os.path.dirname(start_dir))
+    test_loader = unittest.TestLoader()
+    run_unittest(test_loader.discover(start_dir, top_level_dir=top_dir))
+
+
+if __name__ == '__main__':
+    test_main()
diff --git a/Lib/test/test_importlib.py b/Lib/test/test_importlib.py
index cd13e32..6ed0585 100644
--- a/Lib/test/test_importlib.py
+++ b/Lib/test/test_importlib.py
@@ -1,9 +1,4 @@
-from test.support import run_unittest
-import importlib.test
-
-
-def test_main():
-    run_unittest(importlib.test.test_suite('importlib.test'))
+from importlib.test.__main__ import test_main
 
 
 if __name__ == '__main__':
diff --git a/Misc/NEWS b/Misc/NEWS
index d44789e..a740b33 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -74,6 +74,12 @@
 - Issue 5390: Add uninstall icon independent of whether file
   extensions are installed.
 
+Tests
+-----
+
+- Removed importlib's custom test discovery code and switched to
+    unittest.TestLoader.discover().
+
 
 What's New in Python 3.1?
 =========================
