Issue #26778: Fixed "a/an/and" typos in code comment and documentation.
diff --git a/Modules/_csv.c b/Modules/_csv.c
index e78ac95..af46658 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -717,7 +717,7 @@
         break;
 
     case QUOTE_IN_QUOTED_FIELD:
-        /* doublequote - seen a quote in an quoted field */
+        /* doublequote - seen a quote in a quoted field */
         if (dialect->quoting != QUOTE_NONE &&
             c == dialect->quotechar) {
             /* save "" as " */
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 65c55cb..fe79b08 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -3899,7 +3899,7 @@
             return NULL;
         }
         /* there should be more checks? No, in Python */
-        /* First arg is an pointer to an interface instance */
+        /* First arg is a pointer to an interface instance */
         if (!this->b_ptr || *(void **)this->b_ptr == NULL) {
             PyErr_SetString(PyExc_ValueError,
                             "NULL COM pointer access");
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index cab7ca8..88f4f23 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -3444,7 +3444,7 @@
 
 /* s contains x bytes of a little-endian integer.  Return its value as a
  * C int.  Obscure:  when x is 1 or 2, this is an unsigned little-endian
- * int, but when x is 4 it's a signed one.  This is an historical source
+ * int, but when x is 4 it's a signed one.  This is a historical source
  * of x-platform bugs.
  */
 static long