Test for the safety check in wrap_cmpfunc().
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index dbfce0c..fc00318 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1304,6 +1304,21 @@
     for i in range(10):
         verify(i in p10)
     verify(10 not in p10)
+    # Safety test for __cmp__
+    def unsafecmp(a, b):
+        try:
+            a.__class__.__cmp__(a, b)
+        except TypeError:
+            pass
+        else:
+            raise TestFailed, "shouldn't allow %s.__cmp__(%r, %r)" % (
+                a.__class__, a, b)
+    unsafecmp(u"123", "123")
+    unsafecmp("123", u"123")
+    unsafecmp(1, 1.0)
+    unsafecmp(1.0, 1)
+    unsafecmp(1, 1L)
+    unsafecmp(1L, 1)
 
 def weakrefs():
     if verbose: print "Testing weak references..."