diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 2401da3..f76f72b 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -1910,7 +1910,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/faq/library.rst b/Doc/faq/library.rst
index 2d35b11..180bd39 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 5a5b7ed..8342657 100644
--- a/Doc/faq/windows.rst
+++ b/Doc/faq/windows.rst
@@ -593,7 +593,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/library/datetime.rst b/Doc/library/datetime.rst
index 456c1a0..26d9946 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -925,7 +925,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 ``tm_isdst`` is set to ``0``.
 
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index afb30a1..f0d1cf3 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 918e3ec..0009998 100644
--- a/Doc/library/optparse.rst
+++ b/Doc/library/optparse.rst
@@ -1206,7 +1206,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 0c441f8..7402ad5 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -239,6 +239,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
@@ -258,6 +259,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 4ac8df7..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 PEP333)
+   # 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 7baad6b..27bcfab 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1058,7 +1058,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:
 
