diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index cc9b44e..9a1636a 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -74,7 +74,7 @@
         pop = range(n)
         trials = 10000  # large num prevents false negatives without slowing normal case
         def factorial(n):
-            return n==0 and 1 or n * factorial(n-1)
+            return reduce(int.__mul__, xrange(1, n), 1)
         for k in xrange(n):
             expected = factorial(n) / factorial(n-k)
             perms = {}
@@ -271,7 +271,7 @@
         # tests validity but not completeness of the __all__ list
         self.failUnless(Set(random.__all__) <= Set(dir(random)))
 
-def test_main():
+def test_main(verbose=None):
     suite = unittest.TestSuite()
     for testclass in (WichmannHill_TestBasicOps,
                       MersenneTwister_TestBasicOps,
@@ -280,5 +280,14 @@
         suite.addTest(unittest.makeSuite(testclass))
     test_support.run_suite(suite)
 
+    # verify reference counting
+    import sys
+    if verbose and hasattr(sys, "gettotalrefcount"):
+        counts = []
+        for i in xrange(5):
+            test_support.run_suite(suite)
+            counts.append(sys.gettotalrefcount()-i)
+        print counts
+
 if __name__ == "__main__":
-    test_main()
+    test_main(verbose=True)
