Issue #27076: Doc, comment and tests spelling fixes

Most fixes to Doc/ and Lib/ directories by Ville Skyttä.
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index ad71c37..75b380b 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -177,7 +177,7 @@
       A buffer is considered contiguous exactly if it is either
       *C-contiguous* or *Fortran contiguous*.  Zero-dimensional buffers are
       C and Fortran contiguous.  In one-dimensional arrays, the items
-      must be layed out in memory next to each other, in order of
+      must be laid out in memory next to each other, in order of
       increasing indexes starting from zero.  In multidimensional
       C-contiguous arrays, the last index varies the fastest when
       visiting items in order of memory address.  However, in
diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py
index b07e75d..58e20cd 100644
--- a/Lib/_osx_support.py
+++ b/Lib/_osx_support.py
@@ -151,7 +151,7 @@
     #    can only be found inside Xcode.app if the "Command Line Tools"
     #    are not installed.
     #
-    #    Futhermore, the compiler that can be used varies between
+    #    Furthermore, the compiler that can be used varies between
     #    Xcode releases. Up to Xcode 4 it was possible to use 'gcc-4.2'
     #    as the compiler, after that 'clang' should be used because
     #    gcc-4.2 is either not present, or a copy of 'llvm-gcc' that
diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py
index 33b1840..f58b5ac 100644
--- a/Lib/asyncio/sslproto.py
+++ b/Lib/asyncio/sslproto.py
@@ -603,7 +603,7 @@
         self._wakeup_waiter()
         self._session_established = True
         # In case transport.write() was already called. Don't call
-        # immediatly _process_write_backlog(), but schedule it:
+        # immediately _process_write_backlog(), but schedule it:
         # _on_handshake_complete() can be called indirectly from
         # _process_write_backlog(), and _process_write_backlog() is not
         # reentrant.
diff --git a/Lib/cgi.py b/Lib/cgi.py
index 26d2544..189c6d5 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -184,7 +184,7 @@
 
 
 # parse query string function called from urlparse,
-# this is done in order to maintain backward compatiblity.
+# this is done in order to maintain backward compatibility.
 
 def parse_qs(qs, keep_blank_values=0, strict_parsing=0):
     """Parse a query given as a string argument."""
diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index 091e5d3..05eb170 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -365,7 +365,7 @@
     >>> x, y = p                        # unpack like a regular tuple
     >>> x, y
     (11, 22)
-    >>> p.x + p.y                       # fields also accessable by name
+    >>> p.x + p.y                       # fields also accessible by name
     33
     >>> d = p._asdict()                 # convert to a dictionary
     >>> d['x']
diff --git a/Lib/dis.py b/Lib/dis.py
index 09776fe..f7e3c7f 100644
--- a/Lib/dis.py
+++ b/Lib/dis.py
@@ -287,7 +287,7 @@
         argrepr = ''
         if arg is not None:
             #  Set argval to the dereferenced value of the argument when
-            #  availabe, and argrepr to the string representation of argval.
+            #  available, and argrepr to the string representation of argval.
             #    _disassemble_bytes needs the string repr of the
             #    raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
             argval = arg
diff --git a/Lib/distutils/msvc9compiler.py b/Lib/distutils/msvc9compiler.py
index da4b21d..0b1fd19 100644
--- a/Lib/distutils/msvc9compiler.py
+++ b/Lib/distutils/msvc9compiler.py
@@ -51,7 +51,7 @@
 
 # A map keyed by get_platform() return values to values accepted by
 # 'vcvarsall.bat'.  Note a cross-compile may combine these (eg, 'x86_amd64' is
-# the param to cross-compile on x86 targetting amd64.)
+# the param to cross-compile on x86 targeting amd64.)
 PLAT_TO_VCVARS = {
     'win32' : 'x86',
     'win-amd64' : 'amd64',
diff --git a/Lib/distutils/tests/test_unixccompiler.py b/Lib/distutils/tests/test_unixccompiler.py
index 3d14e12..e171ee9 100644
--- a/Lib/distutils/tests/test_unixccompiler.py
+++ b/Lib/distutils/tests/test_unixccompiler.py
@@ -127,7 +127,7 @@
         self.assertEqual(self.cc.linker_so[0], 'my_cc')
 
     @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for OS X')
-    def test_osx_explict_ldshared(self):
+    def test_osx_explicit_ldshared(self):
         # Issue #18080:
         # ensure that setting CC env variable does not change
         #   explicit LDSHARED setting for linker
diff --git a/Lib/email/_header_value_parser.py b/Lib/email/_header_value_parser.py
index a7ce30e..2226e13 100644
--- a/Lib/email/_header_value_parser.py
+++ b/Lib/email/_header_value_parser.py
@@ -2872,7 +2872,7 @@
         _find_mime_parameters(ctype, value)
         return ctype
     ctype.append(token)
-    # XXX: If we really want to follow the formal grammer we should make
+    # XXX: If we really want to follow the formal grammar we should make
     # mantype and subtype specialized TokenLists here.  Probably not worth it.
     if not value or value[0] != '/':
         ctype.defects.append(errors.InvalidHeaderDefect(
diff --git a/Lib/email/parser.py b/Lib/email/parser.py
index 8c9bc9e..555b172 100644
--- a/Lib/email/parser.py
+++ b/Lib/email/parser.py
@@ -23,7 +23,7 @@
         textual representation of the message.
 
         The string must be formatted as a block of RFC 2822 headers and header
-        continuation lines, optionally preceeded by a `Unix-from' header.  The
+        continuation lines, optionally preceded by a `Unix-from' header.  The
         header block is terminated either by the end of the string or by a
         blank line.
 
@@ -87,7 +87,7 @@
         textual representation of the message.
 
         The input must be formatted as a block of RFC 2822 headers and header
-        continuation lines, optionally preceeded by a `Unix-from' header.  The
+        continuation lines, optionally preceded by a `Unix-from' header.  The
         header block is terminated either by the end of the input or by a
         blank line.
 
diff --git a/Lib/encodings/utf_16.py b/Lib/encodings/utf_16.py
index 809bc9a..c612482 100644
--- a/Lib/encodings/utf_16.py
+++ b/Lib/encodings/utf_16.py
@@ -73,7 +73,7 @@
         self.decoder = None
 
     def getstate(self):
-        # additonal state info from the base class must be None here,
+        # additional state info from the base class must be None here,
         # as it isn't passed along to the caller
         state = codecs.BufferedIncrementalDecoder.getstate(self)[0]
         # additional state info we pass to the caller:
diff --git a/Lib/encodings/utf_32.py b/Lib/encodings/utf_32.py
index c052928..cdf84d1 100644
--- a/Lib/encodings/utf_32.py
+++ b/Lib/encodings/utf_32.py
@@ -68,7 +68,7 @@
         self.decoder = None
 
     def getstate(self):
-        # additonal state info from the base class must be None here,
+        # additional state info from the base class must be None here,
         # as it isn't passed along to the caller
         state = codecs.BufferedIncrementalDecoder.getstate(self)[0]
         # additional state info we pass to the caller:
diff --git a/Lib/html/parser.py b/Lib/html/parser.py
index 43e6411..b781c63 100644
--- a/Lib/html/parser.py
+++ b/Lib/html/parser.py
@@ -143,7 +143,7 @@
                     # or there's more text incoming.  If the latter is True,
                     # we can't pass the text to handle_data in case we have
                     # a charref cut in half at end.  Try to determine if
-                    # this is the case before proceding by looking for an
+                    # this is the case before proceeding by looking for an
                     # & near the end and see if it's followed by a space or ;.
                     amppos = rawdata.rfind('&', max(i, n-34))
                     if (amppos >= 0 and
diff --git a/Lib/http/cookies.py b/Lib/http/cookies.py
index dbddd6c..a73fe38 100644
--- a/Lib/http/cookies.py
+++ b/Lib/http/cookies.py
@@ -156,7 +156,7 @@
 # a two-way quoting algorithm.  Any non-text character is translated
 # into a 4 character sequence: a forward-slash followed by the
 # three-digit octal equivalent of the character.  Any '\' or '"' is
-# quoted with a preceeding '\' slash.
+# quoted with a preceding '\' slash.
 # Because of the way browsers really handle cookies (as opposed to what
 # the RFC says) we also encode "," and ";".
 #
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 1b3b430..9eecbfe 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1043,7 +1043,7 @@
 def __import__(name, globals=None, locals=None, fromlist=(), level=0):
     """Import a module.
 
-    The 'globals' argument is used to infer where the import is occuring from
+    The 'globals' argument is used to infer where the import is occurring from
     to handle relative imports. The 'locals' argument is ignored. The
     'fromlist' argument specifies what should exist as attributes on the module
     being imported (e.g. ``from module import <fromlist>``).  The 'level'
diff --git a/Lib/lib2to3/btm_utils.py b/Lib/lib2to3/btm_utils.py
index 339750e..ff76ba3 100644
--- a/Lib/lib2to3/btm_utils.py
+++ b/Lib/lib2to3/btm_utils.py
@@ -215,7 +215,7 @@
                 #reduce to None
                 new_node = None
             elif repeater_node.children[0].value == '+':
-                #reduce to a single occurence i.e. do nothing
+                #reduce to a single occurrence i.e. do nothing
                 pass
             else:
                 #TODO: handle {min, max} repeaters
diff --git a/Lib/lib2to3/fixes/fix_metaclass.py b/Lib/lib2to3/fixes/fix_metaclass.py
index f3f8708..46c7aaf 100644
--- a/Lib/lib2to3/fixes/fix_metaclass.py
+++ b/Lib/lib2to3/fixes/fix_metaclass.py
@@ -25,7 +25,7 @@
 
 def has_metaclass(parent):
     """ we have to check the cls_node without changing it.
-        There are two possiblities:
+        There are two possibilities:
           1)  clsdef => suite => simple_stmt => expr_stmt => Leaf('__meta')
           2)  clsdef => simple_stmt => expr_stmt => Leaf('__meta')
     """
diff --git a/Lib/lib2to3/patcomp.py b/Lib/lib2to3/patcomp.py
index 2012ec4..06a4b9d 100644
--- a/Lib/lib2to3/patcomp.py
+++ b/Lib/lib2to3/patcomp.py
@@ -3,7 +3,7 @@
 
 """Pattern compiler.
 
-The grammer is taken from PatternGrammar.txt.
+The grammar is taken from PatternGrammar.txt.
 
 The compiler compiles a pattern to a pytree.*Pattern instance.
 """
diff --git a/Lib/locale.py b/Lib/locale.py
index 60bfbea..6d59cd8 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -1451,7 +1451,7 @@
     0x1809: "en_IE", # English - Ireland
     0x1c09: "en_ZA", # English - South Africa
     0x2009: "en_JA", # English - Jamaica
-    0x2409: "en_CB", # English - Carribbean
+    0x2409: "en_CB", # English - Caribbean
     0x2809: "en_BZ", # English - Belize
     0x2c09: "en_TT", # English - Trinidad
     0x3009: "en_ZW", # English - Zimbabwe
diff --git a/Lib/msilib/schema.py b/Lib/msilib/schema.py
index 70fe138..eeb3ecd 100644
--- a/Lib/msilib/schema.py
+++ b/Lib/msilib/schema.py
@@ -731,7 +731,7 @@
 ('CustomAction','Type','N',1,16383,None, None, None, None, 'The numeric custom action type, consisting of source location, code type, entry, option flags.',),
 ('CustomAction','Action','N',None, None, None, None, 'Identifier',None, 'Primary key, name of action, normally appears in sequence table unless private use.',),
 ('CustomAction','Source','Y',None, None, None, None, 'CustomSource',None, 'The table reference of the source of the code.',),
-('CustomAction','Target','Y',None, None, None, None, 'Formatted',None, 'Excecution parameter, depends on the type of custom action',),
+('CustomAction','Target','Y',None, None, None, None, 'Formatted',None, 'Execution parameter, depends on the type of custom action',),
 ('DrLocator','Signature_','N',None, None, None, None, 'Identifier',None, 'The Signature_ represents a unique file signature and is also the foreign key in the Signature table.',),
 ('DrLocator','Path','Y',None, None, None, None, 'AnyPath',None, 'The path on the user system. This is either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.',),
 ('DrLocator','Depth','Y',0,32767,None, None, None, None, 'The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0.',),
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 4cba8a0..b79359d 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -300,7 +300,7 @@
 
         # An 'Internal StopIteration' exception is an exception debug event
         # issued by the interpreter when handling a subgenerator run with
-        # 'yield from' or a generator controled by a for loop. No exception has
+        # 'yield from' or a generator controlled by a for loop. No exception has
         # actually occurred in this case. The debugger uses this debug event to
         # stop when the debuggee is returning from such generators.
         prefix = 'Internal ' if (not exc_traceback
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 7512787..7760425 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -995,7 +995,7 @@
         meets this interface.
 
         Optional keyword arguments are *fix_imports*, *encoding* and
-        *errors*, which are used to control compatiblity support for
+        *errors*, which are used to control compatibility support for
         pickle stream generated by Python 2.  If *fix_imports* is True,
         pickle will try to map the old Python 2 names to the new names
         used in Python 3.  The *encoding* and *errors* tell pickle how
diff --git a/Lib/test/cfgparser.2 b/Lib/test/cfgparser.2
index 19a420a..1646de8 100644
--- a/Lib/test/cfgparser.2
+++ b/Lib/test/cfgparser.2
@@ -282,7 +282,7 @@
 # either /etc/hosts OR DNS or NIS depending on the settings of 
 # /etc/host.config, /etc/nsswitch.conf
 # and the /etc/resolv.conf file. "host" therefore is system 
-# configuration dependant. This parameter is most often of use to 
+# configuration dependent. This parameter is most often of use to 
 # prevent DNS lookups
 # in order to resolve NetBIOS names to IP Addresses. Use with care!
 # The example below excludes use of name resolution for machines that
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index b907164..f5222c7 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -1227,7 +1227,7 @@
         #self.assertRaises(ValueError, t.strftime, "%#")
 
         #oh well, some systems just ignore those invalid ones.
-        #at least, excercise them to make sure that no crashes
+        #at least, exercise them to make sure that no crashes
         #are generated
         for f in ["%e", "%", "%#"]:
             try:
@@ -2476,7 +2476,7 @@
             self.theclass(bytes([1] * len(base)), 'EST')
 
 # A mixin for classes with a tzinfo= argument.  Subclasses must define
-# theclass as a class atribute, and theclass(1, 1, 1, tzinfo=whatever)
+# theclass as a class attribute, and theclass(1, 1, 1, tzinfo=whatever)
 # must be legit (which is true for time and datetime).
 class TZInfoBase:
 
diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py
index 4803826..58f7253 100644
--- a/Lib/test/test_asyncio/test_subprocess.py
+++ b/Lib/test/test_asyncio/test_subprocess.py
@@ -407,7 +407,7 @@
             transport, protocol = yield from create
             proc = transport.get_extra_info('subprocess')
 
-            # kill the process (but asyncio is not notified immediatly)
+            # kill the process (but asyncio is not notified immediately)
             proc.kill()
             proc.wait()
 
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index d262d99..1eadd22 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -461,7 +461,7 @@
         test and not for the other, there's a mismatch, and the test fails.
 
            ** Some format units have special funny semantics and it would
-              be difficult to accomodate them here.  Since these are all
+              be difficult to accommodate them here.  Since these are all
               well-established and properly skipped in skipitem() we can
               get away with not testing them--this test is really intended
               to catch *new* format units.
diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py
index b99740b..cdb9308 100644
--- a/Lib/test/test_concurrent_futures.py
+++ b/Lib/test/test_concurrent_futures.py
@@ -676,7 +676,7 @@
         self.assertEqual(SUCCESSFUL_FUTURE.result(timeout=0), 42)
 
     def test_result_with_success(self):
-        # TODO(brian@sweetapp.com): This test is timing dependant.
+        # TODO(brian@sweetapp.com): This test is timing dependent.
         def notification():
             # Wait until the main thread is waiting for the result.
             time.sleep(1)
@@ -689,7 +689,7 @@
         self.assertEqual(f1.result(timeout=5), 42)
 
     def test_result_with_cancel(self):
-        # TODO(brian@sweetapp.com): This test is timing dependant.
+        # TODO(brian@sweetapp.com): This test is timing dependent.
         def notification():
             # Wait until the main thread is waiting for the result.
             time.sleep(1)
diff --git a/Lib/test/test_crypt.py b/Lib/test/test_crypt.py
index 624d702..e4f5897 100644
--- a/Lib/test/test_crypt.py
+++ b/Lib/test/test_crypt.py
@@ -25,7 +25,7 @@
             self.assertEqual(len(pw), method.total_size)
 
     def test_methods(self):
-        # Gurantee that METHOD_CRYPT is the last method in crypt.methods.
+        # Guarantee that METHOD_CRYPT is the last method in crypt.methods.
         self.assertTrue(len(crypt.methods) >= 1)
         self.assertEqual(crypt.METHOD_CRYPT, crypt.methods[-1])
 
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 6a7ba0b..29426a3 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -324,7 +324,7 @@
     >>> test.lineno + e2.lineno
     26
 
-If the docstring contains inconsistant leading whitespace in the
+If the docstring contains inconsistent leading whitespace in the
 expected output of an example, then `DocTest` will raise a ValueError:
 
     >>> docstring = r'''
diff --git a/Lib/test/test_email/test__header_value_parser.py b/Lib/test/test_email/test__header_value_parser.py
index d028f74..f7ac0e3 100644
--- a/Lib/test/test_email/test__header_value_parser.py
+++ b/Lib/test/test_email/test__header_value_parser.py
@@ -2498,7 +2498,7 @@
         # Note that it is undefined what we should do for error recovery when
         # there are duplicate parameter names or duplicate parts in a split
         # part.  We choose to ignore all duplicate parameters after the first
-        # and to take duplicate or missing rfc 2231 parts in apperance order.
+        # and to take duplicate or missing rfc 2231 parts in appearance order.
         # This is backward compatible with get_param's behavior, but the
         # decisions are arbitrary.
 
diff --git a/Lib/test/test_email/test_contentmanager.py b/Lib/test/test_email/test_contentmanager.py
index cdb04e4..169058e 100644
--- a/Lib/test/test_email/test_contentmanager.py
+++ b/Lib/test/test_email/test_contentmanager.py
@@ -621,7 +621,7 @@
         self.assertEqual(m.get_content(), content)
 
     def test_set_application_octet_stream_with_8bit_cte(self):
-        # In 8bit mode, univeral line end logic applies.  It is up to the
+        # In 8bit mode, universal line end logic applies.  It is up to the
         # application to make sure the lines are short enough; we don't check.
         m = self._make_message()
         content = b'b\xFFgus\tcon\nt\rent\n' + b'z'*60 + b'\n'
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index 31930fc..9abe984 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -1506,7 +1506,7 @@
                                  object])
 
         # MutableSequence below is registered directly on D. In other words, it
-        # preceeds MutableMapping which means single dispatch will always
+        # precedes MutableMapping which means single dispatch will always
         # choose MutableSequence here.
         class D(c.defaultdict):
             pass
diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index b92d5ce..3f82462 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -1351,7 +1351,7 @@
 
         # For each square, compute a bit vector of the columns and
         # diagonals it covers, and for each row compute a function that
-        # generates the possiblities for the columns in that row.
+        # generates the possibilities for the columns in that row.
         self.rowgenerators = []
         for i in rangen:
             rowuses = [(1 << j) |                  # column ordinal
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
index 8a297dd..c9b113e 100644
--- a/Lib/test/test_hashlib.py
+++ b/Lib/test/test_hashlib.py
@@ -449,7 +449,7 @@
 
     pbkdf2_results = {
         "sha1": [
-            # offical test vectors from RFC 6070
+            # official test vectors from RFC 6070
             (bytes.fromhex('0c60c80f961f0e71f3a9b524af6012062fe037a6'), None),
             (bytes.fromhex('ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957'), None),
             (bytes.fromhex('4b007901b765489abead49d926f721d065a429c1'), None),
diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py
index ea3c827..585838b 100644
--- a/Lib/test/test_http_cookiejar.py
+++ b/Lib/test/test_http_cookiejar.py
@@ -1729,7 +1729,7 @@
             key = "%s_after" % cookie.value
             counter[key] = counter[key] + 1
 
-            # a permanent cookie got lost accidently
+            # a permanent cookie got lost accidentally
         self.assertEqual(counter["perm_after"], counter["perm_before"])
             # a session cookie hasn't been cleared
         self.assertEqual(counter["session_after"], 0)
diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py
index 0866684..1fffdb1 100644
--- a/Lib/test/test_httpservers.py
+++ b/Lib/test/test_httpservers.py
@@ -99,7 +99,7 @@
 
         def do_EXPLAINERROR(self):
             self.send_error(999, "Short Message",
-                            "This is a long \n explaination")
+                            "This is a long \n explanation")
 
         def do_CUSTOM(self):
             self.send_response(999)
diff --git a/Lib/test/test_linecache.py b/Lib/test/test_linecache.py
index 21ef738..47e2edd 100644
--- a/Lib/test/test_linecache.py
+++ b/Lib/test/test_linecache.py
@@ -139,7 +139,7 @@
         self.assertEqual(
             True, linecache.lazycache(NONEXISTENT_FILENAME, globals()))
         self.assertEqual(1, len(linecache.cache[NONEXISTENT_FILENAME]))
-        # Note here that we're looking up a non existant filename with no
+        # Note here that we're looking up a nonexistent filename with no
         # globals: this would error if the lazy value wasn't resolved.
         self.assertEqual(lines, linecache.getlines(NONEXISTENT_FILENAME))
 
diff --git a/Lib/test/test_lzma.py b/Lib/test/test_lzma.py
index 2d39099..6c698e2 100644
--- a/Lib/test/test_lzma.py
+++ b/Lib/test/test_lzma.py
@@ -1211,7 +1211,7 @@
                 self.assertEqual(f.read(), uncompressed)
 
     def test_encoding_error_handler(self):
-        # Test wih non-default encoding error handler.
+        # Test with non-default encoding error handler.
         with BytesIO(lzma.compress(b"foo\xffbar")) as bio:
             with lzma.open(bio, "rt", encoding="ascii", errors="ignore") as f:
                 self.assertEqual(f.read(), "foobar")
diff --git a/Lib/test/test_memoryio.py b/Lib/test/test_memoryio.py
index 44d66c3..812db4c 100644
--- a/Lib/test/test_memoryio.py
+++ b/Lib/test/test_memoryio.py
@@ -376,7 +376,7 @@
 
         # Pickle expects the class to be on the module level. Here we use a
         # little hack to allow the PickleTestMemIO class to derive from
-        # self.ioclass without having to define all combinations explictly on
+        # self.ioclass without having to define all combinations explicitly on
         # the module-level.
         import __main__
         PickleTestMemIO.__module__ = '__main__'
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 35044ad..45ba5a9 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -824,7 +824,7 @@
     """
 
 def test_pdb_next_command_in_generator_for_loop():
-    """The next command on returning from a generator controled by a for loop.
+    """The next command on returning from a generator controlled by a for loop.
 
     >>> def test_gen():
     ...     yield 0
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index 8ad5706..f284779 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -734,7 +734,7 @@
             finally:
                 sys.path[:] = saved_paths
 
-    @unittest.skip('causes undesireable side-effects (#20128)')
+    @unittest.skip('causes undesirable side-effects (#20128)')
     def test_modules(self):
         # See Helper.listmodules().
         num_header_lines = 2
@@ -750,7 +750,7 @@
 
         self.assertGreaterEqual(num_lines, expected)
 
-    @unittest.skip('causes undesireable side-effects (#20128)')
+    @unittest.skip('causes undesirable side-effects (#20128)')
     def test_modules_search(self):
         # See Helper.listmodules().
         expected = 'pydoc - '
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index 0b99dfc..1a49edf 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -1836,7 +1836,7 @@
 
         # http://en.wikipedia.org/wiki/Cuboctahedron
         # 8 triangular faces and 6 square faces
-        # 12 indentical vertices each connecting a triangle and square
+        # 12 identical vertices each connecting a triangle and square
 
         g = cube(3)
         cuboctahedron = linegraph(g)            # V( --> {V1, V2, V3, V4}
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 3d6d205..394c78c 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -199,7 +199,7 @@
         clientTearDown ()
 
     Any new test functions within the class must then define
-    tests in pairs, where the test name is preceeded with a
+    tests in pairs, where the test name is preceded with a
     '_' to indicate the client portion of the test. Ex:
 
         def testFoo(self):
@@ -4988,7 +4988,7 @@
 
     def compareSockets(self, org, other):
         # socket sharing is expected to work only for blocking socket
-        # since the internal python timout value isn't transfered.
+        # since the internal python timeout value isn't transferred.
         self.assertEqual(org.gettimeout(), None)
         self.assertEqual(org.gettimeout(), other.gettimeout())
 
diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py
index 6c27c16..8e219f4 100644
--- a/Lib/test/test_telnetlib.py
+++ b/Lib/test/test_telnetlib.py
@@ -237,8 +237,8 @@
         self.assertEqual(data, want)
 
     def test_read_eager(self):
-        # read_eager and read_very_eager make the same gaurantees
-        # (they behave differently but we only test the gaurantees)
+        # read_eager and read_very_eager make the same guarantees
+        # (they behave differently but we only test the guarantees)
         self._read_eager('read_eager')
         self._read_eager('read_very_eager')
         # NB -- we need to test the IAC block which is mentioned in the
diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py
index 7afb24b..2a78388 100644
--- a/Lib/test/test_winsound.py
+++ b/Lib/test/test_winsound.py
@@ -158,7 +158,7 @@
             )
 
     def test_alias_fallback(self):
-        # In the absense of the ability to tell if a sound was actually
+        # In the absence of the ability to tell if a sound was actually
         # played, this test has two acceptable outcomes: success (no error,
         # sound was theoretically played; although as issue #19987 shows
         # a box without a soundcard can "succeed") or RuntimeError.  Any
diff --git a/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt b/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
index 2f53718..dc7c5f0 100644
--- a/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
+++ b/Lib/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
@@ -2,7 +2,7 @@
 # IMPORTANT: this file has the utf-8 BOM signature '\xef\xbb\xbf' 
 # at the start of it.  Make sure this is preserved if any changes
 # are made!  Also note that the coding cookie above conflicts with
-# the presense of a utf-8 BOM signature -- this is intended.
+# the presence of a utf-8 BOM signature -- this is intended.
 
 # Arbitrary encoded utf-8 text (stolen from test_doctest2.py).
 x = 'ЉЊЈЁЂ'
diff --git a/Lib/threading.py b/Lib/threading.py
index dd25f72..c9f8cb6 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -1061,7 +1061,7 @@
         # Issue #18808: wait for the thread state to be gone.
         # At the end of the thread's life, after all knowledge of the thread
         # is removed from C data structures, C code releases our _tstate_lock.
-        # This method passes its arguments to _tstate_lock.aquire().
+        # This method passes its arguments to _tstate_lock.acquire().
         # If the lock is acquired, the C code is done, and self._stop() is
         # called.  That sets ._is_stopped to True, and ._tstate_lock to None.
         lock = self._tstate_lock
diff --git a/Lib/tkinter/ttk.py b/Lib/tkinter/ttk.py
index 7d868fb..8f9369b 100644
--- a/Lib/tkinter/ttk.py
+++ b/Lib/tkinter/ttk.py
@@ -1012,7 +1012,7 @@
         """Begin autoincrement mode: schedules a recurring timer event
         that calls method step every interval milliseconds.
 
-        interval defaults to 50 milliseconds (20 steps/second) if ommited."""
+        interval defaults to 50 milliseconds (20 steps/second) if omitted."""
         self.tk.call(self._w, "start", interval)
 
 
diff --git a/Lib/traceback.py b/Lib/traceback.py
index 9b69da0..a2eb539 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -136,7 +136,7 @@
     return list(TracebackException(etype, value, None).format_exception_only())
 
 
-# -- not offical API but folk probably use these two functions.
+# -- not official API but folk probably use these two functions.
 
 def _format_final_exc_line(etype, value):
     valuestr = _some_str(value)
@@ -418,13 +418,13 @@
     - :attr:`stack` A `StackSummary` representing the traceback.
     - :attr:`exc_type` The class of the original traceback.
     - :attr:`filename` For syntax errors - the filename where the error
-      occured.
+      occurred.
     - :attr:`lineno` For syntax errors - the linenumber where the error
-      occured.
+      occurred.
     - :attr:`text` For syntax errors - the text where the error
-      occured.
+      occurred.
     - :attr:`offset` For syntax errors - the offset into the text where the
-      error occured.
+      error occurred.
     - :attr:`msg` For syntax errors - the compiler error message.
     """
 
diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py
index b254c80..eb447d7 100644
--- a/Lib/unittest/loader.py
+++ b/Lib/unittest/loader.py
@@ -387,7 +387,7 @@
             if tests is not None:
                 yield tests
             if not should_recurse:
-                # Either an error occured, or load_tests was used by the
+                # Either an error occurred, or load_tests was used by the
                 # package.
                 return
         # Handle the contents.
diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py
index a18f11b..c7e3206 100644
--- a/Lib/unittest/result.py
+++ b/Lib/unittest/result.py
@@ -148,7 +148,7 @@
         self.skipped.append((test, reason))
 
     def addExpectedFailure(self, test, err):
-        """Called when an expected failure/error occured."""
+        """Called when an expected failure/error occurred."""
         self.expectedFailures.append(
             (test, self._exc_info_to_string(err, test)))
 
diff --git a/Lib/wsgiref/headers.py b/Lib/wsgiref/headers.py
index 7e670b3..fab851c 100644
--- a/Lib/wsgiref/headers.py
+++ b/Lib/wsgiref/headers.py
@@ -69,7 +69,7 @@
         Return None if the header is missing instead of raising an exception.
 
         Note that if the header appeared multiple times, the first exactly which
-        occurrance gets returned is undefined.  Use getall() to get all
+        occurrence gets returned is undefined.  Use getall() to get all
         the values matching a header field name.
         """
         return self.get(name)
diff --git a/Mac/README b/Mac/README
index b4c6b7f..07f09fa 100644
--- a/Mac/README
+++ b/Mac/README
@@ -56,7 +56,7 @@
   See the section _`Building and using a universal binary of Python on Mac OS X`
   for more information.
 
-* ``--with-univeral-archs=VALUE``
+* ``--with-universal-archs=VALUE``
 
   Specify the kind of universal binary that should be created. This option is
   only valid when ``--enable-universalsdk`` is specified.  The default is
diff --git a/Makefile.pre.in b/Makefile.pre.in
index e5182a6..dee1263 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1452,7 +1452,7 @@
 # the Makefile in Mac
 #
 #
-# This target is here for backward compatiblity, previous versions of Python
+# This target is here for backward compatibility, previous versions of Python
 # hadn't integrated framework installation in the normal install process.
 frameworkinstall: install
 
diff --git a/Misc/HISTORY b/Misc/HISTORY
index 3457022..19d612e 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -26799,7 +26799,7 @@
 python parser.  Corresponding standard library modules token and symbol
 defines the numeric values of tokens and non-terminal symbols.
 
-* The posix module has aquired new functions setuid(), setgid(),
+* The posix module has acquired new functions setuid(), setgid(),
 execve(), and exec() has been renamed to execv().
 
 * The array module is extended with 8-byte object swaps, the 'i'
@@ -26813,7 +26813,7 @@
 * For select.select(), a timeout (4th) argument of None means the same
 as leaving the timeout argument out.
 
-* Module strop (and hence standard library module string) has aquired
+* Module strop (and hence standard library module string) has acquired
 a new function: rindex().  Thanks to Amrit Prem!
 
 * Module regex defines a new function symcomp() which uses an extended
@@ -27959,7 +27959,7 @@
   to give more useful results for negative operands
 - Changed/added range checks for long/plain integer shifts
 - Options found after "-c command" are now passed to the command in sys.argv
-  (note subtle incompatiblity with "python -c command -- -options"!)
+  (note subtle incompatibility with "python -c command -- -options"!)
 - Module stdwin is better protected against touching objects after they've
   been closed; menus can now also be closed explicitly
 - Stdwin now uses its own exception (stdwin.error)
diff --git a/Misc/NEWS b/Misc/NEWS
index c4e6826..bf9843f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2105,7 +2105,7 @@
 
 - Issue #23704: collections.deque() objects now support methods for index(),
   insert(), and copy().  This allows deques to be registered as a
-  MutableSequence and it improves their substitutablity for lists.
+  MutableSequence and it improves their substitutability for lists.
 
 - Issue #23715: :func:`signal.sigwaitinfo` and :func:`signal.sigtimedwait` are
   now retried when interrupted by a signal not in the *sigset* parameter, if
@@ -7342,7 +7342,7 @@
   internal XML encoding is not UTF-8 or US-ASCII.  It also now accepts bytes
   and strings larger than 2 GiB.
 
-- Issue #6083: Fix multiple segmentation faults occured when PyArg_ParseTuple
+- Issue #6083: Fix multiple segmentation faults occurred when PyArg_ParseTuple
   parses nested mutating sequence.
 
 - Issue #5289: Fix ctypes.util.find_library on Solaris.
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 0e50023..c9ba9f7 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -219,7 +219,7 @@
         return _days_in_month[month];
 }
 
-/* year, month -> number of days in year preceeding first day of month */
+/* year, month -> number of days in year preceding first day of month */
 static int
 days_before_month(int year, int month)
 {
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 47977ec..9b8b042 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -6520,7 +6520,7 @@
 other custom object that meets this interface.
 
 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
-which are used to control compatiblity support for pickle stream
+which are used to control compatibility support for pickle stream
 generated by Python 2.  If *fix_imports* is True, pickle will try to
 map the old Python 2 names to the new names used in Python 3.  The
 *encoding* and *errors* tell pickle how to decode 8-bit string
@@ -6533,7 +6533,7 @@
 _pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject *file,
                                 int fix_imports, const char *encoding,
                                 const char *errors)
-/*[clinic end generated code: output=e2c8ce748edc57b0 input=04ece661aa884837]*/
+/*[clinic end generated code: output=e2c8ce748edc57b0 input=f9b7da04f5f4f335]*/
 {
     _Py_IDENTIFIER(persistent_load);
 
@@ -7066,7 +7066,7 @@
 other custom object that meets this interface.
 
 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
-which are used to control compatiblity support for pickle stream
+which are used to control compatibility support for pickle stream
 generated by Python 2.  If *fix_imports* is True, pickle will try to
 map the old Python 2 names to the new names used in Python 3.  The
 *encoding* and *errors* tell pickle how to decode 8-bit string
@@ -7078,7 +7078,7 @@
 static PyObject *
 _pickle_load_impl(PyModuleDef *module, PyObject *file, int fix_imports,
                   const char *encoding, const char *errors)
-/*[clinic end generated code: output=798f1c57cb2b4eb1 input=2df7c7a1e6742204]*/
+/*[clinic end generated code: output=798f1c57cb2b4eb1 input=01b44dd3fc07afa7]*/
 {
     PyObject *result;
     UnpicklerObject *unpickler = _Unpickler_New();
@@ -7120,7 +7120,7 @@
 representation are ignored.
 
 Optional keyword arguments are *fix_imports*, *encoding* and *errors*,
-which are used to control compatiblity support for pickle stream
+which are used to control compatibility support for pickle stream
 generated by Python 2.  If *fix_imports* is True, pickle will try to
 map the old Python 2 names to the new names used in Python 3.  The
 *encoding* and *errors* tell pickle how to decode 8-bit string
@@ -7132,7 +7132,7 @@
 static PyObject *
 _pickle_loads_impl(PyModuleDef *module, PyObject *data, int fix_imports,
                    const char *encoding, const char *errors)
-/*[clinic end generated code: output=61e9cdb01e36a736 input=f57f0fdaa2b4cb8b]*/
+/*[clinic end generated code: output=61e9cdb01e36a736 input=70605948a719feb9]*/
 {
     PyObject *result;
     UnpicklerObject *unpickler = _Unpickler_New();
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h
index a9f0c42..ab4d205 100644
--- a/Modules/clinic/_pickle.c.h
+++ b/Modules/clinic/_pickle.c.h
@@ -264,7 +264,7 @@
 "other custom object that meets this interface.\n"
 "\n"
 "Optional keyword arguments are *fix_imports*, *encoding* and *errors*,\n"
-"which are used to control compatiblity support for pickle stream\n"
+"which are used to control compatibility support for pickle stream\n"
 "generated by Python 2.  If *fix_imports* is True, pickle will try to\n"
 "map the old Python 2 names to the new names used in Python 3.  The\n"
 "*encoding* and *errors* tell pickle how to decode 8-bit string\n"
@@ -466,7 +466,7 @@
 "other custom object that meets this interface.\n"
 "\n"
 "Optional keyword arguments are *fix_imports*, *encoding* and *errors*,\n"
-"which are used to control compatiblity support for pickle stream\n"
+"which are used to control compatibility support for pickle stream\n"
 "generated by Python 2.  If *fix_imports* is True, pickle will try to\n"
 "map the old Python 2 names to the new names used in Python 3.  The\n"
 "*encoding* and *errors* tell pickle how to decode 8-bit string\n"
@@ -512,7 +512,7 @@
 "representation are ignored.\n"
 "\n"
 "Optional keyword arguments are *fix_imports*, *encoding* and *errors*,\n"
-"which are used to control compatiblity support for pickle stream\n"
+"which are used to control compatibility support for pickle stream\n"
 "generated by Python 2.  If *fix_imports* is True, pickle will try to\n"
 "map the old Python 2 names to the new names used in Python 3.  The\n"
 "*encoding* and *errors* tell pickle how to decode 8-bit string\n"
@@ -545,4 +545,4 @@
 exit:
     return return_value;
 }
-/*[clinic end generated code: output=aecd61660d1cf31d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a7169d4fbbeef827 input=a9049054013a1b77]*/
diff --git a/Modules/sha256module.c b/Modules/sha256module.c
index 8c4def0..70c2b5b 100644
--- a/Modules/sha256module.c
+++ b/Modules/sha256module.c
@@ -100,7 +100,7 @@
  * algorithms in a highly modular and flexible manner.
  *
  * The library is free for all purposes without any express
- * gurantee it works.
+ * guarantee it works.
  *
  * Tom St Denis, tomstdenis@iahu.ca, http://libtom.org
  */
diff --git a/Modules/sha512module.c b/Modules/sha512module.c
index 8237d86..76942aa 100644
--- a/Modules/sha512module.c
+++ b/Modules/sha512module.c
@@ -111,7 +111,7 @@
  * algorithms in a highly modular and flexible manner.
  *
  * The library is free for all purposes without any express
- * gurantee it works.
+ * guarantee it works.
  *
  * Tom St Denis, tomstdenis@iahu.ca, http://libtom.org
  */
diff --git a/Python/fileutils.c b/Python/fileutils.c
index 8987ce5..23eed71 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -176,7 +176,7 @@
 #endif
 
 error:
-    /* if an error occured, force the ASCII encoding */
+    /* if an error occurred, force the ASCII encoding */
     return 1;
 }
 
diff --git a/Python/importlib.h b/Python/importlib.h
index fab4358..7f6b753 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -1827,163 +1827,163 @@
     0,106,6,0,100,2,0,116,3,0,124,5,0,106,6,0,
     131,1,0,124,8,0,24,133,2,0,25,25,83,110,16,0,
     116,7,0,124,5,0,124,3,0,116,0,0,131,3,0,83,
-    100,2,0,83,41,4,97,214,1,0,0,73,109,112,111,114,
+    100,2,0,83,41,4,97,215,1,0,0,73,109,112,111,114,
     116,32,97,32,109,111,100,117,108,101,46,10,10,32,32,32,
     32,84,104,101,32,39,103,108,111,98,97,108,115,39,32,97,
     114,103,117,109,101,110,116,32,105,115,32,117,115,101,100,32,
     116,111,32,105,110,102,101,114,32,119,104,101,114,101,32,116,
     104,101,32,105,109,112,111,114,116,32,105,115,32,111,99,99,
-    117,114,105,110,103,32,102,114,111,109,10,32,32,32,32,116,
-    111,32,104,97,110,100,108,101,32,114,101,108,97,116,105,118,
-    101,32,105,109,112,111,114,116,115,46,32,84,104,101,32,39,
-    108,111,99,97,108,115,39,32,97,114,103,117,109,101,110,116,
-    32,105,115,32,105,103,110,111,114,101,100,46,32,84,104,101,
-    10,32,32,32,32,39,102,114,111,109,108,105,115,116,39,32,
-    97,114,103,117,109,101,110,116,32,115,112,101,99,105,102,105,
-    101,115,32,119,104,97,116,32,115,104,111,117,108,100,32,101,
-    120,105,115,116,32,97,115,32,97,116,116,114,105,98,117,116,
-    101,115,32,111,110,32,116,104,101,32,109,111,100,117,108,101,
-    10,32,32,32,32,98,101,105,110,103,32,105,109,112,111,114,
-    116,101,100,32,40,101,46,103,46,32,96,96,102,114,111,109,
-    32,109,111,100,117,108,101,32,105,109,112,111,114,116,32,60,
-    102,114,111,109,108,105,115,116,62,96,96,41,46,32,32,84,
-    104,101,32,39,108,101,118,101,108,39,10,32,32,32,32,97,
-    114,103,117,109,101,110,116,32,114,101,112,114,101,115,101,110,
-    116,115,32,116,104,101,32,112,97,99,107,97,103,101,32,108,
-    111,99,97,116,105,111,110,32,116,111,32,105,109,112,111,114,
-    116,32,102,114,111,109,32,105,110,32,97,32,114,101,108,97,
-    116,105,118,101,10,32,32,32,32,105,109,112,111,114,116,32,
-    40,101,46,103,46,32,96,96,102,114,111,109,32,46,46,112,
-    107,103,32,105,109,112,111,114,116,32,109,111,100,96,96,32,
-    119,111,117,108,100,32,104,97,118,101,32,97,32,39,108,101,
-    118,101,108,39,32,111,102,32,50,41,46,10,10,32,32,32,
-    32,114,33,0,0,0,78,114,121,0,0,0,41,8,114,186,
-    0,0,0,114,196,0,0,0,218,9,112,97,114,116,105,116,
-    105,111,110,114,167,0,0,0,114,14,0,0,0,114,21,0,
-    0,0,114,1,0,0,0,114,194,0,0,0,41,9,114,15,
-    0,0,0,114,195,0,0,0,218,6,108,111,99,97,108,115,
-    114,192,0,0,0,114,170,0,0,0,114,89,0,0,0,90,
-    8,103,108,111,98,97,108,115,95,114,169,0,0,0,90,7,
-    99,117,116,95,111,102,102,114,10,0,0,0,114,10,0,0,
-    0,114,11,0,0,0,218,10,95,95,105,109,112,111,114,116,
-    95,95,19,4,0,0,115,26,0,0,0,0,11,12,1,15,
-    2,24,1,12,1,18,1,6,3,12,1,23,1,6,1,4,
-    4,35,3,40,2,114,199,0,0,0,99,1,0,0,0,0,
-    0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
-    53,0,0,0,116,0,0,106,1,0,124,0,0,131,1,0,
-    125,1,0,124,1,0,100,0,0,107,8,0,114,43,0,116,
-    2,0,100,1,0,124,0,0,23,131,1,0,130,1,0,116,
-    3,0,124,1,0,131,1,0,83,41,2,78,122,25,110,111,
-    32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,
-    32,110,97,109,101,100,32,41,4,114,150,0,0,0,114,154,
-    0,0,0,114,77,0,0,0,114,149,0,0,0,41,2,114,
-    15,0,0,0,114,88,0,0,0,114,10,0,0,0,114,10,
-    0,0,0,114,11,0,0,0,218,18,95,98,117,105,108,116,
-    105,110,95,102,114,111,109,95,110,97,109,101,54,4,0,0,
-    115,8,0,0,0,0,1,15,1,12,1,16,1,114,200,0,
-    0,0,99,2,0,0,0,0,0,0,0,12,0,0,0,12,
-    0,0,0,67,0,0,0,115,74,1,0,0,124,1,0,97,
-    0,0,124,0,0,97,1,0,116,2,0,116,1,0,131,1,
-    0,125,2,0,120,123,0,116,1,0,106,3,0,106,4,0,
-    131,0,0,68,93,106,0,92,2,0,125,3,0,125,4,0,
-    116,5,0,124,4,0,124,2,0,131,2,0,114,40,0,124,
-    3,0,116,1,0,106,6,0,107,6,0,114,91,0,116,7,
-    0,125,5,0,110,27,0,116,0,0,106,8,0,124,3,0,
-    131,1,0,114,40,0,116,9,0,125,5,0,110,3,0,113,
-    40,0,116,10,0,124,4,0,124,5,0,131,2,0,125,6,
-    0,116,11,0,124,6,0,124,4,0,131,2,0,1,113,40,
-    0,87,116,1,0,106,3,0,116,12,0,25,125,7,0,120,
-    73,0,100,5,0,68,93,65,0,125,8,0,124,8,0,116,
-    1,0,106,3,0,107,7,0,114,206,0,116,13,0,124,8,
-    0,131,1,0,125,9,0,110,13,0,116,1,0,106,3,0,
-    124,8,0,25,125,9,0,116,14,0,124,7,0,124,8,0,
-    124,9,0,131,3,0,1,113,170,0,87,121,16,0,116,13,
-    0,100,2,0,131,1,0,125,10,0,87,110,24,0,4,116,
-    15,0,107,10,0,114,25,1,1,1,1,100,3,0,125,10,
-    0,89,110,1,0,88,116,14,0,124,7,0,100,2,0,124,
-    10,0,131,3,0,1,116,13,0,100,4,0,131,1,0,125,
-    11,0,116,14,0,124,7,0,100,4,0,124,11,0,131,3,
-    0,1,100,3,0,83,41,6,122,250,83,101,116,117,112,32,
-    105,109,112,111,114,116,108,105,98,32,98,121,32,105,109,112,
-    111,114,116,105,110,103,32,110,101,101,100,101,100,32,98,117,
-    105,108,116,45,105,110,32,109,111,100,117,108,101,115,32,97,
-    110,100,32,105,110,106,101,99,116,105,110,103,32,116,104,101,
-    109,10,32,32,32,32,105,110,116,111,32,116,104,101,32,103,
-    108,111,98,97,108,32,110,97,109,101,115,112,97,99,101,46,
-    10,10,32,32,32,32,65,115,32,115,121,115,32,105,115,32,
-    110,101,101,100,101,100,32,102,111,114,32,115,121,115,46,109,
-    111,100,117,108,101,115,32,97,99,99,101,115,115,32,97,110,
-    100,32,95,105,109,112,32,105,115,32,110,101,101,100,101,100,
-    32,116,111,32,108,111,97,100,32,98,117,105,108,116,45,105,
-    110,10,32,32,32,32,109,111,100,117,108,101,115,44,32,116,
-    104,111,115,101,32,116,119,111,32,109,111,100,117,108,101,115,
-    32,109,117,115,116,32,98,101,32,101,120,112,108,105,99,105,
-    116,108,121,32,112,97,115,115,101,100,32,105,110,46,10,10,
-    32,32,32,32,114,141,0,0,0,114,34,0,0,0,78,114,
-    62,0,0,0,41,1,122,9,95,119,97,114,110,105,110,103,
-    115,41,16,114,57,0,0,0,114,14,0,0,0,114,13,0,
-    0,0,114,21,0,0,0,218,5,105,116,101,109,115,114,177,
-    0,0,0,114,76,0,0,0,114,150,0,0,0,114,82,0,
-    0,0,114,160,0,0,0,114,132,0,0,0,114,137,0,0,
-    0,114,1,0,0,0,114,200,0,0,0,114,5,0,0,0,
-    114,77,0,0,0,41,12,218,10,115,121,115,95,109,111,100,
-    117,108,101,218,11,95,105,109,112,95,109,111,100,117,108,101,
-    90,11,109,111,100,117,108,101,95,116,121,112,101,114,15,0,
-    0,0,114,89,0,0,0,114,99,0,0,0,114,88,0,0,
-    0,90,11,115,101,108,102,95,109,111,100,117,108,101,90,12,
-    98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,
-    105,108,116,105,110,95,109,111,100,117,108,101,90,13,116,104,
-    114,101,97,100,95,109,111,100,117,108,101,90,14,119,101,97,
-    107,114,101,102,95,109,111,100,117,108,101,114,10,0,0,0,
-    114,10,0,0,0,114,11,0,0,0,218,6,95,115,101,116,
-    117,112,61,4,0,0,115,50,0,0,0,0,9,6,1,6,
-    3,12,1,28,1,15,1,15,1,9,1,15,1,9,2,3,
-    1,15,1,17,3,13,1,13,1,15,1,15,2,13,1,20,
-    3,3,1,16,1,13,2,11,1,16,3,12,1,114,204,0,
-    0,0,99,2,0,0,0,0,0,0,0,3,0,0,0,3,
-    0,0,0,67,0,0,0,115,87,0,0,0,116,0,0,124,
-    0,0,124,1,0,131,2,0,1,116,1,0,106,2,0,106,
-    3,0,116,4,0,131,1,0,1,116,1,0,106,2,0,106,
-    3,0,116,5,0,131,1,0,1,100,1,0,100,2,0,108,
-    6,0,125,2,0,124,2,0,97,7,0,124,2,0,106,8,
-    0,116,1,0,106,9,0,116,10,0,25,131,1,0,1,100,
-    2,0,83,41,3,122,50,73,110,115,116,97,108,108,32,105,
-    109,112,111,114,116,108,105,98,32,97,115,32,116,104,101,32,
-    105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,
-    102,32,105,109,112,111,114,116,46,114,33,0,0,0,78,41,
-    11,114,204,0,0,0,114,14,0,0,0,114,174,0,0,0,
-    114,113,0,0,0,114,150,0,0,0,114,160,0,0,0,218,
-    26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108,
-    105,98,95,101,120,116,101,114,110,97,108,114,119,0,0,0,
-    218,8,95,105,110,115,116,97,108,108,114,21,0,0,0,114,
-    1,0,0,0,41,3,114,202,0,0,0,114,203,0,0,0,
-    114,205,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
-    11,0,0,0,114,206,0,0,0,108,4,0,0,115,12,0,
-    0,0,0,2,13,2,16,1,16,3,12,1,6,1,114,206,
-    0,0,0,41,51,114,3,0,0,0,114,119,0,0,0,114,
-    12,0,0,0,114,16,0,0,0,114,17,0,0,0,114,59,
-    0,0,0,114,41,0,0,0,114,48,0,0,0,114,31,0,
-    0,0,114,32,0,0,0,114,53,0,0,0,114,54,0,0,
-    0,114,56,0,0,0,114,63,0,0,0,114,65,0,0,0,
-    114,75,0,0,0,114,81,0,0,0,114,84,0,0,0,114,
-    90,0,0,0,114,101,0,0,0,114,102,0,0,0,114,106,
-    0,0,0,114,85,0,0,0,218,6,111,98,106,101,99,116,
-    90,9,95,80,79,80,85,76,65,84,69,114,132,0,0,0,
-    114,137,0,0,0,114,144,0,0,0,114,97,0,0,0,114,
-    86,0,0,0,114,148,0,0,0,114,149,0,0,0,114,87,
-    0,0,0,114,150,0,0,0,114,160,0,0,0,114,165,0,
-    0,0,114,171,0,0,0,114,173,0,0,0,114,176,0,0,
-    0,114,181,0,0,0,114,191,0,0,0,114,182,0,0,0,
-    114,184,0,0,0,114,185,0,0,0,114,186,0,0,0,114,
-    194,0,0,0,114,196,0,0,0,114,199,0,0,0,114,200,
-    0,0,0,114,204,0,0,0,114,206,0,0,0,114,10,0,
-    0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
-    0,218,8,60,109,111,100,117,108,101,62,8,0,0,0,115,
-    96,0,0,0,6,17,6,2,12,8,12,4,19,20,6,2,
-    6,3,22,4,19,68,19,21,19,19,12,19,12,19,12,11,
-    18,8,12,11,12,12,12,16,12,36,19,27,19,101,24,26,
-    9,3,18,45,18,60,12,18,12,17,12,25,12,29,12,23,
-    12,16,19,73,19,77,19,13,12,9,12,9,15,40,12,17,
-    6,1,10,2,12,27,12,6,18,24,12,32,12,15,24,35,
-    12,7,12,47,
+    117,114,114,105,110,103,32,102,114,111,109,10,32,32,32,32,
+    116,111,32,104,97,110,100,108,101,32,114,101,108,97,116,105,
+    118,101,32,105,109,112,111,114,116,115,46,32,84,104,101,32,
+    39,108,111,99,97,108,115,39,32,97,114,103,117,109,101,110,
+    116,32,105,115,32,105,103,110,111,114,101,100,46,32,84,104,
+    101,10,32,32,32,32,39,102,114,111,109,108,105,115,116,39,
+    32,97,114,103,117,109,101,110,116,32,115,112,101,99,105,102,
+    105,101,115,32,119,104,97,116,32,115,104,111,117,108,100,32,
+    101,120,105,115,116,32,97,115,32,97,116,116,114,105,98,117,
+    116,101,115,32,111,110,32,116,104,101,32,109,111,100,117,108,
+    101,10,32,32,32,32,98,101,105,110,103,32,105,109,112,111,
+    114,116,101,100,32,40,101,46,103,46,32,96,96,102,114,111,
+    109,32,109,111,100,117,108,101,32,105,109,112,111,114,116,32,
+    60,102,114,111,109,108,105,115,116,62,96,96,41,46,32,32,
+    84,104,101,32,39,108,101,118,101,108,39,10,32,32,32,32,
+    97,114,103,117,109,101,110,116,32,114,101,112,114,101,115,101,
+    110,116,115,32,116,104,101,32,112,97,99,107,97,103,101,32,
+    108,111,99,97,116,105,111,110,32,116,111,32,105,109,112,111,
+    114,116,32,102,114,111,109,32,105,110,32,97,32,114,101,108,
+    97,116,105,118,101,10,32,32,32,32,105,109,112,111,114,116,
+    32,40,101,46,103,46,32,96,96,102,114,111,109,32,46,46,
+    112,107,103,32,105,109,112,111,114,116,32,109,111,100,96,96,
+    32,119,111,117,108,100,32,104,97,118,101,32,97,32,39,108,
+    101,118,101,108,39,32,111,102,32,50,41,46,10,10,32,32,
+    32,32,114,33,0,0,0,78,114,121,0,0,0,41,8,114,
+    186,0,0,0,114,196,0,0,0,218,9,112,97,114,116,105,
+    116,105,111,110,114,167,0,0,0,114,14,0,0,0,114,21,
+    0,0,0,114,1,0,0,0,114,194,0,0,0,41,9,114,
+    15,0,0,0,114,195,0,0,0,218,6,108,111,99,97,108,
+    115,114,192,0,0,0,114,170,0,0,0,114,89,0,0,0,
+    90,8,103,108,111,98,97,108,115,95,114,169,0,0,0,90,
+    7,99,117,116,95,111,102,102,114,10,0,0,0,114,10,0,
+    0,0,114,11,0,0,0,218,10,95,95,105,109,112,111,114,
+    116,95,95,19,4,0,0,115,26,0,0,0,0,11,12,1,
+    15,2,24,1,12,1,18,1,6,3,12,1,23,1,6,1,
+    4,4,35,3,40,2,114,199,0,0,0,99,1,0,0,0,
+    0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
+    115,53,0,0,0,116,0,0,106,1,0,124,0,0,131,1,
+    0,125,1,0,124,1,0,100,0,0,107,8,0,114,43,0,
+    116,2,0,100,1,0,124,0,0,23,131,1,0,130,1,0,
+    116,3,0,124,1,0,131,1,0,83,41,2,78,122,25,110,
+    111,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,
+    101,32,110,97,109,101,100,32,41,4,114,150,0,0,0,114,
+    154,0,0,0,114,77,0,0,0,114,149,0,0,0,41,2,
+    114,15,0,0,0,114,88,0,0,0,114,10,0,0,0,114,
+    10,0,0,0,114,11,0,0,0,218,18,95,98,117,105,108,
+    116,105,110,95,102,114,111,109,95,110,97,109,101,54,4,0,
+    0,115,8,0,0,0,0,1,15,1,12,1,16,1,114,200,
+    0,0,0,99,2,0,0,0,0,0,0,0,12,0,0,0,
+    12,0,0,0,67,0,0,0,115,74,1,0,0,124,1,0,
+    97,0,0,124,0,0,97,1,0,116,2,0,116,1,0,131,
+    1,0,125,2,0,120,123,0,116,1,0,106,3,0,106,4,
+    0,131,0,0,68,93,106,0,92,2,0,125,3,0,125,4,
+    0,116,5,0,124,4,0,124,2,0,131,2,0,114,40,0,
+    124,3,0,116,1,0,106,6,0,107,6,0,114,91,0,116,
+    7,0,125,5,0,110,27,0,116,0,0,106,8,0,124,3,
+    0,131,1,0,114,40,0,116,9,0,125,5,0,110,3,0,
+    113,40,0,116,10,0,124,4,0,124,5,0,131,2,0,125,
+    6,0,116,11,0,124,6,0,124,4,0,131,2,0,1,113,
+    40,0,87,116,1,0,106,3,0,116,12,0,25,125,7,0,
+    120,73,0,100,5,0,68,93,65,0,125,8,0,124,8,0,
+    116,1,0,106,3,0,107,7,0,114,206,0,116,13,0,124,
+    8,0,131,1,0,125,9,0,110,13,0,116,1,0,106,3,
+    0,124,8,0,25,125,9,0,116,14,0,124,7,0,124,8,
+    0,124,9,0,131,3,0,1,113,170,0,87,121,16,0,116,
+    13,0,100,2,0,131,1,0,125,10,0,87,110,24,0,4,
+    116,15,0,107,10,0,114,25,1,1,1,1,100,3,0,125,
+    10,0,89,110,1,0,88,116,14,0,124,7,0,100,2,0,
+    124,10,0,131,3,0,1,116,13,0,100,4,0,131,1,0,
+    125,11,0,116,14,0,124,7,0,100,4,0,124,11,0,131,
+    3,0,1,100,3,0,83,41,6,122,250,83,101,116,117,112,
+    32,105,109,112,111,114,116,108,105,98,32,98,121,32,105,109,
+    112,111,114,116,105,110,103,32,110,101,101,100,101,100,32,98,
+    117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,32,
+    97,110,100,32,105,110,106,101,99,116,105,110,103,32,116,104,
+    101,109,10,32,32,32,32,105,110,116,111,32,116,104,101,32,
+    103,108,111,98,97,108,32,110,97,109,101,115,112,97,99,101,
+    46,10,10,32,32,32,32,65,115,32,115,121,115,32,105,115,
+    32,110,101,101,100,101,100,32,102,111,114,32,115,121,115,46,
+    109,111,100,117,108,101,115,32,97,99,99,101,115,115,32,97,
+    110,100,32,95,105,109,112,32,105,115,32,110,101,101,100,101,
+    100,32,116,111,32,108,111,97,100,32,98,117,105,108,116,45,
+    105,110,10,32,32,32,32,109,111,100,117,108,101,115,44,32,
+    116,104,111,115,101,32,116,119,111,32,109,111,100,117,108,101,
+    115,32,109,117,115,116,32,98,101,32,101,120,112,108,105,99,
+    105,116,108,121,32,112,97,115,115,101,100,32,105,110,46,10,
+    10,32,32,32,32,114,141,0,0,0,114,34,0,0,0,78,
+    114,62,0,0,0,41,1,122,9,95,119,97,114,110,105,110,
+    103,115,41,16,114,57,0,0,0,114,14,0,0,0,114,13,
+    0,0,0,114,21,0,0,0,218,5,105,116,101,109,115,114,
+    177,0,0,0,114,76,0,0,0,114,150,0,0,0,114,82,
+    0,0,0,114,160,0,0,0,114,132,0,0,0,114,137,0,
+    0,0,114,1,0,0,0,114,200,0,0,0,114,5,0,0,
+    0,114,77,0,0,0,41,12,218,10,115,121,115,95,109,111,
+    100,117,108,101,218,11,95,105,109,112,95,109,111,100,117,108,
+    101,90,11,109,111,100,117,108,101,95,116,121,112,101,114,15,
+    0,0,0,114,89,0,0,0,114,99,0,0,0,114,88,0,
+    0,0,90,11,115,101,108,102,95,109,111,100,117,108,101,90,
+    12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,
+    117,105,108,116,105,110,95,109,111,100,117,108,101,90,13,116,
+    104,114,101,97,100,95,109,111,100,117,108,101,90,14,119,101,
+    97,107,114,101,102,95,109,111,100,117,108,101,114,10,0,0,
+    0,114,10,0,0,0,114,11,0,0,0,218,6,95,115,101,
+    116,117,112,61,4,0,0,115,50,0,0,0,0,9,6,1,
+    6,3,12,1,28,1,15,1,15,1,9,1,15,1,9,2,
+    3,1,15,1,17,3,13,1,13,1,15,1,15,2,13,1,
+    20,3,3,1,16,1,13,2,11,1,16,3,12,1,114,204,
+    0,0,0,99,2,0,0,0,0,0,0,0,3,0,0,0,
+    3,0,0,0,67,0,0,0,115,87,0,0,0,116,0,0,
+    124,0,0,124,1,0,131,2,0,1,116,1,0,106,2,0,
+    106,3,0,116,4,0,131,1,0,1,116,1,0,106,2,0,
+    106,3,0,116,5,0,131,1,0,1,100,1,0,100,2,0,
+    108,6,0,125,2,0,124,2,0,97,7,0,124,2,0,106,
+    8,0,116,1,0,106,9,0,116,10,0,25,131,1,0,1,
+    100,2,0,83,41,3,122,50,73,110,115,116,97,108,108,32,
+    105,109,112,111,114,116,108,105,98,32,97,115,32,116,104,101,
+    32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
+    111,102,32,105,109,112,111,114,116,46,114,33,0,0,0,78,
+    41,11,114,204,0,0,0,114,14,0,0,0,114,174,0,0,
+    0,114,113,0,0,0,114,150,0,0,0,114,160,0,0,0,
+    218,26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,
+    108,105,98,95,101,120,116,101,114,110,97,108,114,119,0,0,
+    0,218,8,95,105,110,115,116,97,108,108,114,21,0,0,0,
+    114,1,0,0,0,41,3,114,202,0,0,0,114,203,0,0,
+    0,114,205,0,0,0,114,10,0,0,0,114,10,0,0,0,
+    114,11,0,0,0,114,206,0,0,0,108,4,0,0,115,12,
+    0,0,0,0,2,13,2,16,1,16,3,12,1,6,1,114,
+    206,0,0,0,41,51,114,3,0,0,0,114,119,0,0,0,
+    114,12,0,0,0,114,16,0,0,0,114,17,0,0,0,114,
+    59,0,0,0,114,41,0,0,0,114,48,0,0,0,114,31,
+    0,0,0,114,32,0,0,0,114,53,0,0,0,114,54,0,
+    0,0,114,56,0,0,0,114,63,0,0,0,114,65,0,0,
+    0,114,75,0,0,0,114,81,0,0,0,114,84,0,0,0,
+    114,90,0,0,0,114,101,0,0,0,114,102,0,0,0,114,
+    106,0,0,0,114,85,0,0,0,218,6,111,98,106,101,99,
+    116,90,9,95,80,79,80,85,76,65,84,69,114,132,0,0,
+    0,114,137,0,0,0,114,144,0,0,0,114,97,0,0,0,
+    114,86,0,0,0,114,148,0,0,0,114,149,0,0,0,114,
+    87,0,0,0,114,150,0,0,0,114,160,0,0,0,114,165,
+    0,0,0,114,171,0,0,0,114,173,0,0,0,114,176,0,
+    0,0,114,181,0,0,0,114,191,0,0,0,114,182,0,0,
+    0,114,184,0,0,0,114,185,0,0,0,114,186,0,0,0,
+    114,194,0,0,0,114,196,0,0,0,114,199,0,0,0,114,
+    200,0,0,0,114,204,0,0,0,114,206,0,0,0,114,10,
+    0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+    0,0,218,8,60,109,111,100,117,108,101,62,8,0,0,0,
+    115,96,0,0,0,6,17,6,2,12,8,12,4,19,20,6,
+    2,6,3,22,4,19,68,19,21,19,19,12,19,12,19,12,
+    11,18,8,12,11,12,12,12,16,12,36,19,27,19,101,24,
+    26,9,3,18,45,18,60,12,18,12,17,12,25,12,29,12,
+    23,12,16,19,73,19,77,19,13,12,9,12,9,15,40,12,
+    17,6,1,10,2,12,27,12,6,18,24,12,32,12,15,24,
+    35,12,7,12,47,
 };
diff --git a/Python/peephole.c b/Python/peephole.c
index 59ad3b7..4e657fa 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -344,7 +344,7 @@
    appear before MAKE_FUNCTION; in this case both opcodes are skipped.
    EXTENDED_ARG preceding any other opcode causes the optimizer to bail.
 
-   Optimizations are restricted to simple transformations occuring within a
+   Optimizations are restricted to simple transformations occurring within a
    single basic block.  All transformations keep the code size the same or
    smaller.  For those that reduce size, the gaps are initially filled with
    NOPs.  Later those NOPs are removed and the jump addresses retargeted in
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index c03b073..7fbf06e 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1425,7 +1425,7 @@
 
 #endif /* USE_STACKCHECK */
 
-/* Deprecated C API functions still provided for binary compatiblity */
+/* Deprecated C API functions still provided for binary compatibility */
 
 #undef PyParser_SimpleParseFile
 PyAPI_FUNC(node *)
diff --git a/configure b/configure
index 1823d14..3216ad7 100755
--- a/configure
+++ b/configure
@@ -3496,7 +3496,7 @@
 #
 # SGI compilers allow the specification of the both the ABI and the
 # ISA on the command line.  Depending on the values of these switches,
-# different and often incompatable code will be generated.
+# different and often incompatible code will be generated.
 #
 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
 # thus supply support for various ABI/ISA combinations.  The MACHDEP
diff --git a/configure.ac b/configure.ac
index 44811d9..4dc20d6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -542,7 +542,7 @@
 #
 # SGI compilers allow the specification of the both the ABI and the
 # ISA on the command line.  Depending on the values of these switches,
-# different and often incompatable code will be generated.
+# different and often incompatible code will be generated.
 #
 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
 # thus supply support for various ABI/ISA combinations.  The MACHDEP