diff --git a/Lib/pdb.py b/Lib/pdb.py
index ae2fab6..9a08a6a 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -397,7 +397,7 @@
             except ValueError:
                 print 'Breakpoint index %r is not a number' % i
                 continue
-            
+
             if not (0 <= i < len(bdb.Breakpoint.bpbynumber)):
                 print 'No breakpoint numbered', i
                 continue
diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py
index 630af49..5d06f2c 100644
--- a/Lib/test/test_codeop.py
+++ b/Lib/test/test_codeop.py
@@ -65,12 +65,12 @@
                             compile("pass", "<input>", 'single',
                                     PyCF_DONT_IMPLY_DEDENT))
             self.assertEquals(compile_command("\n"),
-                            compile("pass", "<input>", 'single', 
+                            compile("pass", "<input>", 'single',
                                     PyCF_DONT_IMPLY_DEDENT))
         else:
             av("")
             av("\n")
-        
+
         av("a = 1")
         av("\na = 1")
         av("a = 1\n")
@@ -125,9 +125,9 @@
         ai("if 1:")
         ai("if 1:\n")
         ai("if 1:\n pass\n if 1:\n  pass\n else:")
-        ai("if 1:\n pass\n if 1:\n  pass\n else:\n")          
-        ai("if 1:\n pass\n if 1:\n  pass\n else:\n  pass") 
-        
+        ai("if 1:\n pass\n if 1:\n  pass\n else:\n")
+        ai("if 1:\n pass\n if 1:\n  pass\n else:\n  pass")
+
         ai("def x():")
         ai("def x():\n")
         ai("def x():\n\n")
@@ -156,7 +156,7 @@
         ai("a @")
         ai("a b @")
         ai("a ** @")
-        
+
         ai("a = ")
         ai("a = 9 +")
 
diff --git a/Lib/test/test_dummy_thread.py b/Lib/test/test_dummy_thread.py
index 3e79f8d..f274e0a 100644
--- a/Lib/test/test_dummy_thread.py
+++ b/Lib/test/test_dummy_thread.py
@@ -109,7 +109,7 @@
             _thread.interrupt_main()
         self.failUnlessRaises(KeyboardInterrupt, _thread.start_new_thread,
                               call_interrupt, tuple())
-    
+
     def test_interrupt_in_main(self):
         # Make sure that if interrupt_main is called in main threat that
         # KeyboardInterrupt is raised instantly.
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index cb77727..c57bbed 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -701,7 +701,7 @@
 print [x for x in nums if x > 2]
 print [(i, s) for i in nums for s in strs]
 print [(i, s) for i in nums for s in [f for f in strs if "n" in f]]
-print [(lambda a:[a**i for i in range(a+1)])(j) for j in range(5)] 
+print [(lambda a:[a**i for i in range(a+1)])(j) for j in range(5)]
 
 def test_in_func(l):
     return [None < x < 3 for x in l if x > 2]
diff --git a/Lib/test/test_mimetools.py b/Lib/test/test_mimetools.py
index 52809fa..96bbb36 100644
--- a/Lib/test/test_mimetools.py
+++ b/Lib/test/test_mimetools.py
@@ -48,4 +48,3 @@
 
 if __name__=="__main__":
     test_main()
-
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
index dcf9103..7055522 100644
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -84,7 +84,7 @@
         self.assertEqual(gotten_url, URL)
 
     def test_fileno(self):
-        if (sys.platform in ('win32',) or 
+        if (sys.platform in ('win32',) or
                 not hasattr(os, 'fdopen')):
             # On Windows, socket handles are not file descriptors; this
             # test can't pass on Windows.
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 1ebe6c0..5734be7 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -412,7 +412,7 @@
             # classes which are not aware of handler_order).
             return True
         return self.handler_order < other.handler_order
-            
+
 
 class HTTPDefaultErrorHandler(BaseHandler):
     def http_error_default(self, req, fp, code, msg, hdrs):
