diff --git a/Lib/abc.py b/Lib/abc.py
index 1ce38a8..9d15012 100644
--- a/Lib/abc.py
+++ b/Lib/abc.py
@@ -163,8 +163,20 @@
 
     def __instancecheck__(cls, instance):
         """Override for isinstance(instance, cls)."""
-        return any(cls.__subclasscheck__(c)
-                   for c in set([instance.__class__, type(instance)]))
+        # Inline the cache checking for new-style classes.
+        subclass = instance.__class__
+        if subclass in cls._abc_cache:
+            return True
+        subtype = type(instance)
+        if subtype is subclass:
+            if (cls._abc_negative_cache_version ==
+                ABCMeta._abc_invalidation_counter and
+                subclass in cls._abc_negative_cache):
+                return False
+            # Fall back to the subclass check.
+            return cls.__subclasscheck__(subclass)
+        return (cls.__subclasscheck__(subclass) or
+                cls.__subclasscheck__(subtype))
 
     def __subclasscheck__(cls, subclass):
         """Override for issubclass(subclass, cls)."""
