diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index fa34f29..2003e0b 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -431,7 +431,8 @@
 
    mapping
       A container object that supports arbitrary key lookups and implements the
-      methods specified in the :class:`Mapping` or :class:`MutableMapping`
+      methods specified in the :class:`~collections.Mapping` or
+      :class:`~collections.MutableMapping`
       :ref:`abstract base classes <collections-abstract-base-classes>`.  Examples
       include :class:`dict`, :class:`collections.defaultdict`,
       :class:`collections.OrderedDict` and :class:`collections.Counter`.
diff --git a/Doc/install/index.rst b/Doc/install/index.rst
index f8d6305..6f4de7a 100644
--- a/Doc/install/index.rst
+++ b/Doc/install/index.rst
@@ -72,7 +72,7 @@
 do the obvious thing with it: run it if it's an executable installer, ``rpm
 --install`` it if it's an RPM, etc.  You don't need to run Python or a setup
 script, you don't need to compile anything---you might not even need to read any
-instructions (although it's always a good idea to do so anyways).
+instructions (although it's always a good idea to do so anyway).
 
 Of course, things will not always be that easy.  You might be interested in a
 module distribution that doesn't have an easy-to-use installer for your
diff --git a/Doc/library/ossaudiodev.rst b/Doc/library/ossaudiodev.rst
index 3b5a7e4..0a08428 100644
--- a/Doc/library/ossaudiodev.rst
+++ b/Doc/library/ossaudiodev.rst
@@ -14,7 +14,7 @@
    ALSA is in the standard kernel as of 2.5.x.  Presumably if you
    use ALSA, you'll have to make sure its OSS compatibility layer
    is active to use ossaudiodev, but you're gonna need it for the vast
-   majority of Linux audio apps anyways.
+   majority of Linux audio apps anyway.
 
    Sounds like things are also complicated for other BSDs.  In response
    to my python-dev query, Thomas Wouters said:
diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst
index bf1e26e..6ee2e94 100644
--- a/Doc/tutorial/classes.rst
+++ b/Doc/tutorial/classes.rst
@@ -598,24 +598,24 @@
 Name mangling is helpful for letting subclasses override methods without
 breaking intraclass method calls.  For example::
 
-    class Mapping:
-        def __init__(self, iterable):
-            self.items_list = []
-            self.__update(iterable)
+   class Mapping:
+       def __init__(self, iterable):
+           self.items_list = []
+           self.__update(iterable)
 
-        def update(self, iterable):
-            for item in iterable:
-                self.items_list.append(item)
+       def update(self, iterable):
+           for item in iterable:
+               self.items_list.append(item)
 
-        __update = update   # private copy of original update() method
+       __update = update   # private copy of original update() method
 
-    class MappingSubclass(Mapping):
+   class MappingSubclass(Mapping):
 
-        def update(self, keys, values):
-            # provides new signature for update()
-            # but does not break __init__()
-            for item in zip(keys, values):
-                self.items_list.append(item)
+       def update(self, keys, values):
+           # provides new signature for update()
+           # but does not break __init__()
+           for item in zip(keys, values):
+               self.items_list.append(item)
 
 Note that the mangling rules are designed mostly to avoid accidents; it still is
 possible to access or modify a variable that is considered private.  This can
diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py
index e3a7845..be054ea 100644
--- a/Lib/test/list_tests.py
+++ b/Lib/test/list_tests.py
@@ -4,17 +4,10 @@
 
 import sys
 import os
+from functools import cmp_to_key
 
 from test import support, seq_tests
 
-def CmpToKey(mycmp):
-    'Convert a cmp= function into a key= function'
-    class K(object):
-        def __init__(self, obj):
-            self.obj = obj
-        def __lt__(self, other):
-            return mycmp(self.obj, other.obj) == -1
-    return K
 
 class CommonTest(seq_tests.CommonTest):
 
@@ -443,7 +436,7 @@
                 return 1
             else: # a > b
                 return -1
-        u.sort(key=CmpToKey(revcmp))
+        u.sort(key=cmp_to_key(revcmp))
         self.assertEqual(u, self.type2test([2,1,0,-1,-2]))
 
         # The following dumps core in unpatched Python 1.5:
@@ -456,7 +449,7 @@
             else: # xmod > ymod
                 return 1
         z = self.type2test(range(12))
-        z.sort(key=CmpToKey(myComparison))
+        z.sort(key=cmp_to_key(myComparison))
 
         self.assertRaises(TypeError, z.sort, 2)
 
@@ -468,7 +461,8 @@
                 return -1
             else: # x > y
                 return 1
-        self.assertRaises(ValueError, z.sort, key=CmpToKey(selfmodifyingComparison))
+        self.assertRaises(ValueError, z.sort,
+                          key=cmp_to_key(selfmodifyingComparison))
 
         self.assertRaises(TypeError, z.sort, 42, 42, 42, 42)
 
diff --git a/Lib/test/test_sort.py b/Lib/test/test_sort.py
index 55503b5..8f6af64 100644
--- a/Lib/test/test_sort.py
+++ b/Lib/test/test_sort.py
@@ -2,18 +2,11 @@
 import random
 import sys
 import unittest
+from functools import cmp_to_key
 
 verbose = support.verbose
 nerrors = 0
 
-def CmpToKey(mycmp):
-    'Convert a cmp= function into a key= function'
-    class K(object):
-        def __init__(self, obj):
-            self.obj = obj
-        def __lt__(self, other):
-            return mycmp(self.obj, other.obj) == -1
-    return K
 
 def check(tag, expected, raw, compare=None):
     global nerrors
@@ -23,7 +16,7 @@
 
     orig = raw[:]   # save input in case of error
     if compare:
-        raw.sort(key=CmpToKey(compare))
+        raw.sort(key=cmp_to_key(compare))
     else:
         raw.sort()
 
@@ -108,7 +101,7 @@
                 print("    Checking against an insane comparison function.")
                 print("        If the implementation isn't careful, this may segfault.")
             s = x[:]
-            s.sort(key=CmpToKey(lambda a, b:  int(random.random() * 3) - 1))
+            s.sort(key=cmp_to_key(lambda a, b:  int(random.random() * 3) - 1))
             check("an insane function left some permutation", x, s)
 
             if len(x) >= 2:
@@ -165,12 +158,12 @@
                 L.pop()
                 return (x > y) - (x < y)
             L = [1,2]
-            self.assertRaises(ValueError, L.sort, key=CmpToKey(mutating_cmp))
+            self.assertRaises(ValueError, L.sort, key=cmp_to_key(mutating_cmp))
             def mutating_cmp(x, y):
                 L.append(3)
                 del L[:]
                 return (x > y) - (x < y)
-            self.assertRaises(ValueError, L.sort, key=CmpToKey(mutating_cmp))
+            self.assertRaises(ValueError, L.sort, key=cmp_to_key(mutating_cmp))
             memorywaster = [memorywaster]
 
 #==============================================================================
@@ -185,7 +178,7 @@
         def my_cmp(x, y):
             xlower, ylower = x.lower(), y.lower()
             return (xlower > ylower) - (xlower < ylower)
-        copy.sort(key=CmpToKey(my_cmp))
+        copy.sort(key=cmp_to_key(my_cmp))
 
     def test_baddecorator(self):
         data = 'The quick Brown fox Jumped over The lazy Dog'.split()
@@ -261,8 +254,8 @@
         def my_cmp_reversed(x, y):
             x0, y0 = x[0], y[0]
             return (y0 > x0) - (y0 < x0)
-        data.sort(key=CmpToKey(my_cmp), reverse=True)
-        copy1.sort(key=CmpToKey(my_cmp_reversed))
+        data.sort(key=cmp_to_key(my_cmp), reverse=True)
+        copy1.sort(key=cmp_to_key(my_cmp_reversed))
         self.assertEqual(data, copy1)
         copy2.sort(key=lambda x: x[0], reverse=True)
         self.assertEqual(data, copy2)
diff --git a/Misc/NEWS b/Misc/NEWS
index d91a993..fd3b878 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,12 @@
 Core and Builtins
 -----------------
 
+- Issue #11603: Fix a crash when __str__ is rebound as __repr__.  Patch by
+  Andreas Stührk.
+
+- Issue #11321: Fix a crash with multiple imports of the _pickle module when
+  embedding Python.  Patch by Andreas Stührk.
+
 - Verify the types of AST strings and identifiers provided by the user before
   compiling them.
 
@@ -26,8 +32,6 @@
   deallocator calls one of the methods on the type (e.g. when subclassing
   IOBase).  Diagnosis and patch by Davide Rizzo.
 
-- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows.
-
 - When a generator yields, do not retain the caller's exception state on the
   generator.
 
@@ -37,11 +41,6 @@
 Library
 -------
 
-- Issue #12102: Document that buffered files must be flushed before being used
-  with mmap. Patch by Steffen Daode Nurpmeso.
-
-- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
-
 - Issue #1813: Fix codec lookup under Turkish locales.
 
 - Issue #12591: Improve support of "universal newlines" in the subprocess
@@ -51,12 +50,10 @@
   a read1() method), and add an undocumented *write_through* parameter to
   mandate unbuffered writes.
 
+- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows.
+
 - Issue #10883: Fix socket leaks in urllib.request when using FTP.
 
-- Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
-
-- Issue #12372: POSIX semaphores are broken on AIX: don't use them.
-
 - Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2
   directory, so that "import DLFCN" and other similar imports work on
   Linux 3.0.
@@ -67,16 +64,10 @@
 - Close the call queue in concurrent.futures.ProcessPoolExecutor when
   shutdown() is called, without waiting for the garbage collector to kick in.
 
-- Issue #11603: Fix a crash when __str__ is rebound as __repr__.  Patch by
-  Andreas Stührk.
-
-- Issue #11321: Fix a crash with multiple imports of the _pickle module when
-  embedding Python.  Patch by Andreas Stührk.
-
 - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
 
-- Issue #4376: ctypes now supports nested structures in a endian different than
-  the parent structure. Patch by Vlad Riscutia.
+- Issue #4376: ctypes now supports nested structures with an endianness
+  different than that of the parent structure.  Patch by Vlad Riscutia.
 
 - Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
   TextIOWrapper to a huge value, not TypeError.
@@ -85,15 +76,15 @@
   if the process has only one pipe.
 
 - Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
-  Python scripts using a encoding different than UTF-8 (read the coding cookie
-  of the script).
+  Python modules using a encoding different than UTF-8 (reading the coding
+  cookie of the module).
 
-- Issue #12451: pydoc: importfile() now opens the Python script in binary mode,
+- Issue #12451: pydoc: importfile() now opens the Python module in binary mode,
   instead of text mode using the locale encoding, to avoid encoding issues.
 
-- Issue #12451: runpy: run_path() now opens the Python script in binary mode,
+- Issue #12451: runpy: run_path() now opens the Python module in binary mode,
   instead of text mode using the locale encoding, to support other encodings
-  than UTF-8 (scripts using the coding cookie).
+  than UTF-8 (modules using the coding cookie).
 
 - Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead
   of the text mode (using the locale encoding) to avoid encoding issues.
@@ -108,6 +99,21 @@
 C-API
 -----
 
+Build
+-----
+
+- Issue #12560: Build libpython.so on OpenBSD.  Patch by Stefan Sperling.
+
+- Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
+
+- Issue #12372: POSIX semaphores are broken on AIX: don't use them.
+
+Tools/Demos
+-----------
+
+- Issue #10639: reindent.py no longer converts newlines and will raise
+  an error if attempting to convert a file with mixed newlines.
+
 Tests
 -----
 
@@ -227,9 +233,6 @@
   greater or equal to the default value, the value with which the interpreter
   was built.
 
-- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
-  Kitada.
-
 - Issue #12383: Fix subprocess module with env={}: don't copy the environment
   variables, start with an empty environment.
 
@@ -296,6 +299,9 @@
 Extension Modules
 -----------------
 
+- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
+  Kitada.
+
 - Issue #12221: Replace pyexpat.__version__ with the Python version.
 
 Build
@@ -310,11 +316,6 @@
   "make install" creates symlinks in --prefix bin for the "-32" files in the
   framework bin directory like the installer does.
 
-Tools/Demos
------------
-
-- Issue #10639: reindent.py no longer converts newlines and will raise
-  an error if attempting to convert a file with mixed newlines.
 
 Tests
 -----
diff --git a/Python/marshal.c b/Python/marshal.c
index 76d5690..094f732 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -57,7 +57,7 @@
     int error;  /* see WFERR_* values */
     int depth;
     /* If fp == NULL, the following are valid: */
-    PyObject * readable;    /* Stream-like object being read from */
+    PyObject *readable;    /* Stream-like object being read from */
     PyObject *str;
     char *ptr;
     char *end;
@@ -470,7 +470,7 @@
 static int
 r_string(char *s, int n, RFILE *p)
 {
-    char * ptr;
+    char *ptr;
     int read, left;
 
     if (!p->readable) {
@@ -569,7 +569,7 @@
 static PyObject *
 r_long64(RFILE *p)
 {
-    PyObject * result = NULL;
+    PyObject *result = NULL;
     long lo4 = r_long(p);
     long hi4 = r_long(p);
 
diff --git a/Tools/scripts/abitype.py b/Tools/scripts/abitype.py
old mode 100644
new mode 100755
index e35ef6a..4d96c8b
--- a/Tools/scripts/abitype.py
+++ b/Tools/scripts/abitype.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 # This script converts a C file to use the PEP 384 type definition API
 # Usage: abitype.py < old_code > new_code
 import re, sys
diff --git a/Tools/scripts/cleanfuture.py b/Tools/scripts/cleanfuture.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/combinerefs.py b/Tools/scripts/combinerefs.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/db2pickle.py b/Tools/scripts/db2pickle.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/diff.py b/Tools/scripts/diff.py
old mode 100644
new mode 100755
index 52dcab1..9efb078
--- a/Tools/scripts/diff.py
+++ b/Tools/scripts/diff.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 """ Command line interface to difflib.py providing diffs in four formats:
 
 * ndiff:    lists every line and highlights interline changes.
diff --git a/Tools/scripts/find_recursionlimit.py b/Tools/scripts/find_recursionlimit.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/get-remote-certificate.py b/Tools/scripts/get-remote-certificate.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/mailerdaemon.py b/Tools/scripts/mailerdaemon.py
old mode 100644
new mode 100755
index 4934b92..aeb451e
--- a/Tools/scripts/mailerdaemon.py
+++ b/Tools/scripts/mailerdaemon.py
@@ -1,4 +1,5 @@
-"""mailerdaemon - classes to parse mailer-daemon messages"""
+#!/usr/bin/env python3
+"""Classes to parse mailer-daemon messages."""
 
 import calendar
 import email.message
@@ -6,7 +7,10 @@
 import os
 import sys
 
-Unparseable = 'mailerdaemon.Unparseable'
+
+class Unparseable(Exception):
+    pass
+
 
 class ErrorMessage(email.message.Message):
     def __init__(self):
@@ -18,8 +22,10 @@
         if not sub:
             return 0
         sub = sub.lower()
-        if sub.startswith('waiting mail'): return 1
-        if 'warning' in sub: return 1
+        if sub.startswith('waiting mail'):
+            return 1
+        if 'warning' in sub:
+            return 1
         self.sub = sub
         return 0
 
@@ -145,14 +151,17 @@
         errors.append(' '.join((email.strip()+': '+reason).split()))
     return errors
 
-EMPARSERS = [emparse_list, ]
+EMPARSERS = [emparse_list]
 
 def sort_numeric(a, b):
     a = int(a)
     b = int(b)
-    if a < b: return -1
-    elif a > b: return 1
-    else: return 0
+    if a < b:
+        return -1
+    elif a > b:
+        return 1
+    else:
+        return 0
 
 def parsedir(dir, modify):
     os.chdir(dir)
diff --git a/Tools/scripts/make_ctype.py b/Tools/scripts/make_ctype.py
old mode 100644
new mode 100755
index 359d6b3..afee1c5
--- a/Tools/scripts/make_ctype.py
+++ b/Tools/scripts/make_ctype.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 """Script that generates the ctype.h-replacement in stringobject.c."""
 
 NAMES = ("LOWER", "UPPER", "ALPHA", "DIGIT", "XDIGIT", "ALNUM", "SPACE")
diff --git a/Tools/scripts/md5sum.py b/Tools/scripts/md5sum.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/patchcheck.py b/Tools/scripts/patchcheck.py
old mode 100644
new mode 100755
index e767eda..13b8ba4
--- a/Tools/scripts/patchcheck.py
+++ b/Tools/scripts/patchcheck.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
 import re
 import sys
 import shutil
diff --git a/Tools/scripts/pickle2db.py b/Tools/scripts/pickle2db.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/pysource.py b/Tools/scripts/pysource.py
old mode 100644
new mode 100755
diff --git a/Tools/scripts/reindent-rst.py b/Tools/scripts/reindent-rst.py
index ceb84bf..25608af 100755
--- a/Tools/scripts/reindent-rst.py
+++ b/Tools/scripts/reindent-rst.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # Make a reST file compliant to our pre-commit hook.
 # Currently just remove trailing whitespace.
diff --git a/Tools/scripts/svneol.py b/Tools/scripts/svneol.py
old mode 100644
new mode 100755
