diff --git a/Lib/email/Charset.py b/Lib/email/Charset.py
index 9a54dab..c0fe9d7 100644
--- a/Lib/email/Charset.py
+++ b/Lib/email/Charset.py
@@ -11,7 +11,7 @@
     from types import UnicodeType
     def _is_unicode(x):
         return isinstance(x, UnicodeType)
-    
+
 from email.Encoders import encode_7or8bit
 import email.base64MIME
 import email.quopriMIME
diff --git a/Lib/email/Message.py b/Lib/email/Message.py
index 40e4785..8b4f8bd 100644
--- a/Lib/email/Message.py
+++ b/Lib/email/Message.py
@@ -52,12 +52,12 @@
 
 def _unquotevalue(value):
     if isinstance(value, TupleType):
-       return (value[0], value[1], Utils.unquote(value[2]))
+        return (value[0], value[1], Utils.unquote(value[2]))
     else:
-       return Utils.unquote(value)
+        return Utils.unquote(value)
 
 
-
+ 
 class Message:
     """Basic message object for use inside the object tree.
 
diff --git a/Lib/email/Parser.py b/Lib/email/Parser.py
index b9d3ed3..a2ac576 100644
--- a/Lib/email/Parser.py
+++ b/Lib/email/Parser.py
@@ -129,7 +129,7 @@
             # boundary.
             separator = '--' + boundary
             payload = fp.read()
-            # We use an RE here because boundaries can have trailing 
+            # We use an RE here because boundaries can have trailing
             # whitespace.
             mo = re.search(
                 r'(?P<sep>' + re.escape(separator) + r')(?P<ws>[ \t]*)',
@@ -176,15 +176,15 @@
                 terminator = len(payload)
             # We split the textual payload on the boundary separator, which
             # includes the trailing newline. If the container is a
-            # multipart/digest then the subparts are by default message/rfc822 
-            # instead of text/plain.  In that case, they'll have a optional 
-            # block of MIME headers, then an empty line followed by the 
+            # multipart/digest then the subparts are by default message/rfc822
+            # instead of text/plain.  In that case, they'll have a optional
+            # block of MIME headers, then an empty line followed by the
             # message headers.
             parts = re.split(
                 linesep + re.escape(separator) + r'[ \t]*' + linesep,
                 payload[start:terminator])
             for part in parts:
-                if isdigest: 
+                if isdigest:
                     if part[0] == linesep:
                         # There's no header block so create an empty message
                         # object as the container, and lop off the newline so
