diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 54b99e0..8b94929 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -610,7 +610,7 @@
    :class:`~collections.namedtuple` of the form `(firstiter, finalizer)`,
    where *firstiter* and *finalizer* are expected to be either ``None`` or
    functions which take an :term:`asynchronous generator iterator` as an
-   argument, and are used to schedule finalization of an asychronous
+   argument, and are used to schedule finalization of an asynchronous
    generator by an event loop.
 
    .. versionadded:: 3.6
diff --git a/Include/abstract.h b/Include/abstract.h
index fe089dc..8969019 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -170,7 +170,7 @@
    format to a Python dictionary ("kwargs" dict).
 
    The type of kwnames keys is not checked. The final function getting
-   arguments is reponsible to check if all keys are strings, for example using
+   arguments is responsible to check if all keys are strings, for example using
    PyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().
 
    Duplicate keys are merged using the last value. If duplicate keys must raise
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index bb91568..5ca1f87 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -1227,7 +1227,7 @@
 /* Encodes a Unicode object and returns the result as Python
    object.
 
-   This API is DEPRECATED.  It is superceeded by PyUnicode_AsEncodedString()
+   This API is DEPRECATED.  It is superseded by PyUnicode_AsEncodedString()
    since all standard encodings (except rot13) encode str to bytes.
    Use PyCodec_Encode() for encoding with rot13 and non-standard codecs
    that encode form str to non-bytes. */
diff --git a/Lib/enum.py b/Lib/enum.py
index 73dd613..6d90f7d 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -840,7 +840,7 @@
     not_covered = value
     negative = value < 0
     # issue29167: wrap accesses to _value2member_map_ in a list to avoid race
-    #             conditions between iterating over it and having more psuedo-
+    #             conditions between iterating over it and having more pseudo-
     #             members added to it
     if negative:
         # only check for named flags
diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index 6d8a03b..f7a6b73 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -1216,7 +1216,7 @@
         which are boolean, and can be toggled with a True/False button.
 
         Methods:
-            load_extentions:
+            load_extensions:
             extension_selected: Handle selection from list.
             create_extension_frame: Hold widgets for one extension.
             set_extension_value: Set in userCfg['extensions'].
diff --git a/Lib/test/decimaltestdata/ddDivide.decTest b/Lib/test/decimaltestdata/ddDivide.decTest
index 5531d0e..5b2651b 100644
--- a/Lib/test/decimaltestdata/ddDivide.decTest
+++ b/Lib/test/decimaltestdata/ddDivide.decTest
@@ -579,7 +579,7 @@
 dddiv1057 divide -1e-277  1e+311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
 dddiv1058 divide -1e-277 -1e+311 ->  0E-398 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 dddiv1060 divide 1e-291 1e+101 -> 1E-392 Subnormal
 dddiv1061 divide 1e-291 1e+102 -> 1E-393 Subnormal
 dddiv1062 divide 1e-291 1e+103 -> 1E-394 Subnormal
diff --git a/Lib/test/decimaltestdata/ddDivideInt.decTest b/Lib/test/decimaltestdata/ddDivideInt.decTest
index 1555b42..342d130 100644
--- a/Lib/test/decimaltestdata/ddDivideInt.decTest
+++ b/Lib/test/decimaltestdata/ddDivideInt.decTest
@@ -248,7 +248,7 @@
 dddvi1057 divideint -1e-277  1e+311 -> -0
 dddvi1058 divideint -1e-277 -1e+311 ->  0
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 dddvi1060 divideint 1e-291 1e+101 -> 0
 dddvi1061 divideint 1e-291 1e+102 -> 0
 dddvi1062 divideint 1e-291 1e+103 -> 0
diff --git a/Lib/test/decimaltestdata/ddFMA.decTest b/Lib/test/decimaltestdata/ddFMA.decTest
index f0acfc7..9094fc0 100644
--- a/Lib/test/decimaltestdata/ddFMA.decTest
+++ b/Lib/test/decimaltestdata/ddFMA.decTest
@@ -26,7 +26,7 @@
 clamp:       1
 rounding:    half_even
 
--- These tests comprese three parts:
+-- These tests comprise three parts:
 --   1. Sanity checks and other three-operand tests (especially those
 --      where the fused operation makes a difference)
 --   2. Multiply tests (third operand is neutral zero [0E+emax])
@@ -458,7 +458,7 @@
 ddfma2757 fma  -1e-277  1e-311   0e+384  ->  -0E-398 Underflow Subnormal Inexact Rounded Clamped
 ddfma2758 fma  -1e-277 -1e-311   0e+384  ->   0E-398 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 ddfma2760 fma  1e-291 1e-101   0e+384  ->  1E-392 Subnormal
 ddfma2761 fma  1e-291 1e-102   0e+384  ->  1E-393 Subnormal
 ddfma2762 fma  1e-291 1e-103   0e+384  ->  1E-394 Subnormal
diff --git a/Lib/test/decimaltestdata/ddMultiply.decTest b/Lib/test/decimaltestdata/ddMultiply.decTest
index 45a381d..b7342ac 100644
--- a/Lib/test/decimaltestdata/ddMultiply.decTest
+++ b/Lib/test/decimaltestdata/ddMultiply.decTest
@@ -347,7 +347,7 @@
 ddmul757 multiply -1e-277  1e-311 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped
 ddmul758 multiply -1e-277 -1e-311 ->  0E-398 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 ddmul760 multiply 1e-291 1e-101 -> 1E-392 Subnormal
 ddmul761 multiply 1e-291 1e-102 -> 1E-393 Subnormal
 ddmul762 multiply 1e-291 1e-103 -> 1E-394 Subnormal
diff --git a/Lib/test/decimaltestdata/divide.decTest b/Lib/test/decimaltestdata/divide.decTest
index efbb5ba..a51aa5d 100644
--- a/Lib/test/decimaltestdata/divide.decTest
+++ b/Lib/test/decimaltestdata/divide.decTest
@@ -759,7 +759,7 @@
 
 -- overflow and underflow (additional edge tests in multiply.decTest)
 -- 'subnormal' results now possible (all hard underflow or overflow in
--- base arithemtic)
+-- base arithmetic)
 divx960 divide 1e-600000000 1e+400000001 -> 1E-1000000001 Subnormal
 divx961 divide 1e-600000000 1e+400000002 -> 1E-1000000002 Subnormal
 divx962 divide 1e-600000000 1e+400000003 -> 1E-1000000003 Subnormal
diff --git a/Lib/test/decimaltestdata/dqDivide.decTest b/Lib/test/decimaltestdata/dqDivide.decTest
index 3cf60c6..1d623ff 100644
--- a/Lib/test/decimaltestdata/dqDivide.decTest
+++ b/Lib/test/decimaltestdata/dqDivide.decTest
@@ -580,7 +580,7 @@
 dqdiv1757 divide -1e-4277  1e+3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
 dqdiv1758 divide -1e-4277 -1e+3311 ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 dqdiv1760 divide 1e-6069 1e+101 -> 1E-6170 Subnormal
 dqdiv1761 divide 1e-6069 1e+102 -> 1E-6171 Subnormal
 dqdiv1762 divide 1e-6069 1e+103 -> 1E-6172 Subnormal
diff --git a/Lib/test/decimaltestdata/dqDivideInt.decTest b/Lib/test/decimaltestdata/dqDivideInt.decTest
index 3fec6db..ed74fe6 100644
--- a/Lib/test/decimaltestdata/dqDivideInt.decTest
+++ b/Lib/test/decimaltestdata/dqDivideInt.decTest
@@ -249,7 +249,7 @@
 dqdvi1057 divideint -1e-277  1e+311 -> -0
 dqdvi1058 divideint -1e-277 -1e+311 ->  0
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 dqdvi1060 divideint 1e-291 1e+101 -> 0
 dqdvi1061 divideint 1e-291 1e+102 -> 0
 dqdvi1062 divideint 1e-291 1e+103 -> 0
diff --git a/Lib/test/decimaltestdata/dqFMA.decTest b/Lib/test/decimaltestdata/dqFMA.decTest
index 2353f2f..caa2402 100644
--- a/Lib/test/decimaltestdata/dqFMA.decTest
+++ b/Lib/test/decimaltestdata/dqFMA.decTest
@@ -26,7 +26,7 @@
 minExponent: -6143
 rounding:    half_even
 
--- These tests comprese three parts:
+-- These tests comprise three parts:
 --   1. Sanity checks and other three-operand tests (especially those
 --      where the fused operation makes a difference)
 --   2. Multiply tests (third operand is neutral zero [0E+emax])
@@ -476,7 +476,7 @@
 dqfma2757 fma  -1e-4277  1e-3311   0e+6144  -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
 dqfma2758 fma  -1e-4277 -1e-3311   0e+6144  ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 dqfma2760 fma  1e-6069 1e-101   0e+6144  -> 1E-6170 Subnormal
 dqfma2761 fma  1e-6069 1e-102   0e+6144  -> 1E-6171 Subnormal
 dqfma2762 fma  1e-6069 1e-103   0e+6144  -> 1E-6172 Subnormal
diff --git a/Lib/test/decimaltestdata/dqMultiply.decTest b/Lib/test/decimaltestdata/dqMultiply.decTest
index 676c1f5..f9df480 100644
--- a/Lib/test/decimaltestdata/dqMultiply.decTest
+++ b/Lib/test/decimaltestdata/dqMultiply.decTest
@@ -355,7 +355,7 @@
 dqmul757 multiply -1e-4277  1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
 dqmul758 multiply -1e-4277 -1e-3311 ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 dqmul760 multiply 1e-6069 1e-101 -> 1E-6170 Subnormal
 dqmul761 multiply 1e-6069 1e-102 -> 1E-6171 Subnormal
 dqmul762 multiply 1e-6069 1e-103 -> 1E-6172 Subnormal
diff --git a/Lib/test/decimaltestdata/fma.decTest b/Lib/test/decimaltestdata/fma.decTest
index 0b188fa..46672af 100644
--- a/Lib/test/decimaltestdata/fma.decTest
+++ b/Lib/test/decimaltestdata/fma.decTest
@@ -25,7 +25,7 @@
 maxExponent: 384
 minexponent: -383
 
--- These tests comprese three parts:
+-- These tests comprise three parts:
 --   1. Sanity checks and other three-operand tests (especially those
 --      where the fused operation makes a difference)
 --   2. Multiply tests (third operand is neutral zero [0E+emax])
@@ -610,7 +610,7 @@
 fmax2757 fma -1e-777777  1e-411111  0E+999999  -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped
 fmax2758 fma -1e-777777 -1e-411111  0E+999999  ->  0E-1000007 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 precision: 9
 fmax2760 fma 1e-600000 1e-400001  0E+999999  -> 1E-1000001 Subnormal
 fmax2761 fma 1e-600000 1e-400002  0E+999999  -> 1E-1000002 Subnormal
diff --git a/Lib/test/decimaltestdata/multiply.decTest b/Lib/test/decimaltestdata/multiply.decTest
index e8bd77a..f291538 100644
--- a/Lib/test/decimaltestdata/multiply.decTest
+++ b/Lib/test/decimaltestdata/multiply.decTest
@@ -533,7 +533,7 @@
 mulx757 multiply -1e-777777777  1e-411111111 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
 mulx758 multiply -1e-777777777 -1e-411111111 ->  0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
 
--- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
+-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
 precision: 9
 mulx760 multiply 1e-600000000 1e-400000001 -> 1E-1000000001 Subnormal
 mulx761 multiply 1e-600000000 1e-400000002 -> 1E-1000000002 Subnormal
diff --git a/Lib/test/test_binop.py b/Lib/test/test_binop.py
index 4f5b8a8..299af09 100644
--- a/Lib/test/test_binop.py
+++ b/Lib/test/test_binop.py
@@ -22,7 +22,7 @@
     return 0
 
 def isRat(x):
-    """Test wheter an object is an instance of the Rat class."""
+    """Test whether an object is an instance of the Rat class."""
     return isinstance(x, Rat)
 
 class Rat(object):
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index 8eede7a..3acfb92 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -1253,7 +1253,7 @@
         self.assertEqual(mock_int.__hash__.call_count, 2)
         self.assertEqual(f.cache_info(), (1, 1, 1, 1))
 
-        # Cache eviction: No use as an argument gives no additonal call
+        # Cache eviction: No use as an argument gives no additional call
         self.assertEqual(f(6, 2), 20)
         self.assertEqual(mock_int.__hash__.call_count, 2)
         self.assertEqual(f.cache_info(), (1, 2, 1, 1))
diff --git a/Lib/test/test_importlib/import_/test___package__.py b/Lib/test/test_importlib/import_/test___package__.py
index b26634e..761b256 100644
--- a/Lib/test/test_importlib/import_/test___package__.py
+++ b/Lib/test/test_importlib/import_/test___package__.py
@@ -11,7 +11,7 @@
 
 class Using__package__:
 
-    """Use of __package__ supercedes the use of __name__/__path__ to calculate
+    """Use of __package__ supersedes the use of __name__/__path__ to calculate
     what package a module belongs to. The basic algorithm is [__package__]::
 
       def resolve_name(name, package, level):
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 611692f..234f701 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -1598,19 +1598,19 @@
     def test_execve_invalid_env(self):
         args = [sys.executable, '-c', 'pass']
 
-        # null character in the enviroment variable name
+        # null character in the environment variable name
         newenv = os.environ.copy()
         newenv["FRUIT\0VEGETABLE"] = "cabbage"
         with self.assertRaises(ValueError):
             os.execve(args[0], args, newenv)
 
-        # null character in the enviroment variable value
+        # null character in the environment variable value
         newenv = os.environ.copy()
         newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
         with self.assertRaises(ValueError):
             os.execve(args[0], args, newenv)
 
-        # equal character in the enviroment variable name
+        # equal character in the environment variable name
         newenv = os.environ.copy()
         newenv["FRUIT=ORANGE"] = "lemon"
         with self.assertRaises(ValueError):
@@ -2430,7 +2430,7 @@
     def _test_invalid_env(self, spawn):
         args = [sys.executable, '-c', 'pass']
 
-        # null character in the enviroment variable name
+        # null character in the environment variable name
         newenv = os.environ.copy()
         newenv["FRUIT\0VEGETABLE"] = "cabbage"
         try:
@@ -2440,7 +2440,7 @@
         else:
             self.assertEqual(exitcode, 127)
 
-        # null character in the enviroment variable value
+        # null character in the environment variable value
         newenv = os.environ.copy()
         newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
         try:
@@ -2450,7 +2450,7 @@
         else:
             self.assertEqual(exitcode, 127)
 
-        # equal character in the enviroment variable name
+        # equal character in the environment variable name
         newenv = os.environ.copy()
         newenv["FRUIT=ORANGE"] = "lemon"
         try:
@@ -2460,7 +2460,7 @@
         else:
             self.assertEqual(exitcode, 127)
 
-        # equal character in the enviroment variable value
+        # equal character in the environment variable value
         filename = support.TESTFN
         self.addCleanup(support.unlink, filename)
         with open(filename, "w") as fp:
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index a99976a..d152826 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -668,25 +668,25 @@
             subprocess.Popen([sys.executable, "-c", "pass#\0"])
 
     def test_invalid_env(self):
-        # null character in the enviroment variable name
+        # null character in the environment variable name
         newenv = os.environ.copy()
         newenv["FRUIT\0VEGETABLE"] = "cabbage"
         with self.assertRaises(ValueError):
             subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
 
-        # null character in the enviroment variable value
+        # null character in the environment variable value
         newenv = os.environ.copy()
         newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
         with self.assertRaises(ValueError):
             subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
 
-        # equal character in the enviroment variable name
+        # equal character in the environment variable name
         newenv = os.environ.copy()
         newenv["FRUIT=ORANGE"] = "lemon"
         with self.assertRaises(ValueError):
             subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
 
-        # equal character in the enviroment variable value
+        # equal character in the environment variable value
         newenv = os.environ.copy()
         newenv["FRUIT"] = "orange=lemon"
         with subprocess.Popen([sys.executable, "-c",
diff --git a/Lib/test/test_warnings/__init__.py b/Lib/test/test_warnings/__init__.py
index 3481e9c..69623c4 100644
--- a/Lib/test/test_warnings/__init__.py
+++ b/Lib/test/test_warnings/__init__.py
@@ -950,7 +950,7 @@
             self.assertIs(wmod.filters, orig_filters)
 
     def test_record_override_showwarning_before(self):
-        # Issue #28835: If warnings.showwarning() was overriden, make sure
+        # Issue #28835: If warnings.showwarning() was overridden, make sure
         # that catch_warnings(record=True) overrides it again.
         text = "This is a warning"
         wmod = self.module
diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py
index 24569b5..7993db3 100644
--- a/Lib/unittest/test/testmock/testmagicmethods.py
+++ b/Lib/unittest/test/testmock/testmagicmethods.py
@@ -255,7 +255,7 @@
 
         for entry in _magics:
             self.assertTrue(hasattr(mock, entry))
-        self.assertFalse(hasattr(mock, '__imaginery__'))
+        self.assertFalse(hasattr(mock, '__imaginary__'))
 
 
     def test_magic_mock_equality(self):
diff --git a/Misc/HISTORY b/Misc/HISTORY
index 4ce431f..4872cfc 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -1597,7 +1597,7 @@
   negative values the same way for keyword arguments as it does for
   positional arguments.
 
-- Issue #21812: turtle.shapetransform did not tranform the turtle on the
+- Issue #21812: turtle.shapetransform did not transform the turtle on the
   first call.  (Issue identified and fixed by Lita Cho.)
 
 - Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method
@@ -3245,7 +3245,7 @@
 
 - Issue #19466: Clear the frames of daemon threads earlier during the
   Python shutdown to call objects destructors. So "unclosed file" resource
-  warnings are now corretly emitted for daemon threads.
+  warnings are now correctly emitted for daemon threads.
 
 - Issue #19514: Deduplicate some _Py_IDENTIFIER declarations.
   Patch by Andrei Dorian Duma.
@@ -3386,7 +3386,7 @@
 - Issue #19448: Add private API to SSL module to lookup ASN.1 objects by OID,
   NID, short name and long name.
 
-- Issue #19282: dbm.open now supports the context management protocol. (Inital
+- Issue #19282: dbm.open now supports the context management protocol. (Initial
   patch by Claudiu Popa)
 
 - Issue #8311: Added support for writing any bytes-like objects in the aifc,
@@ -3481,7 +3481,7 @@
 - Issue #19227: Remove pthread_atfork() handler. The handler was added to
   solve #18747 but has caused issues.
 
-- Issue #19420: Fix reference leak in module initalization code of
+- Issue #19420: Fix reference leak in module initialization code of
   _hashopenssl.c
 
 - Issue #19329: Optimized compiling charsets in regular expressions.
@@ -4175,7 +4175,7 @@
 
 - Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes
   inside subjectAltName correctly. Formerly the module has used OpenSSL's
-  GENERAL_NAME_print() function to get the string represention of ASN.1
+  GENERAL_NAME_print() function to get the string representation of ASN.1
   strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and
   ``uniformResourceIdentifier`` (URI).
 
@@ -4268,7 +4268,7 @@
 Documentation
 -------------
 
-- Issue #18743: Fix references to non-existant "StringIO" module.
+- Issue #18743: Fix references to non-existent "StringIO" module.
 
 - Issue #18783: Removed existing mentions of Python long type in docstrings,
   error messages and comments.
@@ -5022,7 +5022,7 @@
   Thomas Barlow.
 
 - Issue #17358: Modules loaded by imp.load_source() and load_compiled() (and by
-  extention load_module()) now have a better chance of working when reloaded.
+  extension load_module()) now have a better chance of working when reloaded.
 
 - Issue #17804: New function ``struct.iter_unpack`` allows for streaming
   struct unpacking.
@@ -5135,8 +5135,8 @@
   error message has been removed.  Patch by Ram Rachum.
 
 - Issue #18080: When building a C extension module on OS X, if the compiler
-  is overriden with the CC environment variable, use the new compiler as
-  the default for linking if LDSHARED is not also overriden.  This restores
+  is overridden with the CC environment variable, use the new compiler as
+  the default for linking if LDSHARED is not also overridden.  This restores
   Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
 
 - Issue #18113: Fixed a refcount leak in the curses.panel module's
@@ -5207,7 +5207,7 @@
   specifically addresses a stack misalignment issue on x86 and issues on
   some more recent platforms.
 
-- Issue #8862: Fixed curses cleanup when getkey is interrputed by a signal.
+- Issue #8862: Fixed curses cleanup when getkey is interrupted by a signal.
 
 - Issue #17443: imaplib.IMAP4_stream was using the default unbuffered IO
   in subprocess, but the imap code assumes buffered IO.  In Python2 this
@@ -5382,7 +5382,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.
@@ -26790,7 +26790,7 @@
 
 filecmp - supersedes the old cmp.py and dircmp.py modules.
 
-tabnanny - check Python sources for tab-width dependance.  (Moved from
+tabnanny - check Python sources for tab-width dependence.  (Moved from
 Tools/scripts/.)
 
 urllib2 - new and improved but incompatible version of urllib (still
diff --git a/Misc/NEWS b/Misc/NEWS
index 38449c0..1ef2892 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -454,7 +454,7 @@
   Rodola'.
 
 - bpo-30595: multiprocessing.Queue.get() with a timeout now polls its reader in
-  non-blocking mode if it succeeded to aquire the lock but the acquire took
+  non-blocking mode if it succeeded to acquire the lock but the acquire took
   longer than the timeout.
 
 - bpo-28556: Updates to typing module: Add generic AsyncContextManager, add
@@ -892,7 +892,7 @@
   re.sub() replacement templates regular expressions now are errors.
 
 - Issue #28835: Fix a regression introduced in warnings.catch_warnings():
-  call warnings.showwarning() if it was overriden inside the context manager.
+  call warnings.showwarning() if it was overridden inside the context manager.
 
 - Issue #27172: To assist with upgrades from 2.7, the previously documented
   deprecation of ``inspect.getfullargspec()`` has been reversed. This decision
@@ -1680,7 +1680,7 @@
   again.  But they still are deprecated and will be disabled in 3.7.
 
 - Issue #28835: Fix a regression introduced in warnings.catch_warnings():
-  call warnings.showwarning() if it was overriden inside the context manager.
+  call warnings.showwarning() if it was overridden inside the context manager.
 
 - Issue #27172: To assist with upgrades from 2.7, the previously documented
   deprecation of ``inspect.getfullargspec()`` has been reversed. This decision
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index fc953af..fe39567 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -3670,7 +3670,7 @@
             */
             if (ob == NULL)
                 goto error;
-            /* The .from_param call that will ocurr later will pass this
+            /* The .from_param call that will occur later will pass this
                as a byref parameter. */
             PyTuple_SET_ITEM(callargs, i, ob);
             *poutmask |= (1 << i); /* mark as out arg */
diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c
index bb77552..26bfa0b 100644
--- a/Modules/_lzmamodule.c
+++ b/Modules/_lzmamodule.c
@@ -824,7 +824,7 @@
 "be FORMAT_XZ (default), FORMAT_ALONE, or FORMAT_RAW.\n"
 "\n"
 "check specifies the integrity check to use. For FORMAT_XZ, the default\n"
-"is CHECK_CRC64. FORMAT_ALONE and FORMAT_RAW do not suport integrity\n"
+"is CHECK_CRC64. FORMAT_ALONE and FORMAT_RAW do not support integrity\n"
 "checks; for these formats, check must be omitted, or be CHECK_NONE.\n"
 "\n"
 "The settings used by the compressor can be specified either as a\n"
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 0c6723f..2e5e79a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1038,7 +1038,7 @@
     }
     else if (is_buffer) {
         /* XXX Replace PyObject_CheckBuffer with PyBytes_Check in other code
-           after removing suport of non-bytes buffer objects. */
+           after removing support of non-bytes buffer objects. */
         if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
             "%s%s%s should be %s, not %.200s",
             path->function_name ? path->function_name : "",
diff --git a/Python/ceval.c b/Python/ceval.c
index dd90e18..be5cda5 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3313,7 +3313,7 @@
                                     ^- (-oparg-1)
                              ^- (-oparg-2)
 
-                   `callable` will be POPed by call_funtion.
+                   `callable` will be POPed by call_function.
                    NULL will will be POPed manually later.
                 */
                 res = call_function(&sp, oparg, NULL);
