The recent changes to super(), in particular supercheck(), broke when
using super() for an instance in a metaclass situation.  Because the
class was a metaclass, the instance was a class, and hence the
PyType_Check() branch was taken.  But this branch didn't apply.  Make
it so that if this branch doesn't apply, the other branch is still
tried.  All tests pass.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index eb2e08f..52a98bc 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -5170,16 +5170,14 @@
 	   This will allow using super() with a proxy for obj.
 	*/
 
-	if (PyType_Check(obj)) {
-		/* It's a new-style class */
-		if (PyType_IsSubtype((PyTypeObject *)obj, type)) {
-			Py_INCREF(obj);
-			return (PyTypeObject *)obj;
-		}
-		else
-			goto fail;
+	/* Check for first bullet above (special case) */
+	if (PyType_Check(obj) && PyType_IsSubtype((PyTypeObject *)obj, type)) {
+		Py_INCREF(obj);
+		return (PyTypeObject *)obj;
 	}
-	else if (PyType_IsSubtype(obj->ob_type, type)) {
+
+	/* Normal case */
+	if (PyType_IsSubtype(obj->ob_type, type)) {
 		Py_INCREF(obj->ob_type);
 		return obj->ob_type;
 	}