Issue #27125: Remove duplicated words from documentation and comments
diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst
index 29ba8e5..59b283a 100644
--- a/Doc/howto/pyporting.rst
+++ b/Doc/howto/pyporting.rst
@@ -346,7 +346,7 @@
 tox with your continuous integration system so that you never accidentally break
 Python 2 or 3 support.
 
-You may also want to use use the ``-bb`` flag with the Python 3 interpreter to
+You may also want to use the ``-bb`` flag with the Python 3 interpreter to
 trigger an exception when you are comparing bytes to strings. Usually it's
 simply ``False``, but if you made a mistake in your separation of text/binary
 data handling you may be accidentally comparing text and binary data. This flag
diff --git a/Doc/library/tix.rst b/Doc/library/tix.rst
index ca2f07e..ed6948f 100644
--- a/Doc/library/tix.rst
+++ b/Doc/library/tix.rst
@@ -151,7 +151,7 @@
 
    The `LabelEntry
    <http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixLabelEntry.htm>`_
-   widget packages an entry widget and a label into one mega widget. It can be used
+   widget packages an entry widget and a label into one mega widget. It can
    be used to simplify the creation of "entry-form" type of interface.
 
 .. Python Demo of:
diff --git a/Lib/ctypes/macholib/README.ctypes b/Lib/ctypes/macholib/README.ctypes
index 4e10cbe..2866e9f 100644
--- a/Lib/ctypes/macholib/README.ctypes
+++ b/Lib/ctypes/macholib/README.ctypes
@@ -1,4 +1,4 @@
-Files in this directory from from Bob Ippolito's py2app.
+Files in this directory come from Bob Ippolito's py2app.
 
 License: Any components of the py2app suite may be distributed under
 the MIT or PSF open source licenses.
diff --git a/Lib/idlelib/idle_test/README.txt b/Lib/idlelib/idle_test/README.txt
index 632b266..621b3e3 100644
--- a/Lib/idlelib/idle_test/README.txt
+++ b/Lib/idlelib/idle_test/README.txt
@@ -16,7 +16,7 @@
 
 The idle directory, idlelib, has over 60 xyz.py files. The idle_test
 subdirectory should contain a test_xyz.py for each, where 'xyz' is lowercased
-even if xyz.py is not. Here is a possible template, with the blanks after after
+even if xyz.py is not. Here is a possible template, with the blanks after
 '.' and 'as', and before and after '_' to be filled in.
 
 import unittest
diff --git a/Lib/lib-tk/Tix.py b/Lib/lib-tk/Tix.py
index c98b549..3266e01 100644
--- a/Lib/lib-tk/Tix.py
+++ b/Lib/lib-tk/Tix.py
@@ -1052,8 +1052,8 @@
 
 class LabelEntry(TixWidget):
     """LabelEntry - Entry field with label. Packages an entry widget
-    and a label into one mega widget. It can be used be used to simplify
-    the creation of ``entry-form'' type of interface.
+    and a label into one mega widget. It can be used to simplify the creation
+    of ``entry-form'' type of interface.
 
     Subwidgets       Class
     ----------       -----
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 4ae1e41..2387029 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -1755,7 +1755,7 @@
         self.conn, self.connaddr = self.srv.accept()
 
     def clientSetUp(self):
-        # The is a hittable race between serverExplicitReady() and the
+        # There is a hittable race between serverExplicitReady() and the
         # accept() call; sleep a little while to avoid it, otherwise
         # we could get an exception
         time.sleep(0.1)
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 9baf4b3..86208e2 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -55,7 +55,7 @@
 
 from_param(obj)
     - typecheck and convert a Python object into a C function call parameter
-      the result may be an instance of the type, or an integer or tuple
+      The result may be an instance of the type, or an integer or tuple
       (typecode, value[, obj])
 
 instance methods/properties
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 3958a6c..b3ca643 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -784,7 +784,7 @@
     hash *= PySet_GET_SIZE(self) + 1;
     while (set_next(so, &pos, &entry)) {
         /* Work to increase the bit dispersion for closely spaced hash
-           values.  The is important because some use cases have many
+           values.  This is important because some use cases have many
            combinations of a small number of elements with nearby
            hashes so that many distinct combinations collapse to only
            a handful of distinct hash values. */
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index e19df6e..f2db6da 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -35,7 +35,7 @@
    For PyString_FromString(), the parameter `str' points to a null-terminated
    string containing exactly `size' bytes.
 
-   For PyString_FromStringAndSize(), the parameter the parameter `str' is
+   For PyString_FromStringAndSize(), the parameter `str' is
    either NULL or else points to a string containing at least `size' bytes.
    For PyString_FromStringAndSize(), the string in the `str' parameter does
    not have to be null-terminated.  (Therefore it is safe to construct a