An object with __call__ as an attribute, when called, will have that attribute checked for __call__ itself, and will continue to look until it finds an object without the attribute.  This can lead to an infinite recursion.

Closes bug #532646, again.  Will be backported.
diff --git a/Misc/NEWS b/Misc/NEWS
index 3bd732e..3ec43af 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,12 @@
 Core and builtins
 -----------------
 
+- Bug #532646: object.__call__() will continue looking for the __call__
+  attribute on objects until one without one is found.  This leads to recursion
+  when you take a class and set its __call__ attribute to an instance of the
+  class.  Originally fixed for classic classes, but this fix is for new-style.
+  Removes the infinite_rec_3 crasher.
+
 - The string and unicode methods startswith() and endswith() now accept
   a tuple of prefixes/suffixes to look for. Implements RFE #1491485.