diff --git a/Lib/email/Encoders.py b/Lib/email/Encoders.py
index 0425e5c..d9cd42d 100644
--- a/Lib/email/Encoders.py
+++ b/Lib/email/Encoders.py
@@ -8,7 +8,7 @@
 from quopri import encodestring as _encodestring
 
 
-
+
 # Helpers
 def _qencode(s):
     return _encodestring(s, quotetabs=1)
@@ -26,7 +26,7 @@
     return value
 
 
-
+
 def encode_base64(msg):
     """Encode the message's payload in Base64.
 
@@ -38,7 +38,7 @@
     msg['Content-Transfer-Encoding'] = 'base64'
 
 
-
+
 def encode_quopri(msg):
     """Encode the message's payload in Quoted-Printable.
 
@@ -50,7 +50,7 @@
     msg['Content-Transfer-Encoding'] = 'quoted-printable'
 
 
-
+
 def encode_7or8bit(msg):
     """Set the Content-Transfer-Encoding: header to 7bit or 8bit."""
     orig = msg.get_payload()
@@ -64,6 +64,6 @@
         msg['Content-Transfer-Encoding'] = '7bit'
 
 
-
+
 def encode_noop(msg):
     """Do nothing."""
diff --git a/Lib/email/Errors.py b/Lib/email/Errors.py
index 5a1e0fe..71d7663 100644
--- a/Lib/email/Errors.py
+++ b/Lib/email/Errors.py
@@ -5,7 +5,7 @@
 """
 
 
-
+
 class MessageError(Exception):
     """Base class for errors in this module."""
 
diff --git a/Lib/email/Generator.py b/Lib/email/Generator.py
index 476e9e7..c31dc80 100644
--- a/Lib/email/Generator.py
+++ b/Lib/email/Generator.py
@@ -25,7 +25,7 @@
 fcre = re.compile(r'^From ', re.MULTILINE)
 
 
-
+
 class Generator:
     """Generates output from a Message object tree.
 
@@ -278,7 +278,7 @@
         self._fp.write(s.getvalue())
 
 
-
+
 class DecodedGenerator(Generator):
     """Generator a text representation of a message.
 
@@ -334,7 +334,7 @@
                     }
 
 
-
+
 # Helper
 def _make_boundary(self, text=None):
     # Craft a random boundary.  If text is given, ensure that the chosen
diff --git a/Lib/email/Iterators.py b/Lib/email/Iterators.py
index cd08f37..d1ee53f 100644
--- a/Lib/email/Iterators.py
+++ b/Lib/email/Iterators.py
@@ -9,7 +9,7 @@
 from types import StringType
 
 
-
+
 def body_line_iterator(msg):
     """Iterate over the parts, returning string payloads line-by-line."""
     for subpart in msg.walk():
@@ -19,7 +19,7 @@
                 yield line
 
 
-
+
 def typed_subpart_iterator(msg, maintype='text', subtype=None):
     """Iterate over the subparts with a given MIME type.
 
diff --git a/Lib/email/MIMEBase.py b/Lib/email/MIMEBase.py
index c4ff303..33216f6 100644
--- a/Lib/email/MIMEBase.py
+++ b/Lib/email/MIMEBase.py
@@ -7,7 +7,7 @@
 import Message
 
 
-
+
 class MIMEBase(Message.Message):
     """Base class for MIME specializations."""
 
diff --git a/Lib/email/MIMEImage.py b/Lib/email/MIMEImage.py
index 5c28cfde..963da23 100644
--- a/Lib/email/MIMEImage.py
+++ b/Lib/email/MIMEImage.py
@@ -12,7 +12,7 @@
 import Encoders
 
 
-
+
 class MIMEImage(MIMEBase.MIMEBase):
     """Class for generating image/* type MIME documents."""
 
diff --git a/Lib/email/MIMEMessage.py b/Lib/email/MIMEMessage.py
index 11bdb3b..fc4b2c6 100644
--- a/Lib/email/MIMEMessage.py
+++ b/Lib/email/MIMEMessage.py
@@ -8,7 +8,7 @@
 import MIMEBase
 
 
-
+
 class MIMEMessage(MIMEBase.MIMEBase):
     """Class representing message/* MIME documents."""
 
diff --git a/Lib/email/MIMEText.py b/Lib/email/MIMEText.py
index b099598..ccce9fb 100644
--- a/Lib/email/MIMEText.py
+++ b/Lib/email/MIMEText.py
@@ -8,7 +8,7 @@
 from Encoders import encode_7or8bit
 
 
-
+
 class MIMEText(MIMEBase.MIMEBase):
     """Class for generating text/* type MIME documents."""
 
diff --git a/Lib/email/Message.py b/Lib/email/Message.py
index d03b43f..512a0e9 100644
--- a/Lib/email/Message.py
+++ b/Lib/email/Message.py
@@ -20,7 +20,7 @@
 paramre = re.compile(r';\s*')
 
 
-
+
 class Message:
     """Basic message object for use inside the object tree.
 
diff --git a/Lib/email/Parser.py b/Lib/email/Parser.py
index e8a3b92..81763dc 100644
--- a/Lib/email/Parser.py
+++ b/Lib/email/Parser.py
@@ -14,7 +14,7 @@
 NL = '\n'
 
 
-
+
 class Parser:
     def __init__(self, _class=Message.Message):
         """Parser of RFC 2822 and MIME email messages.
diff --git a/Lib/email/Utils.py b/Lib/email/Utils.py
index e75dae1..6bbf2d3 100644
--- a/Lib/email/Utils.py
+++ b/Lib/email/Utils.py
@@ -21,7 +21,7 @@
 UEMPTYSTRING = u''
 
 
-
+
 # Helpers
 
 def _identity(s):
@@ -42,7 +42,7 @@
     return value
 
 
-
+
 def getaddresses(fieldvalues):
     """Return a list of (REALNAME, EMAIL) for each fieldvalue."""
     all = COMMASPACE.join(fieldvalues)
@@ -50,7 +50,7 @@
     return a.getaddrlist()
 
 
-
+
 ecre = re.compile(r'''
   =\?                   # literal =?
   (?P<charset>[^?]*?)   # non-greedy up to the next ? is the charset
@@ -92,7 +92,7 @@
     return UEMPTYSTRING.join(rtn)
 
 
-
+
 def encode(s, charset='iso-8859-1', encoding='q'):
     """Encode a string according to RFC 2047."""
     if encoding.lower() == 'q':
diff --git a/Lib/email/__init__.py b/Lib/email/__init__.py
index 8ca8d02..4995114 100644
--- a/Lib/email/__init__.py
+++ b/Lib/email/__init__.py
@@ -22,7 +22,7 @@
            ]
 
 
-
+
 # Some convenience routines
 from Parser import Parser as _Parser
 from Message import Message as _Message
