diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst
index a959d67..34e8fad 100644
--- a/Doc/library/2to3.rst
+++ b/Doc/library/2to3.rst
@@ -239,8 +239,9 @@
 
 .. 2to3fixer:: next
 
-   Converts the use of iterator's :meth:`next` methods to the :func:`next`
-   function.  It also renames :meth:`next` methods to :meth:`~object.__next__`.
+   Converts the use of iterator's :meth:`~iterator.next` methods to the
+   :func:`next` function.  It also renames :meth:`next` methods to
+   :meth:`~object.__next__`.
 
 .. 2to3fixer:: nonzero
 
diff --git a/Doc/library/aifc.rst b/Doc/library/aifc.rst
index 062f1f2..0bb1635 100644
--- a/Doc/library/aifc.rst
+++ b/Doc/library/aifc.rst
@@ -48,7 +48,7 @@
    time how many samples you are going to write in total and use
    :meth:`writeframesraw` and :meth:`setnframes`.
 
-Objects returned by :func:`open` when a file is opened for reading have the
+Objects returned by :func:`.open` when a file is opened for reading have the
 following methods:
 
 
@@ -131,7 +131,7 @@
    Close the AIFF file.  After calling this method, the object can no longer be
    used.
 
-Objects returned by :func:`open` when a file is opened for writing have all the
+Objects returned by :func:`.open` when a file is opened for writing have all the
 above methods, except for :meth:`readframes` and :meth:`setpos`.  In addition
 the following methods exist.  The :meth:`get\*` methods can only be called after
 the corresponding :meth:`set\*` methods have been called.  Before the first
diff --git a/Doc/library/anydbm.rst b/Doc/library/anydbm.rst
index aad1776..7c6f99f 100644
--- a/Doc/library/anydbm.rst
+++ b/Doc/library/anydbm.rst
@@ -62,7 +62,7 @@
    modules, with a unique exception also named :exc:`anydbm.error` as the first
    item --- the latter is used when :exc:`anydbm.error` is raised.
 
-The object returned by :func:`open` supports most of the same functionality as
+The object returned by :func:`.open` supports most of the same functionality as
 dictionaries; keys and their corresponding values can be stored, retrieved, and
 deleted, and the :meth:`has_key` and :meth:`keys` methods are available.  Keys
 and values must always be strings.
diff --git a/Doc/library/audioop.rst b/Doc/library/audioop.rst
index 8b7aa9e..b497e1f 100644
--- a/Doc/library/audioop.rst
+++ b/Doc/library/audioop.rst
@@ -228,7 +228,7 @@
    u-LAW encoding always uses 8 bits samples, so *width* refers only to the sample
    width of the output fragment here.
 
-Note that operations such as :func:`mul` or :func:`max` make no distinction
+Note that operations such as :func:`.mul` or :func:`.max` make no distinction
 between mono and stereo fragments, i.e. all samples are treated equal.  If this
 is a problem the stereo fragment should be split into two mono fragments first
 and recombined later.  Here is an example of how to do that::
diff --git a/Doc/library/cd.rst b/Doc/library/cd.rst
index 0043764..f1d9763 100644
--- a/Doc/library/cd.rst
+++ b/Doc/library/cd.rst
@@ -16,8 +16,8 @@
 available only on Silicon Graphics systems.
 
 The way the library works is as follows.  A program opens the CD-ROM device with
-:func:`open` and creates a parser to parse the data from the CD with
-:func:`createparser`.  The object returned by :func:`open` can be used to read
+:func:`.open` and creates a parser to parse the data from the CD with
+:func:`createparser`.  The object returned by :func:`.open` can be used to read
 data from the CD, but also to get status information for the CD-ROM device, and
 to get information about the CD, such as the table of contents.  Data from the
 CD is passed to the parser, which parses the frames, and calls any callback
@@ -133,7 +133,7 @@
 Player Objects
 --------------
 
-Player objects (returned by :func:`open`) have the following methods:
+Player objects (returned by :func:`.open`) have the following methods:
 
 
 .. method:: CD player.allowremoval()
diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst
index 58222ea..138f808 100644
--- a/Doc/library/cgi.rst
+++ b/Doc/library/cgi.rst
@@ -136,8 +136,8 @@
 If a field represents an uploaded file, accessing the value via the
 :attr:`value` attribute or the :func:`getvalue` method reads the entire file in
 memory as a string.  This may not be what you want. You can test for an uploaded
-file by testing either the :attr:`filename` attribute or the :attr:`file`
-attribute.  You can then read the data at leisure from the :attr:`file`
+file by testing either the :attr:`filename` attribute or the :attr:`!file`
+attribute.  You can then read the data at leisure from the :attr:`!file`
 attribute::
 
    fileitem = form["userfile"]
@@ -157,7 +157,7 @@
 The file upload draft standard entertains the possibility of uploading multiple
 files from one field (using a recursive :mimetype:`multipart/\*` encoding).
 When this occurs, the item will be a dictionary-like :class:`FieldStorage` item.
-This can be determined by testing its :attr:`type` attribute, which should be
+This can be determined by testing its :attr:`!type` attribute, which should be
 :mimetype:`multipart/form-data` (or perhaps another MIME type matching
 :mimetype:`multipart/\*`).  In this case, it can be iterated over recursively
 just like the top-level form object.
@@ -165,7 +165,7 @@
 When a form is submitted in the "old" format (as the query string or as a single
 data part of type :mimetype:`application/x-www-form-urlencoded`), the items will
 actually be instances of the class :class:`MiniFieldStorage`.  In this case, the
-:attr:`list`, :attr:`file`, and :attr:`filename` attributes are always ``None``.
+:attr:`!list`, :attr:`!file`, and :attr:`filename` attributes are always ``None``.
 
 A form submitted via POST that also has a query string will contain both
 :class:`FieldStorage` and :class:`MiniFieldStorage` items.
diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst
index 042334a..896b027 100644
--- a/Doc/library/csv.rst
+++ b/Doc/library/csv.rst
@@ -61,7 +61,7 @@
 
    Return a reader object which will iterate over lines in the given *csvfile*.
    *csvfile* can be any object which supports the :term:`iterator` protocol and returns a
-   string each time its :meth:`next` method is called --- file objects and list
+   string each time its :meth:`!next` method is called --- file objects and list
    objects are both suitable.   If *csvfile* is a file object, it must be opened
    with the 'b' flag on platforms where that makes a difference.  An optional
    *dialect* parameter can be given which is used to define a set of parameters
diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst
index 01689a2..c53b105 100644
--- a/Doc/library/curses.rst
+++ b/Doc/library/curses.rst
@@ -186,7 +186,7 @@
 
 .. function:: filter()
 
-   The :func:`filter` routine, if used, must be called before :func:`initscr` is
+   The :func:`.filter` routine, if used, must be called before :func:`initscr` is
    called.  The effect is that, during those calls, LINES is set to 1; the
    capabilities clear, cup, cud, cud1, cuu1, cuu, vpa are disabled; and the home
    string is set to the value of cr. The effect is that the cursor is confined to
diff --git a/Doc/library/dbhash.rst b/Doc/library/dbhash.rst
index 6f9a24f..0b440ab 100644
--- a/Doc/library/dbhash.rst
+++ b/Doc/library/dbhash.rst
@@ -72,7 +72,7 @@
 Database Objects
 ----------------
 
-The database objects returned by :func:`open` provide the methods  common to all
+The database objects returned by :func:`.open` provide the methods  common to all
 the DBM-style databases and mapping objects.  The following methods are
 available in addition to the standard methods.
 
@@ -80,7 +80,7 @@
 .. method:: dbhash.first()
 
    It's possible to loop over every key/value pair in the database using this
-   method   and the :meth:`next` method.  The traversal is ordered by the databases
+   method and the :meth:`!next` method.  The traversal is ordered by the databases
    internal hash values, and won't be sorted by the key values.  This method
    returns the starting key.
 
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index ca90291..2a3304c 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -639,7 +639,7 @@
 
    .. method:: max_mag(other[, context])
 
-      Similar to the :meth:`max` method, but the comparison is done using the
+      Similar to the :meth:`.max` method, but the comparison is done using the
       absolute values of the operands.
 
       .. versionadded:: 2.6
@@ -653,7 +653,7 @@
 
    .. method:: min_mag(other[, context])
 
-      Similar to the :meth:`min` method, but the comparison is done using the
+      Similar to the :meth:`.min` method, but the comparison is done using the
       absolute values of the operands.
 
       .. versionadded:: 2.6
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 88e5947..38797ff 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -668,7 +668,7 @@
 
 .. opcode:: FOR_ITER (delta)
 
-   ``TOS`` is an :term:`iterator`.  Call its :meth:`next` method.  If this
+   ``TOS`` is an :term:`iterator`.  Call its :meth:`!next` method.  If this
    yields a new value, push it on the stack (leaving the iterator below it).  If
    the iterator indicates it is exhausted ``TOS`` is popped, and the bytecode
    counter is incremented by *delta*.
diff --git a/Doc/library/dl.rst b/Doc/library/dl.rst
index fdda2f9..a383729 100644
--- a/Doc/library/dl.rst
+++ b/Doc/library/dl.rst
@@ -44,12 +44,12 @@
 
 .. data:: RTLD_LAZY
 
-   Useful as an argument to :func:`open`.
+   Useful as an argument to :func:`.open`.
 
 
 .. data:: RTLD_NOW
 
-   Useful as an argument to :func:`open`.  Note that on systems which do not
+   Useful as an argument to :func:`.open`.  Note that on systems which do not
    support immediate binding, this constant will not appear in the module. For
    maximum portability, use :func:`hasattr` to determine if the system supports
    immediate binding.
@@ -78,7 +78,7 @@
 Dl Objects
 ----------
 
-Dl objects, as returned by :func:`open` above, have the following methods:
+Dl objects, as returned by :func:`.open` above, have the following methods:
 
 
 .. method:: dl.close()
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 4679e70..2f07d29 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -281,10 +281,10 @@
 
 .. exception:: StopIteration
 
-   Raised by an :term:`iterator`\'s :meth:`next` method to signal that there are
-   no further values.  This is derived from :exc:`Exception` rather than
-   :exc:`StandardError`, since this is not considered an error in its normal
-   application.
+   Raised by an :term:`iterator`\'s :meth:`~iterator.next` method to signal that
+   there are no further values.  This is derived from :exc:`Exception` rather
+   than :exc:`StandardError`, since this is not considered an error in its
+   normal application.
 
    .. versionadded:: 2.2
 
diff --git a/Doc/library/fileinput.rst b/Doc/library/fileinput.rst
index 3253a07..ffd109c 100644
--- a/Doc/library/fileinput.rst
+++ b/Doc/library/fileinput.rst
@@ -20,10 +20,10 @@
 This iterates over the lines of all files listed in ``sys.argv[1:]``, defaulting
 to ``sys.stdin`` if the list is empty.  If a filename is ``'-'``, it is also
 replaced by ``sys.stdin``.  To specify an alternative list of filenames, pass it
-as the first argument to :func:`input`.  A single file name is also allowed.
+as the first argument to :func:`.input`.  A single file name is also allowed.
 
 All files are opened in text mode by default, but you can override this by
-specifying the *mode* parameter in the call to :func:`input` or
+specifying the *mode* parameter in the call to :func:`.input` or
 :class:`FileInput()`.  If an I/O error occurs during opening or reading a file,
 :exc:`IOError` is raised.
 
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 55f23b9..704f21d 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -291,7 +291,7 @@
 
    Return an enumerate object. *sequence* must be a sequence, an
    :term:`iterator`, or some other object which supports iteration.  The
-   :meth:`next` method of the iterator returned by :func:`enumerate` returns a
+   :meth:`!next` method of the iterator returned by :func:`enumerate` returns a
    tuple containing a count (from *start* which defaults to 0) and the
    corresponding value obtained from iterating over *iterable*.
    :func:`enumerate` is useful for obtaining an indexed series: ``(0, seq[0])``,
@@ -600,7 +600,7 @@
    does not support either of those protocols, :exc:`TypeError` is raised. If the
    second argument, *sentinel*, is given, then *o* must be a callable object.  The
    iterator created in this case will call *o* with no arguments for each call to
-   its :meth:`next` method; if the value returned is equal to *sentinel*,
+   its :meth:`~iterator.next` method; if the value returned is equal to *sentinel*,
    :exc:`StopIteration` will be raised, otherwise the value will be returned.
 
    One useful application of the second form of :func:`iter` is to read lines of
@@ -704,9 +704,9 @@
 
 .. function:: next(iterator[, default])
 
-   Retrieve the next item from the *iterator* by calling its :meth:`next`
-   method.  If *default* is given, it is returned if the iterator is exhausted,
-   otherwise :exc:`StopIteration` is raised.
+   Retrieve the next item from the *iterator* by calling its
+   :meth:`~iterator.next` method.  If *default* is given, it is returned if the
+   iterator is exhausted, otherwise :exc:`StopIteration` is raised.
 
    .. versionadded:: 2.6
 
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index fdacabb..f2240ec 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -37,7 +37,7 @@
 stream for text.
 
 Argument names are not part of the specification, and only the arguments of
-:func:`open` are intended to be used as keyword arguments.
+:func:`.open` are intended to be used as keyword arguments.
 
 
 Module Interface
@@ -46,7 +46,7 @@
 .. data:: DEFAULT_BUFFER_SIZE
 
    An int containing the default buffer size used by the module's buffered I/O
-   classes.  :func:`open` uses the file's blksize (as obtained by
+   classes.  :func:`.open` uses the file's blksize (as obtained by
    :func:`os.stat`) if possible.
 
 .. function:: open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
@@ -138,8 +138,8 @@
    when the file is closed.  If a filename is given *closefd* has no
    effect but must be ``True`` (the default).
 
-   The type of file object returned by the :func:`open` function depends
-   on the mode.  When :func:`open` is used to open a file in a text mode
+   The type of file object returned by the :func:`.open` function depends
+   on the mode.  When :func:`.open` is used to open a file in a text mode
    (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a
    :class:`TextIOWrapper`. When used to open a file in a binary mode,
    the returned class varies: in read binary mode, it returns a
@@ -250,7 +250,7 @@
       most *limit* bytes will be read.
 
       The line terminator is always ``b'\n'`` for binary files; for text files,
-      the *newlines* argument to :func:`open` can be used to select the line
+      the *newlines* argument to :func:`.open` can be used to select the line
       terminator(s) recognized.
 
    .. method:: readlines([hint])
diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst
index af2fd4b..c8be7af 100644
--- a/Doc/library/locale.rst
+++ b/Doc/library/locale.rst
@@ -454,8 +454,8 @@
 
 .. data:: LC_NUMERIC
 
-   Locale category for formatting numbers.  The functions :func:`format`,
-   :func:`atoi`, :func:`atof` and :func:`str` of the :mod:`locale` module are
+   Locale category for formatting numbers.  The functions :func:`.format`,
+   :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:`locale` module are
    affected by that category.  All other numeric formatting operations are not
    affected.
 
@@ -523,7 +523,7 @@
 
 The only way to perform numeric operations according to the locale is to use the
 special functions defined by this module: :func:`atof`, :func:`atoi`,
-:func:`format`, :func:`str`.
+:func:`.format`, :func:`.str`.
 
 
 .. _embedding-locale:
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 3e648f82..512e105 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -996,7 +996,7 @@
    Handles a record by passing it to all handlers associated with this logger and
    its ancestors (until a false value of *propagate* is found). This method is used
    for unpickled records received from a socket, as well as those created locally.
-   Logger-level filtering is applied using :meth:`filter`.
+   Logger-level filtering is applied using :meth:`~Logger.filter`.
 
 
 .. method:: Logger.makeRecord(name, lvl, fn, lno, msg, args, exc_info [, func, extra])
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
index 3063ad8..51cda8a 100644
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -1530,7 +1530,7 @@
 
 Most of the older mailbox classes have names that differ from the current
 mailbox class names, except for :class:`Maildir`. For this reason, the new
-:class:`Maildir` class defines a :meth:`next` method and its constructor differs
+:class:`Maildir` class defines a :meth:`!next` method and its constructor differs
 slightly from those of the other new mailbox classes.
 
 The older mailbox classes whose names are not the same as their newer
@@ -1543,7 +1543,7 @@
    single file and separated by ``From`` (a.k.a. ``From_``) lines.  The file object
    *fp* points to the mailbox file.  The optional *factory* parameter is a callable
    that should create new message objects.  *factory* is called with one argument,
-   *fp* by the :meth:`next` method of the mailbox object.  The default is the
+   *fp* by the :meth:`!next` method of the mailbox object.  The default is the
    :class:`rfc822.Message` class (see the :mod:`rfc822` module -- and the note
    below).
 
diff --git a/Doc/library/multifile.rst b/Doc/library/multifile.rst
index 0614b86..14b9d37 100644
--- a/Doc/library/multifile.rst
+++ b/Doc/library/multifile.rst
@@ -109,7 +109,7 @@
    an input line, it will be interpreted as a section-divider  or end-marker
    (depending on the decoration, see :rfc:`2045`).  All subsequent reads will
    return the empty string to indicate end-of-file, until a call to :meth:`pop`
-   removes the boundary a or :meth:`next` call reenables it.
+   removes the boundary a or :meth:`.next` call reenables it.
 
    It is possible to push more than one boundary.  Encountering the
    most-recently-pushed boundary will return EOF; encountering any other
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 4cca466..30f8440 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1565,7 +1565,7 @@
 
    .. method:: map_async(func, iterable[, chunksize[, callback]])
 
-      A variant of the :meth:`map` method which returns a result object.
+      A variant of the :meth:`.map` method which returns a result object.
 
       If *callback* is specified then it should be a callable which accepts a
       single argument.  When the result becomes ready *callback* is applied to
@@ -1581,7 +1581,7 @@
       make make the job complete **much** faster than using the default value of
       ``1``.
 
-      Also if *chunksize* is ``1`` then the :meth:`next` method of the iterator
+      Also if *chunksize* is ``1`` then the :meth:`!next` method of the iterator
       returned by the :meth:`imap` method has an optional *timeout* parameter:
       ``next(timeout)`` will raise :exc:`multiprocessing.TimeoutError` if the
       result cannot be returned within *timeout* seconds.
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 24c2191..aeb3b8d 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -606,10 +606,10 @@
 
    .. note::
 
-      This function is intended for low-level I/O.  For normal usage, use the built-in
-      function :func:`open`, which returns a "file object" with :meth:`~file.read` and
-      :meth:`~file.write` methods (and many more).  To wrap a file descriptor in a "file
-      object", use :func:`fdopen`.
+      This function is intended for low-level I/O.  For normal usage, use the
+      built-in function :func:`open`, which returns a "file object" with
+      :meth:`~file.read` and :meth:`~file.write` methods (and many more).  To
+      wrap a file descriptor in a "file object", use :func:`fdopen`.
 
 
 .. function:: openpty()
@@ -754,10 +754,10 @@
 
    .. note::
 
-      Using :func:`access` to check if a user is authorized to e.g. open a file before
-      actually doing so using :func:`open` creates a security hole, because the user
-      might exploit the short time interval  between checking and opening the file to
-      manipulate it.
+      Using :func:`access` to check if a user is authorized to e.g. open a file
+      before actually doing so using :func:`open` creates a security hole,
+      because the user might exploit the short time interval between checking
+      and opening the file to manipulate it.
 
    .. note::
 
diff --git a/Doc/library/ossaudiodev.rst b/Doc/library/ossaudiodev.rst
index d8ff3f2..37ead5d 100644
--- a/Doc/library/ossaudiodev.rst
+++ b/Doc/library/ossaudiodev.rst
@@ -120,7 +120,7 @@
 parameters at once.  This is more convenient, but may not be as flexible in all
 cases.
 
-The audio device objects returned by :func:`open` define the following methods
+The audio device objects returned by :func:`.open` define the following methods
 and (read-only) attributes:
 
 
diff --git a/Doc/library/posixfile.rst b/Doc/library/posixfile.rst
index aaacc22..c27e412 100644
--- a/Doc/library/posixfile.rst
+++ b/Doc/library/posixfile.rst
@@ -24,9 +24,8 @@
 methods and adds the methods described below.  This module only works for
 certain flavors of Unix, since it uses :func:`fcntl.fcntl` for file locking.
 
-To instantiate a posixfile object, use the :func:`open` function in the
-:mod:`posixfile` module.  The resulting object looks and feels roughly the same
-as a standard file object.
+To instantiate a posixfile object, use the :func:`posixfile.open` function.  The
+resulting object looks and feels roughly the same as a standard file object.
 
 The :mod:`posixfile` module defines the following constants:
 
diff --git a/Doc/library/pyclbr.rst b/Doc/library/pyclbr.rst
index a5d8494..36b46f4 100644
--- a/Doc/library/pyclbr.rst
+++ b/Doc/library/pyclbr.rst
@@ -78,7 +78,7 @@
 .. attribute:: Class.lineno
 
    The line number of the ``class`` statement within the file named by
-   :attr:`file`.
+   :attr:`~Class.file`.
 
 
 .. _pyclbr-function-objects:
@@ -109,5 +109,5 @@
 .. attribute:: Function.lineno
 
    The line number of the ``def`` statement within the file named by
-   :attr:`file`.
+   :attr:`~Function.file`.
 
diff --git a/Doc/library/repr.rst b/Doc/library/repr.rst
index 2b75257..78284f0 100644
--- a/Doc/library/repr.rst
+++ b/Doc/library/repr.rst
@@ -27,16 +27,16 @@
 
 .. data:: aRepr
 
-   This is an instance of :class:`Repr` which is used to provide the :func:`repr`
+   This is an instance of :class:`Repr` which is used to provide the :func:`.repr`
    function described below.  Changing the attributes of this object will affect
-   the size limits used by :func:`repr` and the Python debugger.
+   the size limits used by :func:`.repr` and the Python debugger.
 
 
 .. function:: repr(obj)
 
-   This is the :meth:`repr` method of ``aRepr``.  It returns a string similar to
-   that returned by the built-in function of the same  name, but with limits on
-   most sizes.
+   This is the :meth:`~Repr.repr` method of ``aRepr``.  It returns a string
+   similar to that returned by the built-in function of the same name, but with
+   limits on most sizes.
 
 
 .. _repr-objects:
@@ -99,7 +99,7 @@
 
 .. method:: Repr.repr1(obj, level)
 
-   Recursive implementation used by :meth:`repr`.  This uses the type of *obj* to
+   Recursive implementation used by :meth:`.repr`.  This uses the type of *obj* to
    determine which formatting method to call, passing it *obj* and *level*.  The
    type-specific methods should call :meth:`repr1` to perform recursive formatting,
    with ``level - 1`` for the value of *level* in the recursive  call.
diff --git a/Doc/library/shelve.rst b/Doc/library/shelve.rst
index 4e18ab1..503db0f 100644
--- a/Doc/library/shelve.rst
+++ b/Doc/library/shelve.rst
@@ -108,7 +108,7 @@
 
 .. class:: BsdDbShelf(dict[, protocol=None[, writeback=False]])
 
-   A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`next`,
+   A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`!next`,
    :meth:`previous`, :meth:`last` and :meth:`set_location` which are available in
    the :mod:`bsddb` module but not in other database modules.  The *dict* object
    passed to the constructor must support those methods.  This is generally
@@ -122,7 +122,7 @@
    A subclass of :class:`Shelf` which accepts a *filename* instead of a dict-like
    object.  The underlying file will be opened using :func:`anydbm.open`.  By
    default, the file will be created and opened for both read and write.  The
-   optional *flag* parameter has the same interpretation as for the :func:`open`
+   optional *flag* parameter has the same interpretation as for the :func:`.open`
    function.  The optional *protocol* and *writeback* parameters have the same
    interpretation as for the :class:`Shelf` class.
 
@@ -174,8 +174,8 @@
       BSD ``db`` database interface.
 
    Module :mod:`dbhash`
-      Thin layer around the :mod:`bsddb` which provides an :func:`open` function like
-      the other database modules.
+      Thin layer around the :mod:`bsddb` which provides an :func:`~dbhash.open`
+      function like the other database modules.
 
    Module :mod:`dbm`
       Standard Unix database interface.
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 2a0a282..6ca886a 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -2168,12 +2168,12 @@
    A file object is its own iterator, for example ``iter(f)`` returns *f* (unless
    *f* is closed).  When a file is used as an iterator, typically in a
    :keyword:`for` loop (for example, ``for line in f: print line``), the
-   :meth:`next` method is called repeatedly.  This method returns the next input
+   :meth:`.next` method is called repeatedly.  This method returns the next input
    line, or raises :exc:`StopIteration` when EOF is hit when the file is open for
    reading (behavior is undefined when the file is open for writing).  In order to
    make a :keyword:`for` loop the most efficient way of looping over the lines of a
    file (a very common operation), the :meth:`next` method uses a hidden read-ahead
-   buffer.  As a consequence of using a read-ahead buffer, combining :meth:`next`
+   buffer.  As a consequence of using a read-ahead buffer, combining :meth:`.next`
    with other file methods (like :meth:`readline`) does not work right.  However,
    using :meth:`seek` to reposition the file to an absolute position will flush the
    read-ahead buffer.
diff --git a/Doc/library/sunau.rst b/Doc/library/sunau.rst
index 9930133..3f231b4 100644
--- a/Doc/library/sunau.rst
+++ b/Doc/library/sunau.rst
@@ -58,18 +58,18 @@
 
 .. function:: openfp(file, mode)
 
-   A synonym for :func:`open`, maintained for backwards compatibility.
+   A synonym for :func:`.open`, maintained for backwards compatibility.
+
 
 The :mod:`sunau` module defines the following exception:
 
-
 .. exception:: Error
 
    An error raised when something is impossible because of Sun AU specs or
    implementation deficiency.
 
-The :mod:`sunau` module defines the following data items:
 
+The :mod:`sunau` module defines the following data items:
 
 .. data:: AUDIO_FILE_MAGIC
 
@@ -104,7 +104,7 @@
 AU_read Objects
 ---------------
 
-AU_read objects, as returned by :func:`open` above, have the following methods:
+AU_read objects, as returned by :func:`.open` above, have the following methods:
 
 
 .. method:: AU_read.close()
@@ -197,7 +197,7 @@
 AU_write Objects
 ----------------
 
-AU_write objects, as returned by :func:`open` above, have the following methods:
+AU_write objects, as returned by :func:`.open` above, have the following methods:
 
 
 .. method:: AU_write.setnchannels(n)
diff --git a/Doc/library/sunaudio.rst b/Doc/library/sunaudio.rst
index 4d67b21..9637b09 100644
--- a/Doc/library/sunaudio.rst
+++ b/Doc/library/sunaudio.rst
@@ -54,7 +54,7 @@
 Audio Device Objects
 --------------------
 
-The audio device objects are returned by :func:`open` define the following
+The audio device objects are returned by :func:`.open` define the following
 methods (except ``control`` objects which only provide :meth:`getinfo`,
 :meth:`setinfo`, :meth:`fileno`, and :meth:`drain`):
 
diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst
index e4838ef..c155d66 100644
--- a/Doc/library/tempfile.rst
+++ b/Doc/library/tempfile.rst
@@ -51,7 +51,7 @@
    The *dir*, *prefix* and *suffix* parameters are passed to :func:`mkstemp`.
 
    The returned object is a true file object on POSIX platforms.  On other
-   platforms, it is a file-like object whose :attr:`file` attribute is the
+   platforms, it is a file-like object whose :attr:`!file` attribute is the
    underlying true file object. This file-like object can be used in a
    :keyword:`with` statement, just like a normal file.
 
@@ -67,7 +67,7 @@
    on Windows NT or later).  If *delete* is true (the default), the file is
    deleted as soon as it is closed.
 
-   The returned object is always a file-like object whose :attr:`file`
+   The returned object is always a file-like object whose :attr:`!file`
    attribute is the underlying true file object. This file-like object can
    be used in a :keyword:`with` statement, just like a normal file.
 
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index 91f6550..51879a0 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -65,8 +65,9 @@
    :noindex:
 
    A factory function that returns a new event object.  An event manages a flag
-   that can be set to true with the :meth:`set` method and reset to false with the
-   :meth:`clear` method.  The :meth:`wait` method blocks until the flag is true.
+   that can be set to true with the :meth:`~Event.set` method and reset to false
+   with the :meth:`clear` method.  The :meth:`wait` method blocks until the flag
+   is true.
 
 
 .. class:: local
@@ -666,7 +667,7 @@
 thread signals an event and other threads wait for it.
 
 An event object manages an internal flag that can be set to true with the
-:meth:`set` method and reset to false with the :meth:`clear` method.  The
+:meth:`~Event.set` method and reset to false with the :meth:`clear` method.  The
 :meth:`wait` method blocks until the flag is true.
 
 
@@ -691,14 +692,15 @@
 .. method:: Event.clear()
 
    Reset the internal flag to false. Subsequently, threads calling :meth:`wait`
-   will block until :meth:`set` is called to set the internal flag to true again.
+   will block until :meth:`.set` is called to set the internal flag to true
+   again.
 
 
 .. method:: Event.wait([timeout])
 
-   Block until the internal flag is true. If the internal flag is true on entry,
-   return immediately.  Otherwise, block until another thread calls :meth:`set` to
-   set the flag to true, or until the optional timeout occurs.
+   Block until the internal flag is true.  If the internal flag is true on
+   entry, return immediately.  Otherwise, block until another thread calls
+   :meth:`.set` to set the flag to true, or until the optional timeout occurs.
 
    When the timeout argument is present and not ``None``, it should be a floating
    point number specifying a timeout for the operation in seconds (or fractions
diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst
index b1a1791..3431f86 100644
--- a/Doc/library/tkinter.rst
+++ b/Doc/library/tkinter.rst
@@ -524,7 +524,7 @@
 There are many useful subclasses of Variable already defined:
 :class:`StringVar`, :class:`IntVar`, :class:`DoubleVar`, and
 :class:`BooleanVar`.  To read the current value of such a variable, call the
-:meth:`get` method on it, and to change its value you call the :meth:`set`
+:meth:`get` method on it, and to change its value you call the :meth:`!set`
 method.  If you follow this protocol, the widget will always track the value of
 the variable, with no further intervention on your part.
 
@@ -665,7 +665,7 @@
    ``"raised"``, ``"sunken"``, ``"flat"``, ``"groove"``, and ``"ridge"``.
 
 scrollcommand
-   This is almost always the :meth:`set` method of some scrollbar widget, but can
+   This is almost always the :meth:`!set` method of some scrollbar widget, but can
    be any widget method that takes a single argument.   Refer to the file
    :file:`Demo/tkinter/matt/canvas-with-scrollbars.py` in the Python source
    distribution for an example.
diff --git a/Doc/library/wave.rst b/Doc/library/wave.rst
index b931fed..3be0343 100644
--- a/Doc/library/wave.rst
+++ b/Doc/library/wave.rst
@@ -33,7 +33,7 @@
 
 .. function:: openfp(file, mode)
 
-   A synonym for :func:`open`, maintained for backwards compatibility.
+   A synonym for :func:`.open`, maintained for backwards compatibility.
 
 
 .. exception:: Error
@@ -47,7 +47,7 @@
 Wave_read Objects
 -----------------
 
-Wave_read objects, as returned by :func:`open`, have the following methods:
+Wave_read objects, as returned by :func:`.open`, have the following methods:
 
 
 .. method:: Wave_read.close()
@@ -134,7 +134,7 @@
 Wave_write Objects
 ------------------
 
-Wave_write objects, as returned by :func:`open`, have the following methods:
+Wave_write objects, as returned by :func:`.open`, have the following methods:
 
 
 .. method:: Wave_write.close()
diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst
index 87b97b1..53829c4 100644
--- a/Doc/library/webbrowser.rst
+++ b/Doc/library/webbrowser.rst
@@ -10,7 +10,7 @@
 
 The :mod:`webbrowser` module provides a high-level interface to allow displaying
 Web-based documents to users. Under most circumstances, simply calling the
-:func:`open` function from this module will do the right thing.
+:func:`.open` function from this module will do the right thing.
 
 Under Unix, graphical browsers are preferred under X11, but text-mode browsers
 will be used if graphical browsers are not available or an X11 display isn't
