diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 26d04d1..8a68417 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -1845,7 +1845,7 @@
 
    to your setup.py, and later::
 
-      cmdclass = {'build_py':build_py}
+      cmdclass = {'build_py': build_py}
 
    to the invocation of setup().
 
diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst
index dcef3f8..1d40649 100644
--- a/Doc/extending/extending.rst
+++ b/Doc/extending/extending.rst
@@ -162,7 +162,7 @@
 for a variety of reasons.)
 
 To ignore an exception set by a function call that failed, the exception
-c:ondition must be cleared explicitly by calling :c:func:`PyErr_Clear`.  The only
+condition must be cleared explicitly by calling :c:func:`PyErr_Clear`.  The only
 time C code should call :c:func:`PyErr_Clear` is if it doesn't want to pass the
 error on to the interpreter but wants to handle it completely by itself
 (possibly by trying something else, or pretending nothing went wrong).
diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst
index 067548f..5014185 100644
--- a/Doc/faq/library.rst
+++ b/Doc/faq/library.rst
@@ -460,7 +460,7 @@
 
 To truncate a file, open it using ``f = open(filename, "rb+")``, and use
 ``f.truncate(offset)``; offset defaults to the current seek position.  There's
-also ```os.ftruncate(fd, offset)`` for files opened with :func:`os.open`, where
+also ``os.ftruncate(fd, offset)`` for files opened with :func:`os.open`, where
 ``fd`` is the file descriptor (a small integer).
 
 The :mod:`shutil` module also contains a number of functions to work on files
diff --git a/Doc/faq/windows.rst b/Doc/faq/windows.rst
index 6266d10..4954ac0 100644
--- a/Doc/faq/windows.rst
+++ b/Doc/faq/windows.rst
@@ -598,7 +598,7 @@
 
 The Python installer issues a warning like this::
 
-   This version uses ``CTL3D32.DLL`` which is not the correct version.
+   This version uses CTL3D32.DLL which is not the correct version.
    This version is used for windows NT applications only.
 
 Tim Peters:
diff --git a/Doc/howto/cporting.rst b/Doc/howto/cporting.rst
index 06b9189..7cb0892 100644
--- a/Doc/howto/cporting.rst
+++ b/Doc/howto/cporting.rst
@@ -47,12 +47,12 @@
 2.x's :func:`unicode` (``PyUnicode_*``).  The old 8-bit string type has become
 :func:`bytes`.  Python 2.6 and later provide a compatibility header,
 :file:`bytesobject.h`, mapping ``PyBytes`` names to ``PyString`` ones.  For best
-c:ompatibility with 3.0, :c:type:`PyUnicode` should be used for textual data and
+compatibility with 3.0, :c:type:`PyUnicode` should be used for textual data and
 :c:type:`PyBytes` for binary data.  It's also important to remember that
 :c:type:`PyBytes` and :c:type:`PyUnicode` in 3.0 are not interchangeable like
-:c:type:`PyString` and :c:type:`PyString` are in 2.x.  The following example shows
-best practices with regards to :c:type:`PyUnicode`, :c:type:`PyString`, and
-:c:type:`PyBytes`. ::
+:c:type:`PyString` and :c:type:`PyString` are in 2.x.  The following example
+shows best practices with regards to :c:type:`PyUnicode`, :c:type:`PyString`,
+and :c:type:`PyBytes`. ::
 
    #include "stdlib.h"
    #include "Python.h"
diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index a30a8c4..f50492a 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -737,14 +737,14 @@
 * N (an integer).  N args from the command-line will be gathered together into a
   list.  For example::
 
-    >>> parser = argparse.ArgumentParser()
-    >>> parser.add_argument('--foo', nargs=2)
-    >>> parser.add_argument('bar', nargs=1)
-    >>> parser.parse_args('c --foo a b'.split())
-    Namespace(bar=['c'], foo=['a', 'b'])
+     >>> parser = argparse.ArgumentParser()
+     >>> parser.add_argument('--foo', nargs=2)
+     >>> parser.add_argument('bar', nargs=1)
+     >>> parser.parse_args('c --foo a b'.split())
+     Namespace(bar=['c'], foo=['a', 'b'])
 
-   Note that ``nargs=1`` produces a list of one item.  This is different from
-   the default, in which the item is produced by itself.
+  Note that ``nargs=1`` produces a list of one item.  This is different from
+  the default, in which the item is produced by itself.
 
 * ``'?'``. One arg will be consumed from the command-line if possible, and
   produced as a single item.  If no command-line arg is present, the value from
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index 714286f..b9adbcc 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -979,7 +979,7 @@
    d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the day number within
    the current year starting with ``1`` for January 1st. The :attr:`tm_isdst` flag
    of the result is set according to the :meth:`dst` method: :attr:`tzinfo` is
-   ``None`` or :meth:`dst`` returns ``None``, :attr:`tm_isdst` is set to ``-1``;
+   ``None`` or :meth:`dst` returns ``None``, :attr:`tm_isdst` is set to ``-1``;
    else if :meth:`dst` returns a non-zero value, :attr:`tm_isdst` is set to ``1``;
    else :attr:`tm_isdst` is set to ``0``.
 
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 4f1c91c..97f2a38 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -634,9 +634,9 @@
    The optional keyword-only *key* argument specifies a one-argument ordering
    function like that used for :meth:`list.sort`.
 
-   If multiple items are maximal, the function returns the first one encountered.
-   This is consistent with other sort-stability preserving tools such as
-   ``sorted(iterable, key=keyfunc, reverse=True)[0]` and
+   If multiple items are maximal, the function returns the first one
+   encountered.  This is consistent with other sort-stability preserving tools
+   such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and
    ``heapq.nlargest(1, iterable, key=keyfunc)``.
 
 .. function:: memoryview(obj)
@@ -655,10 +655,10 @@
    The optional keyword-only *key* argument specifies a one-argument ordering
    function like that used for :meth:`list.sort`.
 
-   If multiple items are minimal, the function returns the first one encountered.
-   This is consistent with other sort-stability preserving tools such as
-   ``sorted(iterable, key=keyfunc)[0]` and
-   ``heapq.nsmallest(1, iterable, key=keyfunc)``.
+   If multiple items are minimal, the function returns the first one
+   encountered.  This is consistent with other sort-stability preserving tools
+   such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1,
+   iterable, key=keyfunc)``.
 
 .. function:: next(iterator[, default])
 
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index 3e0c62d..5a2de14 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -179,7 +179,7 @@
 :class:`BufferedReader`, and :class:`BufferedRWPair` buffer streams that are
 readable, writable, and both readable and writable.  :class:`BufferedRandom`
 provides a buffered interface to random access streams.  Another
-:class`BufferedIOBase` subclass, :class:`BytesIO`, is a stream of in-memory
+:class:`BufferedIOBase` subclass, :class:`BytesIO`, is a stream of in-memory
 bytes.
 
 The :class:`TextIOBase` ABC, another subclass of :class:`IOBase`, deals with
diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst
index 37226c3..e7de741 100644
--- a/Doc/library/optparse.rst
+++ b/Doc/library/optparse.rst
@@ -1212,7 +1212,7 @@
 :func:`float` and :func:`complex`, with similar error-handling.
 
 ``"choice"`` options are a subtype of ``"string"`` options.  The
-:attr:`~Option.choices`` option attribute (a sequence of strings) defines the
+:attr:`~Option.choices` option attribute (a sequence of strings) defines the
 set of allowed option arguments.  :func:`optparse.check_choice` compares
 user-supplied option arguments against this master list and raises
 :exc:`OptionValueError` if an invalid string is given.
diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst
index 3671407..29b02e9 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -271,6 +271,7 @@
 
 
 .. function:: getstatusoutput(cmd)
+
    Return ``(status, output)`` of executing *cmd* in a shell.
 
    Execute the string *cmd* in a shell with :func:`os.popen` and return a 2-tuple
@@ -290,6 +291,7 @@
 
 
 .. function:: getoutput(cmd)
+
    Return output (stdout and stderr) of executing *cmd* in a shell.
 
    Like :func:`getstatusoutput`, except the exit status is ignored and the return
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index 6420162..fda9e70 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -708,7 +708,7 @@
    # use a function (note that you're not limited to a function, you can
    # use a class for example). The first argument passed to the function
    # is a dictionary containing CGI-style envrironment variables and the
-   # second variable is the callable object (see :pep:`333`)
+   # second variable is the callable object (see PEP 333).
    def hello_world_app(environ, start_response):
        status = b'200 OK' # HTTP Status
        headers = [(b'Content-type', b'text/plain; charset=utf-8')] # HTTP Headers
diff --git a/Doc/reference/executionmodel.rst b/Doc/reference/executionmodel.rst
index b4c29b1..861163e 100644
--- a/Doc/reference/executionmodel.rst
+++ b/Doc/reference/executionmodel.rst
@@ -87,7 +87,7 @@
 :keyword:`import` statements, class and function definitions (these bind the
 class or function name in the defining block), and targets that are identifiers
 if occurring in an assignment, :keyword:`for` loop header, or after
-:keyword:`as` in a :keyword:`with` statement or :keyword.`except` clause.
+:keyword:`as` in a :keyword:`with` statement or :keyword:`except` clause.
 The :keyword:`import` statement
 of the form ``from ... import *`` binds all names defined in the imported
 module, except those beginning with an underscore.  This form may only be used
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index f8f0455..9c97c6d 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1063,7 +1063,7 @@
 cross-type comparison is not supported, the comparison method returns
 ``NotImplemented``.  This can create the illusion of non-transitivity between
 supported cross-type comparisons and unsupported comparisons.  For example,
-``Decimal(2) == 2`` and `2 == float(2)`` but ``Decimal(2) != float(2)``.
+``Decimal(2) == 2`` and ``2 == float(2)`` but ``Decimal(2) != float(2)``.
 
 .. _membership-test-details:
 
