Merged revisions 78800 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78800 | florent.xicluna | 2010-03-08 16:20:28 +0100 (lun, 08 mar 2010) | 2 lines

  #7624: Fix isinstance(foo(), collections.Callable) for old-style classes.
........
diff --git a/Lib/abc.py b/Lib/abc.py
index 95126d8..681c753 100644
--- a/Lib/abc.py
+++ b/Lib/abc.py
@@ -4,6 +4,11 @@
 """Abstract Base Classes (ABCs) according to PEP 3119."""
 
 
+# Instance of old-style class
+class _C: pass
+_InstanceType = type(_C())
+
+
 def abstractmethod(funcobj):
     """A decorator indicating abstract methods.
 
@@ -124,6 +129,9 @@
         if subclass in cls._abc_cache:
             return True
         subtype = type(instance)
+        # Old-style instances
+        if subtype is _InstanceType:
+            subtype = subclass
         if subtype is subclass or subclass is None:
             if (cls._abc_negative_cache_version ==
                 ABCMeta._abc_invalidation_counter and