diff --git a/Lib/_MozillaCookieJar.py b/Lib/_MozillaCookieJar.py
index 4fd6de3..00e8bcf 100644
--- a/Lib/_MozillaCookieJar.py
+++ b/Lib/_MozillaCookieJar.py
@@ -38,9 +38,9 @@
     """
     magic_re = "#( Netscape)? HTTP Cookie File"
     header = """\
-    # Netscape HTTP Cookie File
-    # http://www.netscape.com/newsref/std/cookie_spec.html
-    # This is a generated file!  Do not edit.
+# Netscape HTTP Cookie File
+# http://www.netscape.com/newsref/std/cookie_spec.html
+# This is a generated file!  Do not edit.
 
 """
 
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 9accb81..af0d042 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -263,6 +263,9 @@
         StringIO.truncate(self, size)
         if hasattr(self, "softspace"):
             del self.softspace
+        if not self.buf:
+            # Reset it to an empty string, to make sure it's not unicode.
+            self.buf = ''
 
 # Worst-case linear-time ellipsis matching.
 def _ellipsis_match(want, got):
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index d1f62b0..8734a84 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -751,7 +751,7 @@
                               ', '.join(Commands[command])))
         name = 'UID'
         typ, dat = self._simple_command(name, command, *args)
-        if command in ('SEARCH', 'SORT'):
+        if command in ('SEARCH', 'SORT', 'THREAD'):
             name = command
         else:
             name = 'FETCH'
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 4d6584b..86a6aa0 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1705,9 +1705,12 @@
         'CONTEXTMANAGERS': ('context-managers', 'with'),
     }
 
-    def __init__(self, input, output):
-        self.input = input
-        self.output = output
+    def __init__(self, input=None, output=None):
+        self._input = input
+        self._output = output
+
+    input  = property(lambda self: self._input or sys.stdin)
+    output = property(lambda self: self._output or sys.stdout)
 
     def __repr__(self):
         if inspect.stack()[1][3] == '?':
@@ -1884,7 +1887,7 @@
 for modules whose descriptions contain the word "spam".
 ''')
 
-help = Helper(sys.stdin, sys.stdout)
+help = Helper()
 
 class Scanner:
     """A generic tree iterator."""
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index c332a40..f5a328e 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -1508,7 +1508,33 @@
     >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
     Traceback (most recent call last):
     ValueError: line 0 of the doctest for s has an option directive on a line with no example: '# doctest: +ELLIPSIS'
-"""
+
+    """
+
+    def test_unicode_output(self): r"""
+
+Check that unicode output works:
+
+    >>> u'\xe9'
+    u'\xe9'
+
+If we return unicode, SpoofOut's buf variable becomes automagically
+converted to unicode. This means all subsequent output becomes converted
+to unicode, and if the output contains non-ascii characters that failed.
+It used to be that this state change carried on between tests, meaning
+tests would fail if unicode has been output previously in the testrun.
+This test tests that this is no longer so:
+
+    >>> print u'abc'
+    abc
+
+And then return a string with non-ascii characters:
+
+    >>> print u'\xe9'.encode('utf-8')
+    é
+
+    """
+
 
 def test_testsource(): r"""
 Unit tests for `testsource()`.
diff --git a/Makefile.pre.in b/Makefile.pre.in
index da515be..0329d67 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1137,10 +1137,11 @@
 	find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
 
 clean: pycremoval
-	find . -name '*.o' -exec rm -f {} ';'
+	find . -name '*.[oa]' -exec rm -f {} ';'
 	find . -name '*.s[ol]' -exec rm -f {} ';'
 	find $(srcdir)/build -name 'fficonfig.h' -exec rm -f {} ';' || true
 	find $(srcdir)/build -name 'fficonfig.py' -exec rm -f {} ';' || true
+	find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
 	-rm -f Lib/lib2to3/*Grammar*.pickle
 
 profile-removal:
diff --git a/Misc/NEWS b/Misc/NEWS
index 160cc23..e0de7f9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -89,8 +89,19 @@
 Library
 -------
 
+- Issue #5146: Handle UID THREAD command correctly in imaplib.
+
+- Issue #5147: Fix the header generated for cookie files written by
+  http.cookiejar.MozillaCookieJar.
+
+- Issue #8198: In pydoc, output all help text to the correct stream
+  when sys.stdout is reassigned.
+
 - Issue #1019882: Fix IndexError when loading certain hotshot stats.
 
+- Issue #8471: In doctest, properly reset the output stream to an empty
+  string when Unicode was previously output.
+
 - Issue #8397: Raise an error when attempting to mix iteration and regular
   reads on a BZ2File object, rather than returning incorrect results.
 
