Thomas Wouters pointed out that _Abstract.__new__ should use super().__new__()
instead of going straight to object.__new__().
diff --git a/Lib/abc.py b/Lib/abc.py
index ad5a523..f8e0230 100644
--- a/Lib/abc.py
+++ b/Lib/abc.py
@@ -56,8 +56,6 @@
     """Helper class inserted into the bases by ABCMeta (using _fix_bases()).
 
     You should never need to explicitly subclass this class.
-
-    There should never be a base class between _Abstract and object.
     """
 
     def __new__(cls, *args, **kwds):
@@ -69,7 +67,7 @@
         if (args or kwds) and cls.__init__ is object.__init__:
             raise TypeError("Can't pass arguments to __new__ "
                             "without overriding __init__")
-        return object.__new__(cls)
+        return super().__new__(cls)
 
     @classmethod
     def __subclasshook__(cls, subclass):
diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py
index f93f3d3..008d839 100644
--- a/Lib/test/test_abc.py
+++ b/Lib/test/test_abc.py
@@ -130,6 +130,20 @@
         self.failUnless(issubclass(MyInt, A))
         self.failUnless(isinstance(42, A))
 
+    def test_all_new_methods_are_called(self):
+        class A(metaclass=abc.ABCMeta):
+            pass
+        class B:
+            counter = 0
+            def __new__(cls):
+                B.counter += 1
+                return super().__new__(cls)
+        class C(A, B):
+            pass
+        self.assertEqual(B.counter, 0)
+        C()
+        self.assertEqual(B.counter, 1)
+
 
 def test_main():
     test_support.run_unittest(TestABC)