diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py
index 532e44e..39b3f74 100644
--- a/Lib/ipaddress.py
+++ b/Lib/ipaddress.py
@@ -723,7 +723,7 @@
             other: An IPv4Network or IPv6Network object of the same type.
 
         Returns:
-            An iterator of the the IPv(4|6)Network objects which is self
+            An iterator of the IPv(4|6)Network objects which is self
             minus other.
 
         Raises:
diff --git a/Lib/test/test_email/test_headerregistry.py b/Lib/test/test_email/test_headerregistry.py
index eba81f2..c0c81c1 100644
--- a/Lib/test/test_email/test_headerregistry.py
+++ b/Lib/test/test_email/test_headerregistry.py
@@ -670,7 +670,7 @@
             ),
 
         # XXX: I would say this one should default to ascii/en for the
-        # "encoded" segment, since the the first segment is not encoded and is
+        # "encoded" segment, since the first segment is not encoded and is
         # in double quotes, making the value a valid non-encoded string.  The
         # old parser decodes this just like the previous case, which may be the
         # better Postel rule, but could equally result in borking headers that
diff --git a/Lib/test/test_isinstance.py b/Lib/test/test_isinstance.py
index dc2d074..7a6730e 100644
--- a/Lib/test/test_isinstance.py
+++ b/Lib/test/test_isinstance.py
@@ -15,7 +15,7 @@
     # (leading to an "undetected error" in the debug build).  Set up is,
     # isinstance(inst, cls) where:
     #
-    # - cls isn't a a type, or a tuple
+    # - cls isn't a type, or a tuple
     # - cls has a __bases__ attribute
     # - inst has a __class__ attribute
     # - inst.__class__ as no __bases__ attribute
diff --git a/Lib/test/test_startfile.py b/Lib/test/test_startfile.py
index ae9aeb9..5a9c2de 100644
--- a/Lib/test/test_startfile.py
+++ b/Lib/test/test_startfile.py
@@ -5,7 +5,7 @@
 #
 # A possible improvement would be to have empty.vbs do something that
 # we can detect here, to make sure that not only the os.startfile()
-# call succeeded, but also the the script actually has run.
+# call succeeded, but also the script actually has run.
 
 import unittest
 from test import support
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 873d46f..7c7170d 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -3598,7 +3598,7 @@
 {
     char buf[100];
     PyObject *result;
-    int us = TIME_GET_MICROSECOND(self);;
+    int us = TIME_GET_MICROSECOND(self);
 
     if (us)
         result = PyUnicode_FromFormat("%02d:%02d:%02d.%06d",
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
index 721174d..c63a1a0 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/Modules/_decimal/libmpdec/mpdecimal.c
@@ -2084,7 +2084,7 @@
 }
 
 /*
- * Compare a and b, convert the the usual integer result to a decimal and
+ * Compare a and b, convert the usual integer result to a decimal and
  * store it in 'result'. For convenience, the integer result of the comparison
  * is returned. Comparisons involving NaNs return NaN/INT_MAX.
  */
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index a42be71..b571ca8 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -289,7 +289,7 @@
  * may lose info from fractional bits.  Converting the integer to a double
  * also has two failure modes:  (1) a long int may trigger overflow (too
  * large to fit in the dynamic range of a C double); (2) even a C long may have
- * more bits than fit in a C double (e.g., on a a 64-bit box long may have
+ * more bits than fit in a C double (e.g., on a 64-bit box long may have
  * 63 bits of precision, but a C double probably has only 53), and then
  * we can falsely claim equality when low-order integer bits are lost by
  * coercion to double.  So this part is painful too.
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
index 368a7d5..cab226e 100644
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -1463,7 +1463,7 @@
             return name.startswith('pthread_cond_timedwait')
 
     def is_gc_collect(self):
-        '''Is this frame "collect" within the the garbage-collector?'''
+        '''Is this frame "collect" within the garbage-collector?'''
         return self._gdbframe.name() == 'collect'
 
     def get_pyop(self):
diff --git a/Tools/msi/schema.py b/Tools/msi/schema.py
index d028a11..1f72e5a 100644
--- a/Tools/msi/schema.py
+++ b/Tools/msi/schema.py
@@ -958,7 +958,7 @@
 (u'ServiceInstall',u'StartType',u'N',0,4,None, None, None, None, u'Type of the service',),
 (u'Shortcut',u'Name',u'N',None, None, None, None, u'Filename',None, u'The name of the shortcut to be created.',),
 (u'Shortcut',u'Description',u'Y',None, None, None, None, u'Text',None, u'The description for the shortcut.',),
-(u'Shortcut',u'Component_',u'N',None, None, u'Component',1,u'Identifier',None, u'Foreign key into the Component table denoting the component whose selection gates the the shortcut creation/deletion.',),
+(u'Shortcut',u'Component_',u'N',None, None, u'Component',1,u'Identifier',None, u'Foreign key into the Component table denoting the component whose selection gates the shortcut creation/deletion.',),
 (u'Shortcut',u'Icon_',u'Y',None, None, u'Icon',1,u'Identifier',None, u'Foreign key into the File table denoting the external icon file for the shortcut.',),
 (u'Shortcut',u'IconIndex',u'Y',-32767,32767,None, None, None, None, u'The icon index for the shortcut.',),
 (u'Shortcut',u'Directory_',u'N',None, None, u'Directory',1,u'Identifier',None, u'Foreign key into the Directory table denoting the directory where the shortcut file is created.',),
diff --git a/Tools/msi/uisample.py b/Tools/msi/uisample.py
index 2bdf59e..5430805 100644
--- a/Tools/msi/uisample.py
+++ b/Tools/msi/uisample.py
@@ -1195,7 +1195,7 @@
 (u'ServiceInstall', u'StartType', u'N', 0, 4, None, None, None, None, u'Type of the service'),
 (u'Shortcut', u'Name', u'N', None, None, None, None, u'Filename', None, u'The name of the shortcut to be created.'),
 (u'Shortcut', u'Description', u'Y', None, None, None, None, u'Text', None, u'The description for the shortcut.'),
-(u'Shortcut', u'Component_', u'N', None, None, u'Component', 1, u'Identifier', None, u'Foreign key into the Component table denoting the component whose selection gates the the shortcut creation/deletion.'),
+(u'Shortcut', u'Component_', u'N', None, None, u'Component', 1, u'Identifier', None, u'Foreign key into the Component table denoting the component whose selection gates the shortcut creation/deletion.'),
 (u'Shortcut', u'Icon_', u'Y', None, None, u'Icon', 1, u'Identifier', None, u'Foreign key into the File table denoting the external icon file for the shortcut.'),
 (u'Shortcut', u'IconIndex', u'Y', -32767, 32767, None, None, None, None, u'The icon index for the shortcut.'),
 (u'Shortcut', u'Directory_', u'N', None, None, u'Directory', 1, u'Identifier', None, u'Foreign key into the Directory table denoting the directory where the shortcut file is created.'),
