Convert iterator __len__() methods to a private API.
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py
index b6a18ee..e0a272e 100644
--- a/Lib/test/test_enumerate.py
+++ b/Lib/test/test_enumerate.py
@@ -144,6 +144,7 @@
 
     def test_len(self):
         # This is an implementation detail, not an interface requirement
+        from test.test_iterlen import len
         for s in ('hello', tuple('hello'), list('hello'), xrange(5)):
             self.assertEqual(len(reversed(s)), len(s))
             r = reversed(s)
diff --git a/Lib/test/test_iterlen.py b/Lib/test/test_iterlen.py
index b51263d..1770de2 100644
--- a/Lib/test/test_iterlen.py
+++ b/Lib/test/test_iterlen.py
@@ -43,12 +43,22 @@
 
 import unittest
 from test import test_support
-from itertools import repeat, count
+from itertools import repeat
 from collections import deque
 from UserList import UserList
+from __builtin__ import len as _len
 
 n = 10
 
+def len(obj):
+    try:
+        return _len(obj)
+    except TypeError:
+        try:
+            return obj._length_cue()
+        except AttributeError:
+            raise TypeError
+
 class TestInvariantWithoutMutations(unittest.TestCase):
 
     def test_invariant(self):
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
index 5db128c..635d156 100644
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -670,6 +670,7 @@
 class LengthTransparency(unittest.TestCase):
 
     def test_repeat(self):
+        from test.test_iterlen import len
         self.assertEqual(len(repeat(None, 50)), 50)
         self.assertRaises(TypeError, len, repeat(None))