diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index 5508670..3ed22f9 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -41,7 +41,7 @@
 # In case _socket fails to build, make this test fail more gracefully
 # than an AttributeError somewhere deep in CGIHTTPServer.
 import _socket
-    
+
 check_all("BaseHTTPServer")
 check_all("CGIHTTPServer")
 check_all("ConfigParser")
diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py
index be9ca7b..7847fb3 100644
--- a/Lib/test/test_codeop.py
+++ b/Lib/test/test_codeop.py
@@ -13,7 +13,7 @@
         '''succeed iff str is a valid piece of code'''
         expected = compile(str, "<input>", symbol)
         self.assertEquals( compile_command(str, "<input>", symbol), expected)
-                           
+
 
     def assertIncomplete(self, str, symbol='single'):
         '''succeed iff str is the start of a valid piece of code'''
@@ -41,13 +41,13 @@
         av("a=3\n\n")
 
         # special case
-        self.assertEquals(compile_command(""), 
+        self.assertEquals(compile_command(""),
                           compile("pass", "<input>", 'single'))
 
         av("3**3","eval")
         av("(lambda z: \n z**3)","eval")
         av("#a\n#b\na**3","eval")
-        
+
     def test_incomplete(self):
         ai = self.assertIncomplete
         ai("(a **")
@@ -59,7 +59,7 @@
         ai("if 9==3:\n   pass\nelse:\n   pass")
         ai("a = (")
         ai("a = 9+ \\")
-        
+
         ai("(","eval")
         ai("(\n\n\n","eval")
         ai("(9+","eval")
diff --git a/Lib/test/test_glob.py b/Lib/test/test_glob.py
index 5afee31..804ae1d 100644
--- a/Lib/test/test_glob.py
+++ b/Lib/test/test_glob.py
@@ -107,4 +107,3 @@
                                                    os.path.join('aab', 'F')]))
 
 run_unittest(GlobTests)
-
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 6d69c3f..a5660a9 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -71,7 +71,7 @@
 # Try seek, write test
 f = gzip.GzipFile(filename, 'w')
 for pos in range(0, 256, 16):
-    f.seek(pos) 
+    f.seek(pos)
     f.write('GZ\n')
 f.close()
 
diff --git a/Lib/test/test_mhlib.py b/Lib/test/test_mhlib.py
index b4d99fe..f59bf83 100644
--- a/Lib/test/test_mhlib.py
+++ b/Lib/test/test_mhlib.py
@@ -43,7 +43,7 @@
 
 def writeContext(folder):
     folder = normF(folder)
-    writeFile(os.path.join(_mhpath, "context"), 
+    writeFile(os.path.join(_mhpath, "context"),
               "Current-Folder: %s\n" % folder)
 
 def writeCurMessage(folder, cur):
@@ -96,31 +96,31 @@
     def setUp(self):
         deltree(_mhroot)
         mkdirs(_mhpath)
-        writeProfile({'Path' : os.path.abspath(_mhpath), 
+        writeProfile({'Path' : os.path.abspath(_mhpath),
                       'Editor': 'emacs',
                       'ignored-attribute': 'camping holiday'})
         # Note: These headers aren't really conformant to RFC822, but
         #  mhlib shouldn't care about that.
 
         # An inbox with a couple of messages.
-        writeMessage('inbox', 1, 
+        writeMessage('inbox', 1,
                      {'From': 'Mrs. Premise',
                       'To': 'Mrs. Conclusion',
                       'Date': '18 July 2001'}, "Hullo, Mrs. Conclusion!\n")
-        writeMessage('inbox', 2, 
+        writeMessage('inbox', 2,
                      {'From': 'Mrs. Conclusion',
                       'To': 'Mrs. Premise',
                       'Date': '29 July 2001'}, "Hullo, Mrs. Premise!\n")
-        
+
         # A folder with many messages
         for i in range(5, 101)+range(101, 201, 2):
-            writeMessage('wide', i, 
+            writeMessage('wide', i,
                          {'From': 'nowhere', 'Subject': 'message #%s' % i},
                          "This is message number %s\n" % i)
-        
+
         # A deeply nested folder
         def deep(folder, n):
-            writeMessage(folder, n, 
+            writeMessage(folder, n,
                          {'Subject': 'Message %s/%s' % (folder, n) },
                          "This is message number %s in %s\n" % (n, folder) )
         deep('deep/f1', 1)
@@ -131,10 +131,10 @@
         deep('deep', 3)
         deep('deep/f2/f3', 1)
         deep('deep/f2/f3', 2)
-        
+
     def tearDown(self):
         deltree(_mhroot)
-    
+
     def test_basic(self):
         writeContext('inbox')
         writeCurMessage('inbox', 2)
@@ -154,13 +154,13 @@
         mh.setcontext('inbox')
 
         inbox = mh.openfolder('inbox')
-        eq(inbox.getfullname(), 
+        eq(inbox.getfullname(),
            os.path.join(os.path.abspath(_mhpath), 'inbox'))
-        eq(inbox.getsequencesfilename(), 
+        eq(inbox.getsequencesfilename(),
            os.path.join(os.path.abspath(_mhpath), 'inbox', '.mh_sequences'))
-        eq(inbox.getmessagefilename(1), 
+        eq(inbox.getmessagefilename(1),
            os.path.join(os.path.abspath(_mhpath), 'inbox', '1'))
-        
+
     def test_listfolders(self):
         mh = getMH()
         eq = self.assertEquals
@@ -168,7 +168,7 @@
         folders = mh.listfolders()
         folders.sort()
         eq(folders, ['deep', 'inbox', 'wide'])
-        
+
         folders = mh.listallfolders()
         folders.sort()
         eq(folders, map(normF, ['deep', 'deep/f1', 'deep/f2', 'deep/f2/f3',
@@ -177,7 +177,7 @@
         folders = mh.listsubfolders('deep')
         folders.sort()
         eq(folders, map(normF, ['deep/f1', 'deep/f2']))
-        
+
         folders = mh.listallsubfolders('deep')
         folders.sort()
         eq(folders, map(normF, ['deep/f1', 'deep/f2', 'deep/f2/f3']))
@@ -190,22 +190,22 @@
         mh = getMH()
         eq = self.assertEquals
         writeCurMessage('wide', 55)
-        
+
         f = mh.openfolder('wide')
         all = f.listmessages()
         eq(all, range(5, 101)+range(101, 201, 2))
         eq(f.getcurrent(), 55)
         f.setcurrent(99)
-        eq(readFile(os.path.join(_mhpath, 'wide', '.mh_sequences')), 
+        eq(readFile(os.path.join(_mhpath, 'wide', '.mh_sequences')),
            'cur: 99\n')
 
         def seqeq(seq, val):
             eq(f.parsesequence(seq), val)
-        
+
         seqeq('5-55', range(5, 56))
         seqeq('90-108', range(90, 101)+range(101, 109, 2))
         seqeq('90-108', range(90, 101)+range(101, 109, 2))
-        
+
         seqeq('10:10', range(10, 20))
         seqeq('10:+10', range(10, 20))
         seqeq('101:10', range(101, 121, 2))
@@ -249,7 +249,7 @@
         self.assert_("dummy1" in mh.listfolders())
         path = os.path.join(_mhpath, "dummy1")
         self.assert_(os.path.exists(path))
-        
+
         f = mh.openfolder('dummy1')
         def create(n):
             msg = "From: foo\nSubject: %s\n\nDummy Message %s\n" % (n,n)
@@ -258,14 +258,14 @@
         create(7)
         create(8)
         create(9)
-        
+
         eq(readFile(f.getmessagefilename(9)),
            "From: foo\nSubject: 9\n\nDummy Message 9\n")
 
         eq(f.listmessages(), [7, 8, 9])
         files = os.listdir(path)
         files.sort()
-        eq(files, ['7', '8', '9']) 
+        eq(files, ['7', '8', '9'])
 
         f.removemessages(['7', '8'])
         files = os.listdir(path)
@@ -275,7 +275,7 @@
         create(10)
         create(11)
         create(12)
-        
+
         mh.makefolder("dummy2")
         f2 = mh.openfolder("dummy2")
         eq(f2.listmessages(), [])
@@ -285,12 +285,12 @@
         eq(f2.listmessages(), [3, 5])
         eq(readFile(f2.getmessagefilename(3)),
            "From: foo\nSubject: 10\n\nDummy Message 10\n")
-        
+
         f.copymessage(9, f2, 4)
         eq(f.listmessages(), [9, 12])
         eq(readFile(f2.getmessagefilename(4)),
            "From: foo\nSubject: 9\n\nDummy Message 9\n")
-        
+
         f.refilemessages([9, 12], f2)
         eq(f.listmessages(), [])
         eq(f2.listmessages(), [3, 4, 5, 6, 7])
@@ -306,7 +306,7 @@
     def test_read(self):
         mh = getMH()
         eq = self.assertEquals
-        
+
         f = mh.openfolder('inbox')
         msg = f.openmessage(1)
         # Check some basic stuff from rfc822
@@ -316,15 +316,15 @@
         # Okay, we have the right message.  Let's check the stuff from
         # mhlib.
         lines = sortLines(msg.getheadertext())
-        eq(lines, ["Date: 18 July 2001", 
+        eq(lines, ["Date: 18 July 2001",
                    "From: Mrs. Premise",
                    "To: Mrs. Conclusion"])
         lines = sortLines(msg.getheadertext(lambda h: len(h)==4))
-        eq(lines, ["Date: 18 July 2001", 
+        eq(lines, ["Date: 18 July 2001",
                    "From: Mrs. Premise"])
         eq(msg.getbodytext(), "Hullo, Mrs. Conclusion!\n\n")
         eq(msg.getbodytext(0), "Hullo, Mrs. Conclusion!\n\n")
-        
+
         # XXXX there should be a better way to reclaim the file handle
         msg.fp.close()
         del msg
diff --git a/Lib/test/test_pkgimport.py b/Lib/test/test_pkgimport.py
index bff4044..2f19509 100644
--- a/Lib/test/test_pkgimport.py
+++ b/Lib/test/test_pkgimport.py
@@ -43,7 +43,7 @@
         f = open(self.module_path, 'w')
         f.write(contents)
         f.close()
-    
+
     def test_package_import__semantics(self):
 
         # Generate a couple of broken modules to try importing.
diff --git a/Lib/test/test_repr.py b/Lib/test/test_repr.py
index 9034711..cf423f9 100644
--- a/Lib/test/test_repr.py
+++ b/Lib/test/test_repr.py
@@ -5,7 +5,7 @@
 
 import unittest
 from test_support import run_unittest
-from repr import repr as r # Don't shadow builtin repr 
+from repr import repr as r # Don't shadow builtin repr
 
 
 def nestedTuple(nesting):
@@ -24,7 +24,7 @@
         s = "a"*30+"b"*30
         expected = `s`[:13] + "..." + `s`[-14:]
         eq(r(s), expected)
-        
+
         eq(r("\"'"), repr("\"'"))
         s = "\""*30+"'"*100
         expected = `s`[:13] + "..." + `s`[-14:]
@@ -67,7 +67,7 @@
         eq = self.assertEquals
         i1 = ClassWithRepr("a")
         eq(r(i1), repr(i1))
-        
+
         i2 = ClassWithRepr("x"*1000)
         expected = `i2`[:13] + "..." + `i2`[-14:]
         eq(r(i2), expected)
