diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index 45eddca..6bd011b 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 21a2b64..24229bb 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -944,7 +944,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/optparse.rst b/Doc/library/optparse.rst
index 13649bc..2824a26 100644
--- a/Doc/library/optparse.rst
+++ b/Doc/library/optparse.rst
@@ -1216,7 +1216,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/wsgiref.rst b/Doc/library/wsgiref.rst
index 517fc38..3163497 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -712,7 +712,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 = '200 OK' # HTTP Status
        headers = [('Content-type', 'text/plain')] # HTTP Headers
