diff --git a/Doc/c-api/buffer.rst b/Doc/c-api/buffer.rst
index 1dc032e..c46028b 100644
--- a/Doc/c-api/buffer.rst
+++ b/Doc/c-api/buffer.rst
@@ -93,7 +93,7 @@
       occur (striding in a contiguous memory block).
 
       Here is a function that returns a pointer to the element in an N-D array
-      pointed to by an N-dimesional index when there are both non-NULL strides
+      pointed to by an N-dimensional index when there are both non-NULL strides
       and suboffsets::
 
           void *get_item_pointer(int ndim, void *buf, Py_ssize_t *strides,
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index b63ab9f..2d6b998 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -820,7 +820,7 @@
    it returns -1 without setting any exception.
 
    This function can be called on any thread, be it a Python thread or
-   some other system thread.  If it is a Python thread, it doesen't matter if
+   some other system thread.  If it is a Python thread, it doesn't matter if
    it holds the global interpreter lock or not.
 
    .. versionadded:: 2.7
diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index 7dd576e..2e2f9c4 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -1214,7 +1214,7 @@
       export, *view* is the :ctype:`Py_buffer` struct to fill, and *flags* gives
       the conditions the caller wants the memory under.  (See
       :cfunc:`PyObject_GetBuffer` for all flags.)  :cmember:`bf_getbuffer` is
-      responsible for filling *view* with the approiate information.
+      responsible for filling *view* with the appropriate information.
       (:cfunc:`PyBuffer_FillView` can be used in simple cases.)  See
       :ctype:`Py_buffer`\s docs for what needs to be filled in.
 
diff --git a/Doc/distutils/packageindex.rst b/Doc/distutils/packageindex.rst
index c4cbf88..1498394 100644
--- a/Doc/distutils/packageindex.rst
+++ b/Doc/distutils/packageindex.rst
@@ -98,7 +98,7 @@
 
     python setup.py register -r http://example.com/pypi
 
-The name of the section that describes the repository may also be used
-for conveniency::
+For convenience, the name of the section that describes the repository
+may also be used::
 
     python setup.py register -r other
diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst
index 03cfbbe..7011f92 100644
--- a/Doc/library/2to3.rst
+++ b/Doc/library/2to3.rst
@@ -99,7 +99,7 @@
 Fixers
 ------
 
-Each step of tranforming code is encapsulated in a fixer.  The command ``2to3
+Each step of transforming code is encapsulated in a fixer.  The command ``2to3
 -l`` lists them.  As :ref:`documented above <2to3-using>`, each can be turned on
 and off individually.  They are described here in more detail.
 
@@ -167,11 +167,11 @@
 
 .. 2to3fixer:: idioms
 
-   This optional fixer preforms several transformations that make Python code
-   more idiomatic.  Type comparisions like ``type(x) is SomeClass`` and
+   This optional fixer performs several transformations that make Python code
+   more idiomatic.  Type comparisons like ``type(x) is SomeClass`` and
    ``type(x) == SomeClass`` are converted to ``isinstance(x, SomeClass)``.
    ``while 1`` becomes ``while True``.  This fixer also tries to make use of
-   :func:`sorted` in appropiate places.  For example, this block ::
+   :func:`sorted` in appropriate places.  For example, this block ::
 
        L = list(some_iterable)
        L.sort()
diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst
index e9b2c77..ad7d348 100644
--- a/Doc/library/cgi.rst
+++ b/Doc/library/cgi.rst
@@ -265,12 +265,12 @@
 .. function:: parse_qs(qs[, keep_blank_values[, strict_parsing]])
 
    This function is deprecated in this module. Use :func:`urllib.parse.parse_qs`
-   instead. It is maintained here only for backward compatiblity.
+   instead. It is maintained here only for backward compatibility.
 
 .. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing]])
 
    This function is deprecated in this module. Use :func:`urllib.parse.parse_qs`
-   instead. It is maintained here only for backward compatiblity.
+   instead. It is maintained here only for backward compatibility.
 
 .. function:: parse_multipart(fp, pdict)
 
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index b1626f2..7d8e1b3 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -53,7 +53,7 @@
    The base class for all built-in exceptions.  It is not meant to be directly
    inherited by user-defined classes (for that use :exc:`Exception`).  If
    :func:`str` or :func:`unicode` is called on an instance of this class, the
-   representation of the argument(s) to the instance are returned or the emptry
+   representation of the argument(s) to the instance are returned or the empty
    string when there were no arguments.  All arguments are  stored in :attr:`args`
    as a tuple.
 
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index 4610b57..3b2a288 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -78,9 +78,9 @@
 
     The :func:`import_module` function acts as a simplifying wrapper around
     :func:`__import__`. This means all semantics of the function are derived
-    from :func:`__import__`, including requiring the package where an import is
-    occuring from to already be imported (i.e., *package* must already be
-    imported).
+    from :func:`__import__`, including requiring the package from which an
+    import is occurring to have been previously imported (i.e., *package*
+    must already be imported).
 
 :mod:`importlib.abc` -- Abstract base classes related to import
 ---------------------------------------------------------------
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
index 4b329ae..9a31520 100644
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -473,13 +473,13 @@
 Although powerful, implementing :meth:`__reduce__` directly in your classes is
 error prone.  For this reason, class designers should use the high-level
 interface (i.e., :meth:`__getnewargs__`, :meth:`__getstate__` and
-:meth:`__setstate__`) whenever possible.  We will show however cases where using
+:meth:`__setstate__`) whenever possible.  We will show, however, cases where using
 :meth:`__reduce__` is the only option or leads to more efficient pickling or
 both.
 
-The interface is currently defined as follow. The :meth:`__reduce__` method
+The interface is currently defined as follows. The :meth:`__reduce__` method
 takes no argument and shall return either a string or preferably a tuple (the
-returned object is often refered as the "reduce value").
+returned object is often referred to as the "reduce value").
 
 If a string is returned, the string should be interpreted as the name of a
 global variable.  It should be the object's local name relative to its module;
diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index ed50ddb..6e499a0 100644
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -16,7 +16,7 @@
 Both patterns and strings to be searched can be Unicode strings as well as
 8-bit strings. However, Unicode strings and 8-bit strings cannot be mixed:
 that is, you cannot match an Unicode string with a byte pattern or
-vice-versa; similarly, when asking for a substition, the replacement
+vice-versa; similarly, when asking for a substitution, the replacement
 string must be of the same type as both the pattern and the search string.
 
 Regular expressions use the backslash character (``'\'``) to indicate
diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst
index 8875c77..de4988a 100644
--- a/Doc/library/tkinter.ttk.rst
+++ b/Doc/library/tkinter.ttk.rst
@@ -139,7 +139,7 @@
    +----------------+---------------------------------------------------------+
    | option         | description                                             |
    +================+=========================================================+
-   | xscrollcommand | Used to comunicate with horizontal scrollbars.          |
+   | xscrollcommand | Used to communicate with horizontal scrollbars.         |
    |                |                                                         |
    |                | When the view in the widget's window change, the widget |
    |                | will generate a Tcl command based on the scrollcommand. |
@@ -149,7 +149,7 @@
    |                | the scrollbar to be updated whenever the view in the    |
    |                | window changes.                                         |
    +----------------+---------------------------------------------------------+
-   | yscrollcommand | Used to comunicate with vertical scrollbars.            |
+   | yscrollcommand | Used to communicate with vertical scrollbars.           |
    |                | For some more information, see above.                   |
    +----------------+---------------------------------------------------------+
 
diff --git a/Doc/library/tokenize.rst b/Doc/library/tokenize.rst
index 197b574..acb0b78 100644
--- a/Doc/library/tokenize.rst
+++ b/Doc/library/tokenize.rst
@@ -82,7 +82,7 @@
 .. function:: detect_encoding(readline)
 
     The :func:`detect_encoding` function is used to detect the encoding that
-    should be used to decode a Python source file. It requires one argment,
+    should be used to decode a Python source file. It requires one argument,
     readline, in the same way as the :func:`tokenize` generator.
 
     It will call readline a maximum of twice, and return the encoding used
diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst
index da3e475..2236286 100644
--- a/Doc/library/turtle.rst
+++ b/Doc/library/turtle.rst
@@ -61,7 +61,7 @@
 
 The procedural interface provides functions which are derived from the methods
 of the classes :class:`Screen` and :class:`Turtle`.  They have the same names as
-the corresponding methods.  A screen object is automativally created whenever a
+the corresponding methods.  A screen object is automatically created whenever a
 function derived from a Screen method is called.  An (unnamed) turtle object is
 automatically created whenever any of the functions derived from a Turtle method
 is called.
@@ -1584,7 +1584,7 @@
    =========== ===========
    "polygon"   a polygon-tuple, i.e. a tuple of pairs of coordinates
    "image"     an image  (in this form only used internally!)
-   "compound"  ``None`` (a compund shape has to be constructed using the
+   "compound"  ``None`` (a compound shape has to be constructed using the
                :meth:`addcomponent` method)
    =========== ===========
 
@@ -1806,7 +1806,7 @@
 
 It contains:
 
-- a set of 15 demo scripts demonstrating differet features of the new module
+- a set of 15 demo scripts demonstrating different features of the new module
   :mod:`turtle`
 - a demo viewer :file:`turtleDemo.py` which can be used to view the sourcecode
   of the scripts and run them at the same time. 14 of the examples can be
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index e5cc1b9..2e4a776 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -1240,7 +1240,7 @@
    ``isinstance(obj, collections.Hashable)`` (unlike classes which define their
    own :meth:`__hash__` to explicitly raise :exc:`TypeError`).
 
-   If a class that overrrides :meth:`__eq__` needs to retain the implementation
+   If a class that overrides :meth:`__eq__` needs to retain the implementation
    of :meth:`__hash__` from a parent class, the interpreter must be told this
    explicitly by setting ``__hash__ = <ParentClass>.__hash__``. Otherwise the
    inheritance of :meth:`__hash__` will be blocked, just as if :attr:`__hash__`
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index b1717cf..b3cce00 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1300,7 +1300,7 @@
 .. [#] While comparisons between strings make sense at the byte level, they may
    be counter-intuitive to users.  For example, the strings ``"\u00C7"`` and
    ``"\u0327\u0043"`` compare differently, even though they both represent the
-   same unicode character (LATIN CAPTITAL LETTER C WITH CEDILLA).  To compare
+   same unicode character (LATIN CAPITAL LETTER C WITH CEDILLA).  To compare
    strings in a human recognizable way, compare using
    :func:`unicodedata.normalize`.
 
