diff --git a/Lib/test/test_email.py b/Lib/test/test_email.py
index 1322246..efbe271 100644
--- a/Lib/test/test_email.py
+++ b/Lib/test/test_email.py
@@ -29,8 +29,10 @@
 from email import base64MIME
 from email import quopriMIME
 
+import test_support
 from test_support import findfile, __file__ as test_support_file
 
+
 NL = '\n'
 EMPTYSTRING = ''
 SPACE = ' '
@@ -1573,30 +1575,23 @@
 
 
 
+def _testclasses():
+    mod = sys.modules[__name__]
+    return [getattr(mod, name) for name in dir(mod) if name.startswith('Test')]
+
+
 def suite():
     suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(TestMessageAPI))
-    suite.addTest(unittest.makeSuite(TestEncoders))
-    suite.addTest(unittest.makeSuite(TestLongHeaders))
-    suite.addTest(unittest.makeSuite(TestFromMangling))
-    suite.addTest(unittest.makeSuite(TestMIMEAudio))
-    suite.addTest(unittest.makeSuite(TestMIMEImage))
-    suite.addTest(unittest.makeSuite(TestMIMEText))
-    suite.addTest(unittest.makeSuite(TestMultipartMixed))
-    suite.addTest(unittest.makeSuite(TestNonConformant))
-    suite.addTest(unittest.makeSuite(TestRFC2047))
-    suite.addTest(unittest.makeSuite(TestMIMEMessage))
-    suite.addTest(unittest.makeSuite(TestIdempotent))
-    suite.addTest(unittest.makeSuite(TestMiscellaneous))
-    suite.addTest(unittest.makeSuite(TestIterators))
-    suite.addTest(unittest.makeSuite(TestParsers))
-    suite.addTest(unittest.makeSuite(TestBase64))
-    suite.addTest(unittest.makeSuite(TestQuopri))
-    suite.addTest(unittest.makeSuite(TestHeader))
-    suite.addTest(unittest.makeSuite(TestCharset))
+    for testclass in _testclasses():
+        suite.addTest(unittest.makeSuite(testclass))
     return suite
 
 
+def test_main():
+    for testclass in _testclasses():
+        test_support.run_unittest(testclass)
+
+
 
 if __name__ == '__main__':
     unittest.main(defaultTest='suite')
diff --git a/Lib/test/test_email_codecs.py b/Lib/test/test_email_codecs.py
index d0451d1..3a133e8 100644
--- a/Lib/test/test_email_codecs.py
+++ b/Lib/test/test_email_codecs.py
@@ -2,7 +2,7 @@
 # email package unit tests for (optional) Asian codecs
 
 import unittest
-from test_support import TestSkipped
+import test_support
 
 from email.Charset import Charset
 from email.Header import Header, decode_header
@@ -12,7 +12,7 @@
 try:
     unicode('foo', 'japanese.iso-2022-jp')
 except LookupError:
-    raise TestSkipped, 'Optional Japanese codecs not installed'
+    raise test_support.TestSkipped, 'Optional Japanese codecs not installed'
 
 
 
@@ -46,6 +46,10 @@
     return suite
 
 
+def test_main():
+    test_support.run_unittest(TestEmailAsianCodecs)
+
+
 
 if __name__ == '__main__':
     unittest.main(defaultTest='suite')
