diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 20407f8..6160b3d 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -93,7 +93,7 @@
                 in the standard library and test suite.  This takes
                 a long time.
 
-    subprocess  Run all tests for the subprocess module. 
+    subprocess  Run all tests for the subprocess module.
 
 To enable all resources except one, use '-uall,-<resource>'.  For
 example, to run all the tests except for the bsddb tests, give the
diff --git a/Lib/test/test_functional.py b/Lib/test/test_functional.py
index 97e30c3..5078a2e 100644
--- a/Lib/test/test_functional.py
+++ b/Lib/test/test_functional.py
@@ -139,7 +139,7 @@
         self.assertEqual(join(data), '0123456789')
         join = self.thetype(''.join)
         self.assertEqual(join(data), '0123456789')
-    
+
 class PartialSubclass(functional.partial):
     pass
 
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index d225173..efb7180 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -321,7 +321,7 @@
             f.close()
 
             f = open(TESTFN, "rb+")
-            mf = mmap.mmap(f.fileno(), 0) 
+            mf = mmap.mmap(f.fileno(), 0)
             verify(len(mf) == 2**16, "Map size should equal file size.")
             vereq(mf.read(2**16), 2**16 * "m")
             mf.close()
@@ -329,7 +329,7 @@
 
         finally:
             os.unlink(TESTFN)
-    
+
     # test mapping of entire file by passing 0 for map length
     if hasattr(os, "stat"):
         print "  Ensuring that passing 0 as map length sets map size to current file size."
@@ -337,17 +337,17 @@
         try:
             f.write(2**16 * 'm') # Arbitrary character
             f.close()
-    
+
             f = open(TESTFN, "rb+")
-            mf = mmap.mmap(f.fileno(), 0) 
+            mf = mmap.mmap(f.fileno(), 0)
             verify(len(mf) == 2**16, "Map size should equal file size.")
             vereq(mf.read(2**16), 2**16 * "m")
             mf.close()
             f.close()
-    
+
         finally:
             os.unlink(TESTFN)
-    
+
     print ' Test passed'
 
 test_both()
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index e6f981d..c351ee9 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -387,7 +387,7 @@
         if test_support.is_resource_enabled("subprocess") and not mswindows:
             max_handles = 1026 # too much for most UNIX systems
         else:
-            max_handles = 65 
+            max_handles = 65
         for i in range(max_handles):
             p = subprocess.Popen([sys.executable, "-c",
                     "import sys;sys.stdout.write(sys.stdin.read())"],
diff --git a/Lib/test/test_xdrlib.py b/Lib/test/test_xdrlib.py
index afa6afe..e9517c5 100644
--- a/Lib/test/test_xdrlib.py
+++ b/Lib/test/test_xdrlib.py
@@ -1,4 +1,3 @@
 import xdrlib
 
 xdrlib._test()
-
