Rename _better_reduce to _reduce_2, to make sure that any code that
was still referencing it will fail.  Also removed some debug cruft
from _reduce_ex.
diff --git a/Lib/copy_reg.py b/Lib/copy_reg.py
index fcef409..20e7bcf 100644
--- a/Lib/copy_reg.py
+++ b/Lib/copy_reg.py
@@ -80,7 +80,7 @@
 def __newobj__(cls, *args):
     return cls.__new__(cls, *args)
 
-def _better_reduce(obj):
+def _reduce_2(obj):
     cls = obj.__class__
     getnewargs = getattr(obj, "__getnewargs__", None)
     if getnewargs:
@@ -113,17 +113,12 @@
 
 def _reduce_ex(obj, proto=0):
     obj_reduce = getattr(obj, "__reduce__", None)
-    # XXX This fails in test_copy.py line 61
-    if obj_reduce:
-        try:
-            if obj.__class__.__reduce__ is not object.__reduce__:
-                return obj_reduce()
-        except AttributeError:
-            pass
-    if proto < 2:
+    if obj_reduce and obj.__class__.__reduce__ is not object.__reduce__:
+        return obj_reduce()
+    elif proto < 2:
         return _reduce(obj)
     else:
-        return _better_reduce(obj)
+        return _reduce_2(obj)
 
 def _slotnames(cls):
     """Return a list of slot names for a given class.