Remove duplication.
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)::