#6577: fix (hopefully) all links to builtin instead of module/class-specific objects.
diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst
index 435aed1..a87a29c 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 b5994c1..8949465 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 0b498a1..53caff8 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -656,7 +656,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
@@ -670,7 +670,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 9bd65dd..6871d7e 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -705,7 +705,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 ade57a3..1ae00d5 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])``,
@@ -595,7 +595,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
@@ -705,9 +705,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 9e130bf..184e443 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 4847c70..06f4ea9 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -1012,7 +1012,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 01d3f4b..ca15475 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 39d0b45..9522865 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -1580,7 +1580,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
@@ -1596,7 +1596,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/optparse.rst b/Doc/library/optparse.rst
index a1055d8..49371be 100644
--- a/Doc/library/optparse.rst
+++ b/Doc/library/optparse.rst
@@ -286,7 +286,7 @@
 * ``args``, the list of positional arguments leftover after parsing options
 
 This tutorial section only covers the four most important option attributes:
-:attr:`action`, :attr:`type`, :attr:`dest` (destination), and :attr:`help`. Of
+:attr:`action`, :attr:`!type`, :attr:`dest` (destination), and :attr:`help`. Of
 these, :attr:`action` is the most fundamental.
 
 
@@ -834,7 +834,7 @@
    print a usage message including all options and the documentation for them
 
 (If you don't supply an action, the default is ``store``.  For this action, you
-may also supply :attr:`type` and :attr:`dest` option attributes; see below.)
+may also supply :attr:`!type` and :attr:`dest` option attributes; see below.)
 
 As you can see, most actions involve storing or updating a value somewhere.
 :mod:`optparse` always creates a special object for this, conventionally called
@@ -865,7 +865,7 @@
 
    options.filename = "foo"
 
-The :attr:`type` and :attr:`dest` option attributes are almost as important as
+The :attr:`!type` and :attr:`dest` option attributes are almost as important as
 :attr:`action`, but :attr:`action` is the only one that makes sense for *all*
 options.
 
@@ -880,18 +880,18 @@
 guide :mod:`optparse`'s behaviour; a few have required attributes, which you
 must specify for any option using that action.
 
-* ``store`` [relevant: :attr:`type`, :attr:`dest`, ``nargs``, ``choices``]
+* ``store`` [relevant: :attr:`!type`, :attr:`dest`, ``nargs``, ``choices``]
 
   The option must be followed by an argument, which is converted to a value
-  according to :attr:`type` and stored in :attr:`dest`.  If ``nargs`` > 1,
+  according to :attr:`!type` and stored in :attr:`dest`.  If ``nargs`` > 1,
   multiple arguments will be consumed from the command line; all will be converted
-  according to :attr:`type` and stored to :attr:`dest` as a tuple.  See the
+  according to :attr:`!type` and stored to :attr:`dest` as a tuple.  See the
   "Option types" section below.
 
   If ``choices`` is supplied (a list or tuple of strings), the type defaults to
   ``choice``.
 
-  If :attr:`type` is not supplied, it defaults to ``string``.
+  If :attr:`!type` is not supplied, it defaults to ``string``.
 
   If :attr:`dest` is not supplied, :mod:`optparse` derives a destination from the
   first long option string (e.g., ``"--foo-bar"`` implies ``foo_bar``). If there
@@ -943,7 +943,7 @@
      parser.add_option("--clobber", action="store_true", dest="clobber")
      parser.add_option("--no-clobber", action="store_false", dest="clobber")
 
-* ``append`` [relevant: :attr:`type`, :attr:`dest`, ``nargs``, ``choices``]
+* ``append`` [relevant: :attr:`!type`, :attr:`dest`, ``nargs``, ``choices``]
 
   The option must be followed by an argument, which is appended to the list in
   :attr:`dest`.  If no default value for :attr:`dest` is supplied, an empty list
@@ -951,7 +951,7 @@
   the command-line.  If ``nargs`` > 1, multiple arguments are consumed, and a
   tuple of length ``nargs`` is appended to :attr:`dest`.
 
-  The defaults for :attr:`type` and :attr:`dest` are the same as for the ``store``
+  The defaults for :attr:`!type` and :attr:`dest` are the same as for the ``store``
   action.
 
   Example::
@@ -993,7 +993,7 @@
 
      options.verbosity += 1
 
-* ``callback`` [required: ``callback``; relevant: :attr:`type`, ``nargs``,
+* ``callback`` [required: ``callback``; relevant: :attr:`!type`, ``nargs``,
   ``callback_args``, ``callback_kwargs``]
 
   Call the function specified by ``callback``, which is called as  ::
@@ -1066,7 +1066,7 @@
   Determines :mod:`optparse`'s behaviour when this option is seen on the command
   line; the available options are documented above.
 
-* :attr:`type` (default: ``"string"``)
+* :attr:`!type` (default: ``"string"``)
 
   The argument type expected by this option (e.g., ``"string"`` or ``"int"``); the
   available option types are documented below.
@@ -1084,7 +1084,7 @@
 
 * ``nargs`` (default: 1)
 
-  How many arguments of type :attr:`type` should be consumed when this option is
+  How many arguments of type :attr:`!type` should be consumed when this option is
   seen.  If > 1, :mod:`optparse` will store a tuple of values to :attr:`dest`.
 
 * ``const``
@@ -1415,15 +1415,15 @@
 There are several other option attributes that you can supply when you define a
 callback option:
 
-:attr:`type`
+:attr:`!type`
    has its usual meaning: as with the ``store`` or ``append`` actions, it instructs
-   :mod:`optparse` to consume one argument and convert it to :attr:`type`.  Rather
+   :mod:`optparse` to consume one argument and convert it to :attr:`!type`.  Rather
    than storing the converted value(s) anywhere, though, :mod:`optparse` passes it
    to your callback function.
 
 ``nargs``
    also has its usual meaning: if it is supplied and > 1, :mod:`optparse` will
-   consume ``nargs`` arguments, each of which must be convertible to :attr:`type`.
+   consume ``nargs`` arguments, each of which must be convertible to :attr:`!type`.
    It then passes a tuple of converted values to your callback.
 
 ``callback_args``
@@ -1455,8 +1455,8 @@
 
 ``value``
    is the argument to this option seen on the command-line.  :mod:`optparse` will
-   only expect an argument if :attr:`type` is set; the type of ``value`` will be
-   the type implied by the option's type.  If :attr:`type` for this option is
+   only expect an argument if :attr:`!type` is set; the type of ``value`` will be
+   the type implied by the option's type.  If :attr:`!type` for this option is
    ``None`` (no argument expected), then ``value`` will be ``None``.  If ``nargs``
    > 1, ``value`` will be a tuple of values of the appropriate type.
 
@@ -1583,7 +1583,7 @@
 Things get slightly more interesting when you define callback options that take
 a fixed number of arguments.  Specifying that a callback option takes arguments
 is similar to defining a ``store`` or ``append`` option: if you define
-:attr:`type`, then the option takes one argument that must be convertible to
+:attr:`!type`, then the option takes one argument that must be convertible to
 that type; if you further define ``nargs``, then the option takes ``nargs``
 arguments.
 
@@ -1762,7 +1762,7 @@
 "typed" actions
    actions that take a value from the command line and expect it to be of a certain
    type; or rather, a string that can be converted to a certain type.  These
-   options require a :attr:`type` attribute to the Option constructor.
+   options require a :attr:`!type` attribute to the Option constructor.
 
 These are overlapping sets: some default "store" actions are ``store``,
 ``store_const``, ``append``, and ``count``, while the default "typed" actions
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index b83e665..01118de 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 68dfea4..2e47c59 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -2179,12 +2179,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 d8af157..53a72bd 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,13 +692,14 @@
 .. 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`
+   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
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