Fix spelling (inital), grammar (may translates) in documentation, comments
diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst
index b714d0f..486c18d 100644
--- a/Doc/library/tempfile.rst
+++ b/Doc/library/tempfile.rst
@@ -256,7 +256,7 @@
    module.
 
    If ``tempdir`` is unset or ``None`` at any call to any of the above
-   functions except :func:`gettempprefix` it is initalized following the
+   functions except :func:`gettempprefix` it is initialized following the
    algorithm described in :func:`gettempdir`.
 
 .. _tempfile-examples:
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index db2da1b..a5ce2ca 100644
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -550,7 +550,7 @@
    or passed to an external program (i.e. the ``-accept`` argument to
    openssl's s_server mode).  Always prefer :func:`bind_port` over
    :func:`find_unused_port` where possible.  Using a hard coded port is
-   discouraged since it can makes multiple instances of the test impossible to
+   discouraged since it can make multiple instances of the test impossible to
    run simultaneously, which is a problem for buildbots.
 
 
diff --git a/Doc/whatsnew/2.2.rst b/Doc/whatsnew/2.2.rst
index 75e176c..38751ea 100644
--- a/Doc/whatsnew/2.2.rst
+++ b/Doc/whatsnew/2.2.rst
@@ -758,7 +758,7 @@
   operators.
 
 * Python 2.2 supports some command-line arguments for testing whether code will
-  works with the changed division semantics.  Running python with :option:`-Q
+  work with the changed division semantics.  Running python with :option:`-Q
   warn` will cause a warning to be issued whenever division is applied to two
   integers.  You can use this to find code that's affected by the change and fix
   it.  By default, Python 2.2 will simply perform classic division without a
diff --git a/Lib/gzip.py b/Lib/gzip.py
index 3a2b322..da4479e 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -133,7 +133,7 @@
         a file object.
 
         When fileobj is not None, the filename argument is only used to be
-        included in the gzip file header, which may includes the original
+        included in the gzip file header, which may include the original
         filename of the uncompressed file.  It defaults to the filename of
         fileobj, if discernible; otherwise, it defaults to the empty string,
         and in this case the original filename is not included in the header.
diff --git a/Lib/optparse.py b/Lib/optparse.py
index 5bc9051..74b3b36 100644
--- a/Lib/optparse.py
+++ b/Lib/optparse.py
@@ -900,7 +900,7 @@
       _short_opt : { string : Option }
         dictionary mapping short option strings, eg. "-f" or "-X",
         to the Option instances that implement them.  If an Option
-        has multiple short option strings, it will appears in this
+        has multiple short option strings, it will appear in this
         dictionary multiple times. [1]
       _long_opt : { string : Option }
         dictionary mapping long option strings, eg. "--file" or
diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py
index f65e361..da89a9a 100644
--- a/Lib/test/test_tracemalloc.py
+++ b/Lib/test/test_tracemalloc.py
@@ -253,7 +253,7 @@
         snapshot.dump(support.TESTFN)
         self.addCleanup(support.unlink, support.TESTFN)
 
-        # load() should recreates the attribute
+        # load() should recreate the attribute
         snapshot2 = tracemalloc.Snapshot.load(support.TESTFN)
         self.assertEqual(snapshot2.test_attr, "new")
 
diff --git a/Misc/HISTORY b/Misc/HISTORY
index 7857f6f..603b17a 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -23743,7 +23743,7 @@
 - Changed the checks made in Py_Initialize() and Py_Finalize().  It is
 now legal to call these more than once.  The first call to
 Py_Initialize() initializes, the first call to Py_Finalize()
-finalizes.  There's also a new API, Py_IsInitalized() which checks
+finalizes.  There's also a new API, Py_IsInitialized() which checks
 whether we are already initialized (in case you want to leave things
 as they were).
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 0cb29ad..16fe26c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -5238,8 +5238,8 @@
 - 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
-  patch by Claudiu Popa)
+- 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,
   sunau, and wave modules.
@@ -5333,7 +5333,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.
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c
index 73018a5..06b4144 100644
--- a/Modules/_io/stringio.c
+++ b/Modules/_io/stringio.c
@@ -913,8 +913,8 @@
     Py_DECREF(initarg);
 
     /* Restore the buffer state. Even if __init__ did initialize the buffer,
-       we have to initialize it again since __init__ may translates the
-       newlines in the inital_value string. We clearly do not want that
+       we have to initialize it again since __init__ may translate the
+       newlines in the initial_value string. We clearly do not want that
        because the string value in the state tuple has already been translated
        once by __init__. So we do not take any chance and replace object's
        buffer completely. */
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 3a09af5..0a82f3a 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3901,7 +3901,7 @@
                     }
                 }
 
-                /* The list is stored on the class so it may mutates while we
+                /* The list is stored on the class so it may mutate while we
                    iterate over it */
                 if (slotnames_size != Py_SIZE(slotnames)) {
                     PyErr_Format(PyExc_RuntimeError,
@@ -4035,7 +4035,7 @@
     }
 
     /* The object does not have __getnewargs_ex__ and __getnewargs__. This may
-       means __new__ does not takes any arguments on this object, or that the
+       mean __new__ does not takes any arguments on this object, or that the
        object does not implement the reduce protocol for pickling or
        copying. */
     *args = NULL;
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index 39ff097..ab6a8c7 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -17,7 +17,7 @@
 
 
 /*****************************************************
- * Test repeated initalisation and subinterpreters
+ * Test repeated initialisation and subinterpreters
  *****************************************************/
 
 static void print_subinterp(void)