Issue #6334:  Fix buggy internal length calculation in builtin range function
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index a62e124..fdb0ea2 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -924,6 +924,24 @@
         self.assertEqual(list(range(1, 10, 3)), [1, 4, 7])
         #self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4])
 
+        #issue 6334: the internal stored range length was being
+        #computed incorrectly in some cases involving large arguments.
+        x = range(10**20, 10**20+10, 3)
+        self.assertEqual(len(x), 4)
+        self.assertEqual(len(list(x)), 4)
+
+        x = range(10**20+10, 10**20, 3)
+        self.assertEqual(len(x), 0)
+        self.assertEqual(len(list(x)), 0)
+
+        x = range(10**20, 10**20+10, -3)
+        self.assertEqual(len(x), 0)
+        self.assertEqual(len(list(x)), 0)
+
+        x = range(10**20+10, 10**20, -3)
+        self.assertEqual(len(x), 4)
+        self.assertEqual(len(list(x)), 4)
+
         """ XXX(nnorwitz):
         # Now test range() with longs
         self.assertEqual(list(range(-2**100)), [])