diff --git a/Lib/test/test_binhex.py b/Lib/test/test_binhex.py
index c774200..2580fb2 100755
--- a/Lib/test/test_binhex.py
+++ b/Lib/test/test_binhex.py
@@ -42,4 +42,9 @@
         self.assertEqual(self.DATA, finish)
 
 
-test_support.run_unittest(BinHexTestCase)
+def test_main():
+    test_support.run_unittest(BinHexTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_binop.py b/Lib/test/test_binop.py
index c64e3a8..976e7ff 100644
--- a/Lib/test/test_binop.py
+++ b/Lib/test/test_binop.py
@@ -320,4 +320,9 @@
 self.assertEqual(eval('1/2'), 0.5)
 """
 
-test_support.run_unittest(RatTestCase)
+def test_main():
+    test_support.run_unittest(RatTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_call.py b/Lib/test/test_call.py
index 529f15b..886bf18 100644
--- a/Lib/test/test_call.py
+++ b/Lib/test/test_call.py
@@ -122,4 +122,10 @@
     def test_oldargs1_2_kw(self):
         self.assertRaises(TypeError, {}.update, x=2, y=2)
 
-run_unittest(CFunctionCalls)
+
+def test_main():
+    run_unittest(CFunctionCalls)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 6d9e31d..28d84ce 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -22,4 +22,10 @@
         f = reader(s)
         self.assertEquals(f.read(), u"spamspam")
 
-test_support.run_unittest(UTF16Test)
+
+def test_main():
+    test_support.run_unittest(UTF16Test)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py
index 7847fb3..fbe4a31 100644
--- a/Lib/test/test_codeop.py
+++ b/Lib/test/test_codeop.py
@@ -87,4 +87,10 @@
         self.assertNotEquals(compile_command("a = 1\n", "abc").co_filename,
                              compile("a = 1\n", "def", 'single').co_filename)
 
-run_unittest(CodeopTests)
+
+def test_main():
+    run_unittest(CodeopTests)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_commands.py b/Lib/test/test_commands.py
index 54ae676..77372c5 100644
--- a/Lib/test/test_commands.py
+++ b/Lib/test/test_commands.py
@@ -42,4 +42,10 @@
 
         self.assert_(re.match(pat, getstatus("/bin/ls"), re.VERBOSE))
 
-run_unittest(CommandTests)
+
+def test_main():
+    run_unittest(CommandTests)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_copy_reg.py b/Lib/test/test_copy_reg.py
index 51ec60b..0f5c96f 100644
--- a/Lib/test/test_copy_reg.py
+++ b/Lib/test/test_copy_reg.py
@@ -22,4 +22,9 @@
                           type(1), int, "not a callable")
 
 
-test_support.run_unittest(CopyRegTestCase)
+def test_main():
+    test_support.run_unittest(CopyRegTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_dircache.py b/Lib/test/test_dircache.py
index 6d57dcf..95dc2af 100644
--- a/Lib/test/test_dircache.py
+++ b/Lib/test/test_dircache.py
@@ -65,4 +65,10 @@
         dircache.annotate(self.tempdir, lst)
         self.assertEquals(lst, ['A/', 'test2', 'test_nonexistent'])
 
-run_unittest(DircacheTests)
+
+def test_main():
+    run_unittest(DircacheTests)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_dospath.py b/Lib/test/test_dospath.py
index 74bdd4a..3cca159 100644
--- a/Lib/test/test_dospath.py
+++ b/Lib/test/test_dospath.py
@@ -53,4 +53,9 @@
         self.assertEquals(splitdrive("c:"), ('c:', ''))
 
 
-test_support.run_unittest(DOSPathTestCase)
+def test_main():
+    test_support.run_unittest(DOSPathTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_fnmatch.py b/Lib/test/test_fnmatch.py
index 9f08926..0bd7d6a 100644
--- a/Lib/test/test_fnmatch.py
+++ b/Lib/test/test_fnmatch.py
@@ -38,4 +38,9 @@
         check('\\', r'[!\]', 0)
 
 
-test_support.run_unittest(FnmatchTestCase)
+def test_main():
+    test_support.run_unittest(FnmatchTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_fpformat.py b/Lib/test/test_fpformat.py
index 9d20dc9..d4a5eb2 100644
--- a/Lib/test/test_fpformat.py
+++ b/Lib/test/test_fpformat.py
@@ -66,4 +66,10 @@
         else:
             self.fail("No exception on non-numeric sci")
 
-run_unittest(FpformatTest)
+
+def test_main():
+    run_unittest(FpformatTest)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_glob.py b/Lib/test/test_glob.py
index 804ae1d..8cf6ecf 100644
--- a/Lib/test/test_glob.py
+++ b/Lib/test/test_glob.py
@@ -106,4 +106,10 @@
         eq(self.glob('?a?', '*F'), map(self.norm, [os.path.join('aaa', 'zzzF'),
                                                    os.path.join('aab', 'F')]))
 
-run_unittest(GlobTests)
+
+def test_main():
+    run_unittest(GlobTests)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py
index 1edb417..a16a922 100755
--- a/Lib/test/test_grp.py
+++ b/Lib/test/test_grp.py
@@ -19,4 +19,9 @@
         entry = grp.getgrnam(self.groups[0][0])
 
 
-test_support.run_unittest(GroupDatabaseTestCase)
+def test_main():
+    test_support.run_unittest(GroupDatabaseTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_hash.py b/Lib/test/test_hash.py
index 20ec9a4..f8a1523 100644
--- a/Lib/test/test_hash.py
+++ b/Lib/test/test_hash.py
@@ -28,4 +28,9 @@
         self.same_hash(float(0.5), complex(0.5, 0.0))
 
 
-test_support.run_unittest(HashEqualityTestCase)
+def test_main():
+    test_support.run_unittest(HashEqualityTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_iter.py b/Lib/test/test_iter.py
index 37fab7c..f6084cb 100644
--- a/Lib/test/test_iter.py
+++ b/Lib/test/test_iter.py
@@ -694,4 +694,10 @@
         (a, b), (c,) = IteratingSequenceClass(2), {42: 24}
         self.assertEqual((a, b, c), (0, 1, 42))
 
-run_unittest(TestCase)
+
+def test_main():
+    run_unittest(TestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index 57a8316..4e23398 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -96,4 +96,9 @@
     # XXX We still need more tests!
 
 
-test_support.run_unittest(MaildirTestCase)
+def test_main():
+    test_support.run_unittest(MaildirTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_mhlib.py b/Lib/test/test_mhlib.py
index 30f8ca3..9d5f101 100644
--- a/Lib/test/test_mhlib.py
+++ b/Lib/test/test_mhlib.py
@@ -331,4 +331,10 @@
         msg.fp.close()
         del msg
 
-run_unittest(MhlibTests)
+
+def test_main():
+    run_unittest(MhlibTests)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index 9b9d339..8735e27 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -39,4 +39,9 @@
                          ".pyunit")
 
 
-test_support.run_unittest(MimeTypesTestCase)
+def test_main():
+    test_support.run_unittest(MimeTypesTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_operator.py b/Lib/test/test_operator.py
index 6312d9a..439d340 100644
--- a/Lib/test/test_operator.py
+++ b/Lib/test/test_operator.py
@@ -210,4 +210,9 @@
         self.failUnless(operator.xor(0xb, 0xc) == 0x7)
 
 
-test_support.run_unittest(OperatorTestCase)
+def test_main():
+    test_support.run_unittest(OperatorTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 9cddb5f..3f26f2f 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -62,5 +62,9 @@
         self.check_tempfile(os.tmpnam())
 
 
+def test_main():
+    run_unittest(TemporaryFileTests)
 
-run_unittest(TemporaryFileTests)
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py
index 9e99475..966f3e9 100644
--- a/Lib/test/test_parser.py
+++ b/Lib/test/test_parser.py
@@ -353,5 +353,13 @@
         self.check_bad_tree(tree, "a $= b")
 
 
-test_support.run_unittest(RoundtripLegalSyntaxTestCase)
-test_support.run_unittest(IllegalSyntaxTestCase)
+def test_main():
+    loader = unittest.TestLoader()
+    suite = unittest.TestSuite()
+    suite.addTest(loader.loadTestsFromTestCase(RoundtripLegalSyntaxTestCase))
+    suite.addTest(loader.loadTestsFromTestCase(IllegalSyntaxTestCase))
+    test_support.run_suite(suite)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_pkgimport.py b/Lib/test/test_pkgimport.py
index 2f19509..72889f9 100644
--- a/Lib/test/test_pkgimport.py
+++ b/Lib/test/test_pkgimport.py
@@ -75,4 +75,10 @@
         reload(module)
         self.assertEqual(getattr(module, var), 1)
 
-run_unittest(TestImport)
+
+def test_main():
+    run_unittest(TestImport)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_pprint.py b/Lib/test/test_pprint.py
index 34c7a84..167b4ac 100644
--- a/Lib/test/test_pprint.py
+++ b/Lib/test/test_pprint.py
@@ -76,4 +76,10 @@
                 verify(native == got, "expected %s got %s from pprint.%s" %
                                       (native, got, function))
 
-test_support.run_unittest(QueryTestCase)
+
+def test_main():
+    test_support.run_unittest(QueryTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py
index ce4d8ac..179b3b5 100644
--- a/Lib/test/test_pyclbr.py
+++ b/Lib/test/test_pyclbr.py
@@ -153,4 +153,10 @@
         # pdb plays too many dynamic games
         # cm('pdb', pdb)
 
-run_unittest(PyclbrTest)
+
+def test_main():
+    run_unittest(PyclbrTest)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_quopri.py b/Lib/test/test_quopri.py
index 348f4bc..0e99727 100644
--- a/Lib/test/test_quopri.py
+++ b/Lib/test/test_quopri.py
@@ -136,4 +136,9 @@
             self.assert_(decodestring(e) == p)
 
 
-test_support.run_unittest(QuopriTestCase)
+def test_main():
+    test_support.run_unittest(QuopriTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py
index cd9675a..b7d9374 100644
--- a/Lib/test/test_repr.py
+++ b/Lib/test/test_repr.py
@@ -265,6 +265,11 @@
         raise Exception("This should be caught by Repr.repr_instance")
 
 
-run_unittest(ReprTests)
-if os.name != 'mac':
-    run_unittest(LongReprTest)
+def test_main():
+    run_unittest(ReprTests)
+    if os.name != 'mac':
+        run_unittest(LongReprTest)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_rfc822.py b/Lib/test/test_rfc822.py
index 4040cdb..ab1746b 100644
--- a/Lib/test/test_rfc822.py
+++ b/Lib/test/test_rfc822.py
@@ -177,4 +177,10 @@
         self.check('To: User J. Person <person@dom.ain>\n\n',
                    [('User J. Person', 'person@dom.ain')])
 
-test_support.run_unittest(MessageTestCase)
+
+def test_main():
+    test_support.run_unittest(MessageTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_sha.py b/Lib/test/test_sha.py
index bc76809..cad7780 100644
--- a/Lib/test/test_sha.py
+++ b/Lib/test/test_sha.py
@@ -27,4 +27,9 @@
                    "34aa973cd4c4daa4f61eeb2bdbad27316534016f")
 
 
-test_support.run_unittest(SHATestCase)
+def test_main():
+    test_support.run_unittest(SHATestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_strop.py b/Lib/test/test_strop.py
index 7a32e08..e26f08f 100644
--- a/Lib/test/test_strop.py
+++ b/Lib/test/test_strop.py
@@ -125,4 +125,9 @@
     def __getitem__(self, i): return self.seq[i]
 
 
-test_support.run_unittest(StropFunctionTestCase)
+def test_main():
+    test_support.run_unittest(StropFunctionTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index 160ce4d..b2a3a28 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -48,4 +48,9 @@
                                         999999))
 
 
-test_support.run_unittest(TimeTestCase)
+def test_main():
+    test_support.run_unittest(TimeTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
index 9f818e1..1b0a124 100644
--- a/Lib/test/test_traceback.py
+++ b/Lib/test/test_traceback.py
@@ -37,4 +37,10 @@
         self.assert_(len(err) == 3)
         self.assert_(err[1].strip() == "[x for x in x] = x")
 
-run_unittest(TracebackCases)
+
+def test_main():
+    run_unittest(TracebackCases)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_unary.py b/Lib/test/test_unary.py
index 01c5f01..0c5dd94 100644
--- a/Lib/test/test_unary.py
+++ b/Lib/test/test_unary.py
@@ -49,4 +49,10 @@
         self.assertRaises(TypeError, eval, "~2j")
         self.assertRaises(TypeError, eval, "~2.0")
 
-run_unittest(UnaryOpTestCase)
+
+def test_main():
+    run_unittest(UnaryOpTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
index fa12a6e..5dfa6ce 100644
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -2,7 +2,7 @@
 import unittest
 import weakref
 
-from test_support import run_unittest
+import test_support
 
 
 class C:
@@ -434,5 +434,13 @@
         self.assert_(d.items() == [('something else', o2)])
 
 
-run_unittest(ReferencesTestCase)
-run_unittest(MappingTestCase)
+def test_main():
+    loader = unittest.TestLoader()
+    suite = unittest.TestSuite()
+    suite.addTest(loader.loadTestsFromTestCase(ReferencesTestCase))
+    suite.addTest(loader.loadTestsFromTestCase(MappingTestCase))
+    test_support.run_suite(suite)
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_xmllib.py b/Lib/test/test_xmllib.py
index a1c5057..9ea5042 100644
--- a/Lib/test/test_xmllib.py
+++ b/Lib/test/test_xmllib.py
@@ -27,4 +27,9 @@
         parser.close()
 
 
-test_support.run_unittest(XMLParserTestCase)
+def test_main():
+    test_support.run_unittest(XMLParserTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
