Fix and test for an infinite C recursion.
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 26bfe87..ca7a8f3 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -649,6 +649,10 @@
             def __hash__(self):
                 return 2**100
         self.assertEquals(type(hash(Y())), int)
+        class Z(long):
+            def __hash__(self):
+                return self
+        self.assertEquals(hash(Z(42)), hash(42L))
 
     def test_hex(self):
         self.assertEqual(hex(16), '0x10')