body_line_iterator(): Accept optional decode argument, pass through to
Message.get_payload().
diff --git a/Lib/email/_compat21.py b/Lib/email/_compat21.py
index d220723..7cead23 100644
--- a/Lib/email/_compat21.py
+++ b/Lib/email/_compat21.py
@@ -37,11 +37,14 @@
 
 # These two functions are imported into the Iterators.py interface module.
 # The Python 2.2 version uses generators for efficiency.
-def body_line_iterator(msg):
-    """Iterate over the parts, returning string payloads line-by-line."""
+def body_line_iterator(msg, decode=False):
+    """Iterate over the parts, returning string payloads line-by-line.
+
+    Optional decode (default False) is passed through to .get_payload().
+    """
     lines = []
     for subpart in msg.walk():
-        payload = subpart.get_payload()
+        payload = subpart.get_payload(decode=decode)
         if _isstring(payload):
             for line in StringIO(payload).readlines():
                 lines.append(line)
diff --git a/Lib/email/_compat22.py b/Lib/email/_compat22.py
index a05451f..ec2d2f8 100644
--- a/Lib/email/_compat22.py
+++ b/Lib/email/_compat22.py
@@ -38,10 +38,13 @@
 
 # These two functions are imported into the Iterators.py interface module.
 # The Python 2.2 version uses generators for efficiency.
-def body_line_iterator(msg):
-    """Iterate over the parts, returning string payloads line-by-line."""
+def body_line_iterator(msg, decode=False):
+    """Iterate over the parts, returning string payloads line-by-line.
+
+    Optional decode (default False) is passed through to .get_payload().
+    """
     for subpart in msg.walk():
-        payload = subpart.get_payload()
+        payload = subpart.get_payload(decode=decode)
         if _isstring(payload):
             for line in StringIO(payload):
                 yield line