diff --git a/Doc/c-api/method.rst b/Doc/c-api/method.rst
index 27f9576..acc81e4 100644
--- a/Doc/c-api/method.rst
+++ b/Doc/c-api/method.rst
@@ -27,7 +27,7 @@
 .. c:function:: PyObject* PyInstanceMethod_New(PyObject *func)
 
    Return a new instance method object, with *func* being any callable object
-   *func* is is the function that will be called when the instance method is
+   *func* is the function that will be called when the instance method is
    called.
 
 
@@ -70,7 +70,7 @@
 .. c:function:: PyObject* PyMethod_New(PyObject *func, PyObject *self)
 
    Return a new method object, with *func* being any callable object and *self*
-   the instance the method should be bound. *func* is is the function that will
+   the instance the method should be bound. *func* is the function that will
    be called when the method is called. *self* must not be *NULL*.
 
 
diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index e3d41cc..b3def22 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -1745,7 +1745,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 c201e87..0bd7bb3 100644
--- a/Doc/howto/logging-cookbook.rst
+++ b/Doc/howto/logging-cookbook.rst
@@ -960,7 +960,7 @@
 ``.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.
 
 .. _zeromq-handlers:
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 c4ac2b2..74cdf4b 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 bf1fe2c..e512bf1 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -191,7 +191,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/concurrent.futures.rst b/Doc/library/concurrent.futures.rst
index 2359dd1..29ffc0d 100644
--- a/Doc/library/concurrent.futures.rst
+++ b/Doc/library/concurrent.futures.rst
@@ -14,7 +14,7 @@
 The :mod:`concurrent.futures` module provides a high-level interface for
 asynchronously executing callables.
 
-The asynchronous execution can be be performed with threads, using
+The asynchronous execution can be performed with threads, using
 :class:`ThreadPoolExecutor`, or separate processes, using
 :class:`ProcessPoolExecutor`.  Both implement the same interface, which is
 defined by the abstract :class:`Executor` class.
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index b868a95..fce5913 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -1958,7 +1958,7 @@
 
 .. function:: string_at(address, size=-1)
 
-   This function returns the C string starting at memory address address as a bytes
+   This function returns the C string starting at memory address *address* as a bytes
    object. 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 1e6a485..3e63258 100644
--- a/Doc/library/email.message.rst
+++ b/Doc/library/email.message.rst
@@ -291,7 +291,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/functions.rst b/Doc/library/functions.rst
index 4ed3ec5..b44ed99 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -828,7 +828,7 @@
    .. note::
 
       Python doesn't depend on the underlying operating system's notion of text
-      files; all the the processing is done by Python itself, and is therefore
+      files; all the processing is done by Python itself, and is therefore
       platform-independent.
 
    *buffering* is an optional integer used to set the buffering policy.  Pass 0
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
index 9b1ab0f..c1ce15b 100644
--- a/Doc/library/http.client.rst
+++ b/Doc/library/http.client.rst
@@ -435,7 +435,7 @@
    Set the host and the port for HTTP Connect Tunnelling. Normally used when it
    is required to a HTTPS Connection 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:: 3.2
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
index ff8cfea..83a590e 100644
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -780,7 +780,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/mmap.rst b/Doc/library/mmap.rst
index 6a74a14..5f0f004 100644
--- a/Doc/library/mmap.rst
+++ b/Doc/library/mmap.rst
@@ -259,7 +259,7 @@
 
    .. method:: write_byte(byte)
 
-      Write the the integer *byte* into memory at the current
+      Write the integer *byte* into memory at the current
       position of the file pointer; the file position is advanced by ``1``. If
       the mmap was created with :const:`ACCESS_READ`, then writing to it will
       raise a :exc:`TypeError` exception.
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 78e3e95..d8a554d 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`.
@@ -1631,7 +1631,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 32ae724..786bb04 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -243,7 +243,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 f98a5f1..3692b56 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1117,7 +1117,7 @@
    characters and there is at least one character, false
    otherwise. Decimal characters are those from general category "Nd". This category
    includes 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 78f2b4d..56a2a34 100644
--- a/Doc/library/string.rst
+++ b/Doc/library/string.rst
@@ -211,7 +211,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/threading.rst b/Doc/library/threading.rst
index 5f1b9bf..1f1d775 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -864,7 +864,7 @@
 
       Pass the barrier.  When all the threads party to the barrier have called
       this function, they are all released simultaneously.  If a *timeout* is
-      provided, is is used in preference to any that was supplied to the class
+      provided, it is used in preference to any that was supplied to the class
       constructor.
 
       The return value is an integer in the range 0 to *parties* -- 1, different
diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst
index 7bf39b3..f70d163 100644
--- a/Doc/library/tkinter.ttk.rst
+++ b/Doc/library/tkinter.ttk.rst
@@ -1240,7 +1240,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 8151a0a..e7a6f18 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -478,7 +478,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/reference/toplevel_components.rst b/Doc/reference/toplevel_components.rst
index 21f801c..f4bc71f 100644
--- a/Doc/reference/toplevel_components.rst
+++ b/Doc/reference/toplevel_components.rst
@@ -111,6 +111,6 @@
    single: input; raw
    single: readline() (file method)
 
-Note: to read 'raw' input line without interpretation, you can use the the
+Note: to read 'raw' input line without interpretation, you can use the
 :meth:`readline` method of file objects, including ``sys.stdin``.
 
diff --git a/Doc/tutorial/floatingpoint.rst b/Doc/tutorial/floatingpoint.rst
index 863fb28..9c3c143 100644
--- a/Doc/tutorial/floatingpoint.rst
+++ b/Doc/tutorial/floatingpoint.rst
@@ -92,7 +92,7 @@
 (although some languages may not *display* the difference by default, or in all
 output modes).
 
-For more pleasant output, you may may wish to use string formatting to produce a limited number of significant digits::
+For more pleasant output, you may wish to use string formatting to produce a limited number of significant digits::
 
    >>> format(math.pi, '.12g')  # give 12 significant digits
    '3.14159265359'
diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst
index c52b5fb..d94e66f 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
