diff --git a/Doc/library/pkgutil.rst b/Doc/library/pkgutil.rst
index f169263..5189377 100644
--- a/Doc/library/pkgutil.rst
+++ b/Doc/library/pkgutil.rst
@@ -45,7 +45,7 @@
 
    Get a resource from a package.
 
-   This is a wrapper for the PEP 302 loader :func:`get_data` API. The package
+   This is a wrapper for the :pep:`302` loader :func:`get_data` API. The package
    argument should be the name of a package, in standard module format
    (foo.bar). The resource argument should be in the form of a relative
    filename, using ``/`` as the path separator. The parent directory name
@@ -60,5 +60,5 @@
        d = os.path.dirname(sys.modules[package].__file__)
        data = open(os.path.join(d, resource), 'rb').read()
 
-   If the package cannot be located or loaded, or it uses a PEP 302 loader
+   If the package cannot be located or loaded, or it uses a :pep:`302` loader
    which does not support :func:`get_data`, then None is returned.
diff --git a/Doc/library/runpy.rst b/Doc/library/runpy.rst
index ffc7d13..23d0730 100644
--- a/Doc/library/runpy.rst
+++ b/Doc/library/runpy.rst
@@ -20,7 +20,7 @@
 
    Execute the code of the specified module and return the resulting module
    globals dictionary. The module's code is first located using the standard
-   import mechanism (refer to PEP 302 for details) and then executed in a
+   import mechanism (refer to :pep:`302` for details) and then executed in a
    fresh module namespace.
 
    If the supplied module name refers to a package rather than a normal
@@ -47,7 +47,7 @@
    loader does not make filename information available, this variable is set
    to :const:`None`.
 
-   ``__loader__`` is set to the PEP 302 module loader used to retrieve the
+   ``__loader__`` is set to the :pep:`302` module loader used to retrieve the
    code for the module (This loader may be a wrapper around the standard
    import mechanism).
 
@@ -105,7 +105,7 @@
    loader does not make filename information available, this variable is set
    to :const:`None`. For a simple script, this will be set to ``file_path``.
 
-   ``__loader__`` is set to the PEP 302 module loader used to retrieve the
+   ``__loader__`` is set to the :pep:`302` module loader used to retrieve the
    code for the module (This loader may be a wrapper around the standard
    import mechanism). For a simple script, this will be set to :const:`None`.
 
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index 4627ca6..a0a1fdd 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -14,7 +14,7 @@
 
 .. note::
 
-   Starting with Python 2.6, this module provides PEP 8 compliant aliases and
+   Starting with Python 2.6, this module provides :pep:`8` compliant aliases and
    properties to replace the ``camelCase`` names that were inspired by Java's
    threading API. This updated API is compatible with that of the
    :mod:`multiprocessing` module. However, no schedule has been set for the
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index a97eaec..517fc38 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 PEP333)
+   # 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
diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst
index 0d3164a..43e12b1 100644
--- a/Doc/library/zipimport.rst
+++ b/Doc/library/zipimport.rst
@@ -41,12 +41,12 @@
       Documentation on the ZIP file format by Phil Katz, the creator of the format and
       algorithms used.
 
-   :pep:`0273` - Import Modules from Zip Archives
+   :pep:`273` - Import Modules from Zip Archives
       Written by James C. Ahlstrom, who also provided an implementation. Python 2.3
       follows the specification in PEP 273, but uses an implementation written by Just
       van Rossum that uses the import hooks described in PEP 302.
 
-   :pep:`0302` - New Import Hooks
+   :pep:`302` - New Import Hooks
       The PEP to add the import hooks that help this module work.
 
 
