diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py
index c760356..272f61d 100644
--- a/Lib/test/test_abc.py
+++ b/Lib/test/test_abc.py
@@ -8,7 +8,6 @@
 from test import test_support
 
 import abc
-__metaclass__ = type
 
 
 class TestABC(unittest.TestCase):
@@ -59,10 +58,18 @@
             self.assertEqual(F.__abstractmethods__, set(["bar"]))
             self.assertRaises(TypeError, F)  # because bar is abstract now
 
+    def test_subclass_oldstyle_class(self):
+        class A:
+            __metaclass__ = abc.ABCMeta
+        class OldstyleClass:
+            pass
+        self.assertFalse(issubclass(OldstyleClass, A))
+        self.assertFalse(issubclass(A, OldstyleClass))
+
     def test_registration_basics(self):
         class A:
             __metaclass__ = abc.ABCMeta
-        class B:
+        class B(object):
             pass
         b = B()
         self.assertEqual(issubclass(B, A), False)
@@ -95,7 +102,7 @@
         class A1(A):
             pass
         self.assertRaises(RuntimeError, A1.register, A)  # cycles not allowed
-        class B:
+        class B(object):
             pass
         A1.register(B)  # ok
         A1.register(B)  # should pass silently
@@ -136,7 +143,7 @@
     def test_all_new_methods_are_called(self):
         class A:
             __metaclass__ = abc.ABCMeta
-        class B:
+        class B(object):
             counter = 0
             def __new__(cls):
                 B.counter += 1
