diff --git a/Demo/threads/sync.py b/Demo/threads/sync.py
index 843767a..a344abe 100644
--- a/Demo/threads/sync.py
+++ b/Demo/threads/sync.py
@@ -265,7 +265,7 @@
 #      intervening.  If there are other threads waiting to write, they
 #      are allowed to proceed only if the current thread calls
 #      .read_out; threads waiting to read are only allowed to proceed
-#      if there are are no threads waiting to write.  (This is a
+#      if there are no threads waiting to write.  (This is a
 #      weakness of the interface!)
 
 import thread
diff --git a/Demo/tix/tixwidgets.py b/Demo/tix/tixwidgets.py
index de2e22e..3cf34b7 100644
--- a/Demo/tix/tixwidgets.py
+++ b/Demo/tix/tixwidgets.py
@@ -659,7 +659,7 @@
 I have implemented a new image type called "compound". It allows you
 to glue together a bunch of bitmaps, images and text strings together
 to form a bigger image. Then you can use this image with widgets that
-support the -image option. For example, you can display a text string string
+support the -image option. For example, you can display a text string
 together with a bitmap, at the same time, inside a TK button widget.
 """)
     list.pack(expand=1, fill=Tix.BOTH, padx=4, pady=6)
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index a001145..beedfbe 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -475,7 +475,7 @@
 
    Marks a point where a recursive C-level call is about to be performed.
 
-   If :const:`USE_STACKCHECK` is defined, this function checks if the the OS
+   If :const:`USE_STACKCHECK` is defined, this function checks if the OS
    stack overflowed using :cfunc:`PyOS_CheckStack`.  In this is the case, it
    sets a :exc:`MemoryError` and returns a nonzero value.
 
diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index eae9078..c394eee 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -1741,7 +1741,7 @@
    Set final values for all the options that this command supports. This is
    always called as late as possible, ie.  after any option assignments from the
    command-line or from other commands have been done.  Thus, this is the place
-   to to code option dependencies: if *foo* depends on *bar*, then it is safe to
+   to code option dependencies: if *foo* depends on *bar*, then it is safe to
    set *foo* from *bar* as long as *foo* still has the same value it was
    assigned in :meth:`initialize_options`.
 
diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst
index ad9f666..b1f5c7c 100644
--- a/Doc/howto/logging-cookbook.rst
+++ b/Doc/howto/logging-cookbook.rst
@@ -679,6 +679,6 @@
 ``.1``. Each of the existing backup files is renamed to increment the suffix
 (``.1`` becomes ``.2``, etc.)  and the ``.6`` file is erased.
 
-Obviously this example sets the log length much much too small as an extreme
+Obviously this example sets the log length much too small as an extreme
 example.  You would want to set *maxBytes* to an appropriate value.
 
diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst
index 124ef33..309f3f7 100644
--- a/Doc/howto/pyporting.rst
+++ b/Doc/howto/pyporting.rst
@@ -328,7 +328,7 @@
 textual data, people have over the years been rather loose in their delineation
 of what ``str`` instances held text compared to bytes. In Python 3 you cannot
 be so care-free anymore and need to properly handle the difference. The key
-handling this issue to to make sure that **every** string literal in your
+handling this issue to make sure that **every** string literal in your
 Python 2 code is either syntactically of functionally marked as either bytes or
 text data. After this is done you then need to make sure your APIs are designed
 to either handle a specific type or made to be properly polymorphic.
diff --git a/Doc/howto/webservers.rst b/Doc/howto/webservers.rst
index 03853f4..42cdff8 100644
--- a/Doc/howto/webservers.rst
+++ b/Doc/howto/webservers.rst
@@ -264,7 +264,7 @@
 
    * `FastCGI, SCGI, and Apache: Background and Future
      <http://www.vmunix.com/mark/blog/archives/2006/01/02/fastcgi-scgi-and-apache-background-and-future/>`_
-     is a discussion on why the concept of FastCGI and SCGI is better that that
+     is a discussion on why the concept of FastCGI and SCGI is better than that
      of mod_python.
 
 
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index 90f7e3c..b315a73 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -188,7 +188,7 @@
    * The multiset methods are designed only for use cases with positive values.
      The inputs may be negative or zero, but only outputs with positive values
      are created.  There are no type restrictions, but the value type needs to
-     support support addition, subtraction, and comparison.
+     support addition, subtraction, and comparison.
 
    * The :meth:`elements` method requires integer counts.  It ignores zero and
      negative counts.
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index d94b04e..1a3e2f5 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -2000,7 +2000,7 @@
 
 .. function:: string_at(address[, size])
 
-   This function returns the string starting at memory address address. If size
+   This function returns the string starting at memory address *address*. If size
    is specified, it is used as size, otherwise the string is assumed to be
    zero-terminated.
 
diff --git a/Doc/library/email.message.rst b/Doc/library/email.message.rst
index a570d81..77ce99e 100644
--- a/Doc/library/email.message.rst
+++ b/Doc/library/email.message.rst
@@ -295,7 +295,7 @@
 
          Content-Disposition: attachment; filename="bud.gif"
 
-      An example with with non-ASCII characters::
+      An example with non-ASCII characters::
 
          msg.add_header('Content-Disposition', 'attachment',
                         filename=('iso-8859-1', '', 'Fußballer.ppt'))
diff --git a/Doc/library/email.mime.rst b/Doc/library/email.mime.rst
index a092feb..78fdc76 100644
--- a/Doc/library/email.mime.rst
+++ b/Doc/library/email.mime.rst
@@ -196,6 +196,6 @@
 
    .. versionchanged:: 2.4
       The previously deprecated *_encoding* argument has been removed.  Content
-      Transfer Encoding now happens happens implicitly based on the *_charset*
+      Transfer Encoding now happens implicitly based on the *_charset*
       argument.
 
diff --git a/Doc/library/httplib.rst b/Doc/library/httplib.rst
index fc26f24..58b1bb7 100644
--- a/Doc/library/httplib.rst
+++ b/Doc/library/httplib.rst
@@ -452,7 +452,7 @@
    Set the host and the port for HTTP Connect Tunnelling. Normally used when
    it is required to do HTTPS Conection through a proxy server.
 
-   The headers argument should be a mapping of extra HTTP headers to to sent
+   The headers argument should be a mapping of extra HTTP headers to sent
    with the CONNECT request.
 
    .. versionadded:: 2.7
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
index 92f37cb..d51f340 100644
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -765,7 +765,7 @@
    There is no requirement that :class:`Message` instances be used to represent
    messages retrieved using :class:`Mailbox` instances. In some situations, the
    time and memory required to generate :class:`Message` representations might
-   not not acceptable. For such situations, :class:`Mailbox` instances also
+   not be acceptable. For such situations, :class:`Mailbox` instances also
    offer string and file-like representations, and a custom message factory may
    be specified when a :class:`Mailbox` instance is initialized.
 
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 30c4b10..c0c0ae8 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1494,7 +1494,7 @@
       a new shared object -- see documentation for the *method_to_typeid*
       argument of :meth:`BaseManager.register`.
 
-      If an exception is raised by the call, then then is re-raised by
+      If an exception is raised by the call, then is re-raised by
       :meth:`_callmethod`.  If some other exception is raised in the manager's
       process then this is converted into a :exc:`RemoteError` exception and is
       raised by :meth:`_callmethod`.
@@ -1617,7 +1617,7 @@
 
       The *chunksize* argument is the same as the one used by the :meth:`.map`
       method.  For very long iterables using a large value for *chunksize* can
-      make make the job complete **much** faster than using the default value of
+      make the job complete **much** faster than using the default value of
       ``1``.
 
       Also if *chunksize* is ``1`` then the :meth:`!next` method of the iterator
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index 3ef108c..50a036f 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -240,7 +240,7 @@
 .. method:: Connection.commit()
 
    This method commits the current transaction. If you don't call this method,
-   anything you did since the last call to ``commit()`` is not visible from from
+   anything you did since the last call to ``commit()`` is not visible from
    other database connections. If you wonder why you don't see the data you've
    written to the database, please check you didn't forget to call this method.
 
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 30faddb..26f200d 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1311,7 +1311,7 @@
 
    Return ``True`` if there are only decimal characters in S, ``False``
    otherwise. Decimal characters include digit characters, and all characters
-   that that can be used to form decimal-radix numbers, e.g. U+0660,
+   that can be used to form decimal-radix numbers, e.g. U+0660,
    ARABIC-INDIC DIGIT ZERO.
 
 
diff --git a/Doc/library/string.rst b/Doc/library/string.rst
index 20fcae9..67547ad 100644
--- a/Doc/library/string.rst
+++ b/Doc/library/string.rst
@@ -243,7 +243,7 @@
 
 See also the :ref:`formatspec` section.
 
-The *field_name* itself begins with an *arg_name* that is either either a number or a
+The *field_name* itself begins with an *arg_name* that is either a number or a
 keyword.  If it's a number, it refers to a positional argument, and if it's a keyword,
 it refers to a named keyword argument.  If the numerical arg_names in a format string
 are 0, 1, 2, ... in sequence, they can all be omitted (not just some)
diff --git a/Doc/library/ttk.rst b/Doc/library/ttk.rst
index ebfdede..6e8ff89 100644
--- a/Doc/library/ttk.rst
+++ b/Doc/library/ttk.rst
@@ -1243,7 +1243,7 @@
       *layoutspec*, if specified, is expected to be a list or some other
       sequence type (excluding strings), where each item should be a tuple and
       the first item is the layout name and the second item should have the
-      format described described in `Layouts`_.
+      format described in `Layouts`_.
 
       To understand the format, see the following example (it is not
       intended to do anything useful)::
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index 7015a7f..c99b65a 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -470,7 +470,7 @@
 
 **Default parameter values are evaluated when the function definition is
 executed.**  This means that the expression is evaluated once, when the function
-is defined, and that that same "pre-computed" value is used for each call.  This
+is defined, and that the same "pre-computed" value is used for each call.  This
 is especially important to understand when a default parameter is a mutable
 object, such as a list or a dictionary: if the function modifies the object
 (e.g. by appending an item to a list), the default value is in effect modified.
diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst
index fadde50..a602f75 100644
--- a/Doc/whatsnew/2.4.rst
+++ b/Doc/whatsnew/2.4.rst
@@ -947,7 +947,7 @@
   :meth:`__len__` method.  (Contributed by Raymond Hettinger.)
 
 * The methods :meth:`list.__getitem__`, :meth:`dict.__getitem__`, and
-  :meth:`dict.__contains__` are are now implemented as :class:`method_descriptor`
+  :meth:`dict.__contains__` are now implemented as :class:`method_descriptor`
   objects rather than :class:`wrapper_descriptor` objects.  This form of  access
   doubles their performance and makes them more suitable for use as arguments to
   functionals: ``map(mydict.__getitem__, keylist)``. (Contributed by Raymond
diff --git a/Lib/cookielib.py b/Lib/cookielib.py
index 5b25090..65214df 100644
--- a/Lib/cookielib.py
+++ b/Lib/cookielib.py
@@ -1014,7 +1014,7 @@
                     (not erhn.startswith(".") and
                      not ("."+erhn).endswith(domain))):
                     _debug("   effective request-host %s (even with added "
-                           "initial dot) does not end end with %s",
+                           "initial dot) does not end with %s",
                            erhn, domain)
                     return False
             if (cookie.version > 0 or
diff --git a/Lib/lib-tk/Tix.py b/Lib/lib-tk/Tix.py
index 210b7d2..d474235 100644
--- a/Lib/lib-tk/Tix.py
+++ b/Lib/lib-tk/Tix.py
@@ -1874,13 +1874,13 @@
         return self.tk.call(self, 'info', 'bbox', x, y)
 
     def move_column(self, from_, to, offset):
-        """Moves the the range of columns from position FROM through TO by
+        """Moves the range of columns from position FROM through TO by
         the distance indicated by OFFSET. For example, move_column(2, 4, 1)
         moves the columns 2,3,4 to columns 3,4,5."""
         self.tk.call(self, 'move', 'column', from_, to, offset)
 
     def move_row(self, from_, to, offset):
-        """Moves the the range of rows from position FROM through TO by
+        """Moves the range of rows from position FROM through TO by
         the distance indicated by OFFSET.
         For example, move_row(2, 4, 1) moves the rows 2,3,4 to rows 3,4,5."""
         self.tk.call(self, 'move', 'row', from_, to, offset)
@@ -1939,7 +1939,7 @@
               pad0 pixels
                      Specifies the paddings to the top of a row.
               pad1 pixels
-                     Specifies the paddings to the the bottom of a row.
+                     Specifies the paddings to the bottom of a row.
               size val
                      Specifies  the height of a row.
                      Val may be: "auto" -- the height of the row  is  set  the
diff --git a/Lib/lib-tk/turtle.py b/Lib/lib-tk/turtle.py
index 4230d68..e78324e 100644
--- a/Lib/lib-tk/turtle.py
+++ b/Lib/lib-tk/turtle.py
@@ -96,7 +96,7 @@
   docstrings to disc, so it can serve as a template for translations.
 
 Behind the scenes there are some features included with possible
-extensions in in mind. These will be commented and documented elsewhere.
+extensions in mind. These will be commented and documented elsewhere.
 
 """
 
diff --git a/Lib/msilib/schema.py b/Lib/msilib/schema.py
index 51dd177..003f040 100644
--- a/Lib/msilib/schema.py
+++ b/Lib/msilib/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/Lib/multiprocessing/__init__.py b/Lib/multiprocessing/__init__.py
index 4963293..2e91e8e 100644
--- a/Lib/multiprocessing/__init__.py
+++ b/Lib/multiprocessing/__init__.py
@@ -9,7 +9,7 @@
 # wrapper for 'threading'.
 #
 # Try calling `multiprocessing.doc.main()` to read the html
-# documentation in in a webbrowser.
+# documentation in a webbrowser.
 #
 #
 # Copyright (c) 2006-2008, R Oudkerk
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index 64cd702..3b29a6a 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -34,7 +34,7 @@
 libraries in which tell() discards buffered data before discovering that the
 lseek() system call doesn't work.  For maximum portability, you should set the
 seekable argument to zero to prevent that initial \code{tell} when passing in
-an unseekable object such as a a file object created from a socket object.  If
+an unseekable object such as a file object created from a socket object.  If
 it is 1 on entry -- which it is by default -- the tell() method of the open
 file object is called once; if this raises an exception, seekable is reset to
 0.  For other nonzero values of seekable, this test is not made.
diff --git a/Lib/sched.py b/Lib/sched.py
index f0da829..47646a1 100644
--- a/Lib/sched.py
+++ b/Lib/sched.py
@@ -88,7 +88,7 @@
         restarted.
 
         It is legal for both the delay function and the action
-        function to to modify the queue or to raise an exception;
+        function to modify the queue or to raise an exception;
         exceptions are not caught but the scheduler's state remains
         well-defined so run() may be called again.
 
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
index c690a67..39a897a 100644
--- a/Lib/test/test_urlparse.py
+++ b/Lib/test/test_urlparse.py
@@ -9,7 +9,7 @@
 RFC3986_BASE = 'http://a/b/c/d;p?q'
 SIMPLE_BASE  = 'http://a/b/c/d'
 
-# A list of test cases.  Each test case is a a two-tuple that contains
+# A list of test cases.  Each test case is a two-tuple that contains
 # a string with the query and a dictionary with the expected result.
 
 parse_qsl_test_cases = [
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index 79100e9..c88a1ee 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -308,7 +308,7 @@
         global ADDR, PORT, URL
         ADDR, PORT = serv.socket.getsockname()
         #connect to IP address directly.  This avoids socket.create_connection()
-        #trying to connect to to "localhost" using all address families, which
+        #trying to connect to "localhost" using all address families, which
         #causes slowdown e.g. on vista which supports AF_INET6.  The server listens
         #on AF_INET only.
         URL = "http://%s:%d"%(ADDR, PORT)
@@ -367,7 +367,7 @@
         global ADDR, PORT, URL
         ADDR, PORT = serv.socket.getsockname()
         #connect to IP address directly.  This avoids socket.create_connection()
-        #trying to connect to to "localhost" using all address families, which
+        #trying to connect to "localhost" using all address families, which
         #causes slowdown e.g. on vista which supports AF_INET6.  The server listens
         #on AF_INET only.
         URL = "http://%s:%d"%(ADDR, PORT)
