diff --git a/Lib/test/test_isinstance.py b/Lib/test/test_isinstance.py
index 1bb09a6..5a19387 100644
--- a/Lib/test/test_isinstance.py
+++ b/Lib/test/test_isinstance.py
@@ -165,6 +165,13 @@
 class Child(Super):
     pass
 
+# new-style classes
+class NewSuper(object):
+    pass
+
+class NewChild(NewSuper):
+    pass
+
 
 
 class TestIsInstanceIsSubclass(unittest.TestCase):
@@ -225,7 +232,17 @@
         self.assertEqual(False, issubclass(Super, (Child,)))
         self.assertEqual(True, issubclass(Super, (Child, Super)))
         self.assertEqual(False, issubclass(Child, ()))
-        self.assertRaises(TypeError, issubclass, Child, ((Child,),))
+        self.assertEqual(True, issubclass(Super, (Child, (Super,))))
+
+        self.assertEqual(True, issubclass(NewChild, (NewChild,)))
+        self.assertEqual(True, issubclass(NewChild, (NewSuper,)))
+        self.assertEqual(False, issubclass(NewSuper, (NewChild,)))
+        self.assertEqual(True, issubclass(NewSuper, (NewChild, NewSuper)))
+        self.assertEqual(False, issubclass(NewChild, ()))
+        self.assertEqual(True, issubclass(NewSuper, (NewChild, (NewSuper,))))
+
+        self.assertEqual(True, issubclass(int, (long, (float, int))))
+        self.assertEqual(True, issubclass(str, (unicode, (Child, NewChild, basestring))))
 
 
 
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 47d2f31..8389774 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2021,11 +2021,11 @@
 			int i;
 			int n = PyTuple_GET_SIZE(cls);
 			for (i = 0; i < n; ++i) {
-				if (!check_class(PyTuple_GET_ITEM(cls, i),
-						"issubclass() arg 2 must be a class"
-						" or tuple of classes"))
-					return -1;
+				retval = PyObject_IsSubclass(derived, PyTuple_GET_ITEM(cls, i));
+				if (retval != 0) /* either found it, or got an error */
+					return retval;
 			}
+			return 0;
 		}
 		else {
 			if (!check_class(cls,
diff --git a/Objects/classobject.c b/Objects/classobject.c
index f3b9873..5234a65 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -490,9 +490,10 @@
 	if (PyTuple_Check(base)) {
 		n = PyTuple_GET_SIZE(base);
 		for (i = 0; i < n; i++) {
-			if (class == PyTuple_GET_ITEM(base, i))
+			if (PyClass_IsSubclass(class, PyTuple_GET_ITEM(base, i)))
 				return 1;
 		}
+		return 0;
 	}
 	if (class == NULL || !PyClass_Check(class))
 		return 0;
