diff --git a/Lib/test/test_b2.py b/Lib/test/test_b2.py
index 3b322a5..1aff837 100644
--- a/Lib/test/test_b2.py
+++ b/Lib/test/test_b2.py
@@ -209,7 +209,7 @@
 print 'str'
 if str('') <> '': raise TestFailed, 'str(\'\')'
 if str(0) <> '0': raise TestFailed, 'str(0)'
-if str(0L) <> '0L': raise TestFailed, 'str(0L)'
+if str(0L) <> '0': raise TestFailed, 'str(0L)'
 if str(()) <> '()': raise TestFailed, 'str(())'
 if str([]) <> '[]': raise TestFailed, 'str([])'
 if str({}) <> '{}': raise TestFailed, 'str({})'
diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py
index f235d9c..25abcc8 100644
--- a/Lib/test/test_long.py
+++ b/Lib/test/test_long.py
@@ -159,7 +159,7 @@
             test_bitop_identities_2(x, y)
             test_bitop_identities_3(x, y, getran((lenx + leny)/2))
 
-# ------------------------------------------------------ hex oct str atol
+# ------------------------------------------------- hex oct repr str atol
 
 def slow_format(x, base):
     if (x, base) == (0, 8):
@@ -181,12 +181,18 @@
 
 def test_format_1(x):
     from string import atol
-    for base, mapper in (8, oct), (10, str), (16, hex):
+    for base, mapper in (8, oct), (10, repr), (16, hex):
         got = mapper(x)
         expected = slow_format(x, base)
         check(got == expected, mapper.__name__, "returned",
               got, "but expected", expected, "for", x)
         check(atol(got, 0) == x, 'atol("%s", 0) !=' % got, x)
+    # str() has to be checked a little differently since there's no
+    # trailing "L"
+    got = str(x)
+    expected = slow_format(x, 10)[:-1]
+    check(got == expected, mapper.__name__, "returned",
+          got, "but expected", expected, "for", x)
 
 def test_format(maxdigits=MAXDIGITS):
     print "long str/hex/oct/atol"
diff --git a/Lib/test/test_pow.py b/Lib/test/test_pow.py
index ec17d53..6e3dda7 100644
--- a/Lib/test/test_pow.py
+++ b/Lib/test/test_pow.py
@@ -56,20 +56,20 @@
 # Other tests-- not very systematic
 
 print 'The number in both columns should match.'
-print pow(3,3) % 8, pow(3,3,8)
-print pow(3,3) % -8, pow(3,3,-8)
-print pow(3,2) % -2, pow(3,2,-2)
-print pow(-3,3) % 8, pow(-3,3,8)
-print pow(-3,3) % -8, pow(-3,3,-8)
-print pow(5,2) % -8, pow(5,2,-8)
+print `pow(3,3) % 8`, `pow(3,3,8)`
+print `pow(3,3) % -8`, `pow(3,3,-8)`
+print `pow(3,2) % -2`, `pow(3,2,-2)`
+print `pow(-3,3) % 8`, `pow(-3,3,8)`
+print `pow(-3,3) % -8`, `pow(-3,3,-8)`
+print `pow(5,2) % -8`, `pow(5,2,-8)`
 print
 
-print pow(3L,3L) % 8, pow(3L,3L,8)
-print pow(3L,3L) % -8, pow(3L,3L,-8)
-print pow(3L,2) % -2, pow(3L,2,-2)
-print pow(-3L,3L) % 8, pow(-3L,3L,8)
-print pow(-3L,3L) % -8, pow(-3L,3L,-8)
-print pow(5L,2) % -8, pow(5L,2,-8)
+print `pow(3L,3L) % 8`, `pow(3L,3L,8)`
+print `pow(3L,3L) % -8`, `pow(3L,3L,-8)`
+print `pow(3L,2) % -2`, `pow(3L,2,-2)`
+print `pow(-3L,3L) % 8`, `pow(-3L,3L,8)`
+print `pow(-3L,3L) % -8`, `pow(-3L,3L,-8)`
+print `pow(5L,2) % -8`, `pow(5L,2,-8)`
 print
 
 print pow(3.0,3.0) % 8, pow(3.0,3.0,8)
