Patch for issue 2848, mostly by Humberto Diogenes, with a couple of
small fixes by Barry.  This removes mimetools from the stdlib.
diff --git a/Lib/email/parser.py b/Lib/email/parser.py
index 439a4a0..06014e2 100644
--- a/Lib/email/parser.py
+++ b/Lib/email/parser.py
@@ -68,11 +68,7 @@
             data = fp.read(8192)
             if not data:
                 break
-            # XXX When Guido fixes TextIOWrapper.read() to act just like
-            # .readlines(), this...
-            feedparser.feed(str(data))
-            # ...gets reverted back to
-            #feedparser.feed(data)
+            feedparser.feed(data)
         return feedparser.close()
 
     def parsestr(self, text, headersonly=False):
diff --git a/Lib/email/utils.py b/Lib/email/utils.py
index 8747110..0439aff 100644
--- a/Lib/email/utils.py
+++ b/Lib/email/utils.py
@@ -25,7 +25,6 @@
 import base64
 import random
 import socket
-import urllib
 import warnings
 from io import StringIO
 
@@ -235,6 +234,7 @@
 
     params is a sequence of 2-tuples containing (param name, string value).
     """
+    import urllib
     # Copy params so we don't mess with the original
     params = params[:]
     new_params = []