diff --git a/Lib/unittest.py b/Lib/unittest.py
index 64d54d8..9100a78 100644
--- a/Lib/unittest.py
+++ b/Lib/unittest.py
@@ -422,7 +422,8 @@
         tests = []
         for name in dir(module):
             obj = getattr(module, name)
-            if type(obj) == types.ClassType and issubclass(obj, TestCase):
+            if (isinstance(obj, (type, types.ClassType)) and
+                issubclass(obj, TestCase)):
                 tests.append(self.loadTestsFromTestCase(obj))
         return self.suiteClass(tests)
 
@@ -456,7 +457,8 @@
         import unittest
         if type(obj) == types.ModuleType:
             return self.loadTestsFromModule(obj)
-        elif type(obj) == types.ClassType and issubclass(obj, unittest.TestCase):
+        elif (isinstance(obj, (type, types.ClassType)) and
+              issubclass(obj, unittest.TestCase)):
             return self.loadTestsFromTestCase(obj)
         elif type(obj) == types.UnboundMethodType:
             return obj.im_class(obj.__name__)
