diff --git a/Lib/__future__.py b/Lib/__future__.py
index c50b810..2c263b7 100644
--- a/Lib/__future__.py
+++ b/Lib/__future__.py
@@ -24,18 +24,18 @@
 
 was accepted.
 
-In the case of MandatoryReleases that have not yet occurred, 
-MandatoryRelease predicts the release in which the feature will become part 
+In the case of MandatoryReleases that have not yet occurred,
+MandatoryRelease predicts the release in which the feature will become part
 of the language.
 
-Else MandatoryRelease records when the feature became part of the language; 
+Else MandatoryRelease records when the feature became part of the language;
 in releases at or after that, modules no longer need
 
     from __future__ import FeatureName
 
 to use the feature in question, but may continue to use such imports.
 
-MandatoryRelease may also be None, meaning that a planned feature got 
+MandatoryRelease may also be None, meaning that a planned feature got
 dropped.
 
 No line is ever to be deleted from this file.
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 408e454..3b1061e 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -612,5 +612,5 @@
     return getouterframes(currentframe().f_back, context)
 
 def trace(context=1):
-    """Return a list of records for the stack below the current exception.""" 
+    """Return a list of records for the stack below the current exception."""
     return getinnerframes(sys.exc_traceback, context)
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index c5c9d18..701316e 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -445,7 +445,7 @@
                         modpkgs.append((modname, name, 0, 0))
                         modnames.append(modname)
                     elif ispackage(path):
-                            modpkgs.append((file, name, 1, 0))
+                        modpkgs.append((file, name, 1, 0))
             modpkgs.sort()
             contents = self.multicolumn(modpkgs, self.modpkglink)
             result = result + self.bigsection(
@@ -576,7 +576,7 @@
             if ispackage(path): found(file, 1)
         for file in files:
             path = os.path.join(dir, file)
-            if file[:1] != '_' and os.path.isfile(path): 
+            if file[:1] != '_' and os.path.isfile(path):
                 modname = modulename(file)
                 if modname: found(modname, 0)
 
diff --git a/Lib/test/test_global.py b/Lib/test/test_global.py
index 7670ad1..66f2a6e 100644
--- a/Lib/test/test_global.py
+++ b/Lib/test/test_global.py
@@ -37,4 +37,3 @@
     global x
 """
 compile_and_catch_warning(prog_text_3)
-
diff --git a/Lib/urllib.py b/Lib/urllib.py
index 9a2c0ba..00129c9 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -561,17 +561,17 @@
         See this URL for a description of the basic authentication scheme:
         http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-00.txt"""
         if not headers.has_key('www-authenticate'):
-            URLopener.http_error_default(self, url, fp, 
+            URLopener.http_error_default(self, url, fp,
                                          errmsg, headers)
         stuff = headers['www-authenticate']
         import re
         match = re.match('[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', stuff)
         if not match:
-            URLopener.http_error_default(self, url, fp, 
+            URLopener.http_error_default(self, url, fp,
                                          errcode, errmsg, headers)
         scheme, realm = match.groups()
         if scheme.lower() != 'basic':
-            URLopener.http_error_default(self, url, fp, 
+            URLopener.http_error_default(self, url, fp,
                                          errcode, errmsg, headers)
         name = 'retry_' + self.type + '_basic_auth'
         if data is None:
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 9dbb3f0..5008a0b 100644
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -154,7 +154,7 @@
 
                 def open(self, url, new=1, autoraise=1):
                     # XXX Currently I know no way to prevent KFM from
-                    # opening a new win. 
+                    # opening a new win.
                     self._remote("openURL %s" % url)
 
                 # Deprecated.  May be removed in 2.1.
