diff --git a/Doc/library/aetypes.rst b/Doc/library/aetypes.rst
index 1e1067f..90cc4ae 100644
--- a/Doc/library/aetypes.rst
+++ b/Doc/library/aetypes.rst
@@ -19,7 +19,7 @@
 classes. Packing and unpacking instances of these classes is handled
 automatically by :mod:`aepack`.
 
-An object specifier is essentially an address of an object implemented in a
+An object specifier is essentially an address of an object implemented in an
 Apple Event server. An Apple Event specifier is used as the direct object for an
 Apple Event or as the argument of an optional parameter. The :mod:`aetypes`
 module contains the base classes for OSA classes and properties, which are used
diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst
index b580948..bb0da9d 100644
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -270,7 +270,7 @@
 
 The following attributes contain values relating to the most recent error
 encountered by an :class:`xmlparser` object, and will only have correct values
-once a call to :meth:`Parse` or :meth:`ParseFile` has raised a
+once a call to :meth:`Parse` or :meth:`ParseFile` has raised an
 :exc:`xml.parsers.expat.ExpatError` exception.
 
 
diff --git a/Doc/library/simplexmlrpcserver.rst b/Doc/library/simplexmlrpcserver.rst
index 8f805e9..c8aa469 100644
--- a/Doc/library/simplexmlrpcserver.rst
+++ b/Doc/library/simplexmlrpcserver.rst
@@ -273,7 +273,7 @@
 
 .. method:: CGIXMLRPCRequestHandler.handle_request([request_text = None])
 
-   Handle a XML-RPC request. If *request_text* is given, it  should be the POST
+   Handle an XML-RPC request. If *request_text* is given, it should be the POST
    data provided by the HTTP server,  otherwise the contents of stdin will be used.
 
 Example::
diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst
index b6d46fc..a1d7951 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -100,7 +100,7 @@
 
 When you are finished with a DOM tree, you may optionally call the
 :meth:`unlink` method to encourage early cleanup of the now-unneeded
-objects.  :meth:`unlink` is a :mod:`xml.dom.minidom`\ -specific
+objects.  :meth:`unlink` is an :mod:`xml.dom.minidom`\ -specific
 extension to the DOM API that renders the node and its descendants are
 essentially useless.  Otherwise, Python's garbage collector will
 eventually take care of the objects in the tree.
diff --git a/Lib/SimpleXMLRPCServer.py b/Lib/SimpleXMLRPCServer.py
index fcc3d2e..5324e92 100644
--- a/Lib/SimpleXMLRPCServer.py
+++ b/Lib/SimpleXMLRPCServer.py
@@ -188,7 +188,7 @@
         are considered private and will not be called by
         SimpleXMLRPCServer.
 
-        If a registered function matches a XML-RPC request, then it
+        If a registered function matches an XML-RPC request, then it
         will be called instead of the registered instance.
 
         If the optional allow_dotted_names argument is true and the
diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py
index 3293c44..34bc71e 100644
--- a/Lib/distutils/tests/test_build_ext.py
+++ b/Lib/distutils/tests/test_build_ext.py
@@ -215,7 +215,7 @@
         self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
 
         # second element of each tuple in 'ext_modules'
-        # must be a ary (build info)
+        # must be a dictionary (build info)
         exts = [('foo.bar', '')]
         self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
 
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 3f08bb3..c04c24c 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -185,7 +185,7 @@
   Changes are written to HOME/.idlerc/config-extensions.cfg.
   Original patch by Tal Einat.
 
-- Issue #16233: A module browser (File : Class Browser, Alt+C) requires a
+- Issue #16233: A module browser (File : Class Browser, Alt+C) requires an
   editor window with a filename.  When Class Browser is requested otherwise,
   from a shell, output window, or 'Untitled' editor, Idle no longer displays
   an error box.  It now pops up an  Open Module box (Alt+M). If a valid name
diff --git a/Lib/plat-mac/findertools.py b/Lib/plat-mac/findertools.py
index d0c74a9..c6824bc 100644
--- a/Lib/plat-mac/findertools.py
+++ b/Lib/plat-mac/findertools.py
@@ -580,7 +580,7 @@
 
 def mountvolume(volume, server=None, username=None, password=None):
     """mount a volume, local or on a server on AppleTalk.
-    Note: mounting a ASIP server requires a different operation.
+    Note: mounting an ASIP server requires a different operation.
     server is the name of the server where the volume belongs
     username, password belong to a registered user of the volume."""
     finder = _getfinder()
diff --git a/Lib/plat-mac/macresource.py b/Lib/plat-mac/macresource.py
index 3b48d4b..9415e1e 100644
--- a/Lib/plat-mac/macresource.py
+++ b/Lib/plat-mac/macresource.py
@@ -78,7 +78,7 @@
     """Open a resource file given by pathname, possibly decoding an
     AppleSingle file"""
     # No resource fork. We may be on OSX, and this may be either
-    # a data-fork based resource file or a AppleSingle file
+    # a data-fork based resource file or an AppleSingle file
     # from the CVS repository.
     try:
         refno = Res.FSOpenResourceFile(pathname, u'', 1)
@@ -97,7 +97,7 @@
     If the pathname given already refers to such a file simply return it,
     otherwise first decode it."""
     # No resource fork. We may be on OSX, and this may be either
-    # a data-fork based resource file or a AppleSingle file
+    # a data-fork based resource file or an AppleSingle file
     # from the CVS repository.
     try:
         refno = Res.FSOpenResourceFile(pathname, u'', 1)
diff --git a/Lib/sqlite3/test/regression.py b/Lib/sqlite3/test/regression.py
index 8b0a715..6ac4016 100644
--- a/Lib/sqlite3/test/regression.py
+++ b/Lib/sqlite3/test/regression.py
@@ -118,7 +118,7 @@
 
     def CheckUnicodeConnect(self):
         """
-        With pysqlite 2.4.0 you needed to use a string or a APSW connection
+        With pysqlite 2.4.0 you needed to use a string or an APSW connection
         object for opening database connections.
 
         Formerly, both bytestrings and unicode strings used to work.
diff --git a/Lib/test/_mock_backport.py b/Lib/test/_mock_backport.py
index f85becb..6081452 100644
--- a/Lib/test/_mock_backport.py
+++ b/Lib/test/_mock_backport.py
@@ -740,7 +740,7 @@
 
     def _call_matcher(self, _call):
         """
-        Given a call (or simply a (args, kwargs) tuple), return a
+        Given a call (or simply an (args, kwargs) tuple), return a
         comparison key suitable for matching with other calls.
         This is a best effort method which relies on the spec's signature,
         if available, or falls back on the arguments themselves.
diff --git a/Lib/xml/dom/expatbuilder.py b/Lib/xml/dom/expatbuilder.py
index 4fba875..c7033f4 100644
--- a/Lib/xml/dom/expatbuilder.py
+++ b/Lib/xml/dom/expatbuilder.py
@@ -10,7 +10,7 @@
 # minidom DOM and can't be used with other DOM implementations.  This
 # is due, in part, to a lack of appropriate methods in the DOM (there is
 # no way to create Entity and Notation nodes via the DOM Level 2
-# interface), and for performance.  The later is the cause of some fairly
+# interface), and for performance.  The latter is the cause of some fairly
 # cryptic code.
 #
 # Performance hacks:
diff --git a/Misc/NEWS b/Misc/NEWS
index fbb7603..023f46a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,7 +12,7 @@
 
 - Issue #23908: os functions, open() and the io.FileIO constructor now reject
   unicode paths with embedded null character on Windows instead of silently
-  truncate them.
+  truncating them.
 
 Library
 -------
@@ -1354,7 +1354,7 @@
   Sergey Bobrov.
 
 - Issue #21147: sqlite3 now raises an exception if the request contains a null
-  character instead of truncate it.  Based on patch by Victor Stinner.
+  character instead of truncating it.  Based on patch by Victor Stinner.
 
 - Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
   empty string or tuple argument.
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 6b0e3c6..5bfa644 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -116,7 +116,7 @@
             return -1;
         }
     } else {
-        /* Create a pysqlite connection from a APSW connection */
+        /* Create a pysqlite connection from an APSW connection */
         class_attr = PyObject_GetAttrString(database, "__class__");
         if (class_attr) {
             class_attr_str = PyObject_Str(class_attr);
diff --git a/Modules/_sqlite/connection.h b/Modules/_sqlite/connection.h
index ecc8d2b..f9a98e5 100644
--- a/Modules/_sqlite/connection.h
+++ b/Modules/_sqlite/connection.h
@@ -99,7 +99,7 @@
     /* a dictionary of registered collation name => collation callable mappings */
     PyObject* collations;
 
-    /* if our connection was created from a APSW connection, we keep a
+    /* if our connection was created from an APSW connection, we keep a
      * reference to the APSW connection around and get rid of it in our
      * destructor */
     PyObject* apsw_connection;
