diff --git a/Lib/test/test_funcattrs.py b/Lib/test/test_funcattrs.py
index 0591ba6..e41df9c 100644
--- a/Lib/test/test_funcattrs.py
+++ b/Lib/test/test_funcattrs.py
@@ -156,13 +156,13 @@
 del another.func_defaults
 
 def foo():
-	pass
+    pass
 
 def bar():
-	pass
+    pass
 
 def temp():
-	print 1
+    print 1
 
 if foo==bar: raise TestFailed
 
@@ -172,4 +172,3 @@
 foo.func_code = temp.func_code
 
 d[foo]
-
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index b7af64a..5865e8c 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -367,7 +367,7 @@
     finally:
         msg = "continue + try/finally ok"
 print msg
-    
+
 print 'return_stmt' # 'return' [testlist]
 def g1(): return
 def g2(): return 1
diff --git a/Lib/test/test_new.py b/Lib/test/test_new.py
index 6ea7707..8a7b9a6 100644
--- a/Lib/test/test_new.py
+++ b/Lib/test/test_new.py
@@ -66,10 +66,10 @@
 
 # bogus test of new.code()
 print 'new.code()'
-d = new.code(3, 3, 3, 3, codestr, (), (), (), 
+d = new.code(3, 3, 3, 3, codestr, (), (), (),
              "<string>", "<name>", 1, "", (), ())
 # test backwards-compatibility version with no freevars or cellvars
-d = new.code(3, 3, 3, 3, codestr, (), (), (), 
+d = new.code(3, 3, 3, 3, codestr, (), (), (),
              "<string>", "<name>", 1, "")
 if verbose:
     print d
diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py
index 57c0dcb..4f3c1ff 100644
--- a/Lib/test/test_scope.py
+++ b/Lib/test/test_scope.py
@@ -105,14 +105,14 @@
 print "8. mixed freevars and cellvars"
 
 def identity(x):
-	return x
+    return x
 
 def f(x, y, z):
     def g(a, b, c):
         a = a + x # 3
         def h():
-	    # z * (4 + 9)
-	    # 3 * 13
+            # z * (4 + 9)
+            # 3 * 13
             return identity(z * (b + y))
         y = c + z # 9
         return h
@@ -120,7 +120,7 @@
 
 g = f(1, 2, 3)
 h = g(2, 4, 6)
-verify(h() == 39) 
+verify(h() == 39)
 
 print "9. free variable in method"
 
@@ -206,7 +206,7 @@
 """
 # check_syntax(test2)
 
-# XXX could allow this for exec with const argument, but what's the point 
+# XXX could allow this for exec with const argument, but what's the point
 test3 = \
 """def error(y):
     exec "a = 1"
@@ -275,4 +275,3 @@
     pass
 else:
     raise TestFailed
-
