Issue #18743: Improved cross-references to the StringIO class.
diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst
index ce11eec..4dd479e 100644
--- a/Doc/library/gzip.rst
+++ b/Doc/library/gzip.rst
@@ -33,7 +33,7 @@
    given a non-trivial value.
 
    The new class instance is based on *fileobj*, which can be a regular file, a
-   :class:`StringIO` object, or any other object which simulates a file.  It
+   :class:`~StringIO.StringIO` object, or any other object which simulates a file.  It
    defaults to ``None``, in which case *filename* is opened to provide a file
    object.
 
@@ -65,9 +65,9 @@
 
    Calling a :class:`GzipFile` object's :meth:`close` method does not close
    *fileobj*, since you might wish to append more material after the compressed
-   data.  This also allows you to pass a :class:`StringIO` object opened for
+   data.  This also allows you to pass a :class:`~StringIO.StringIO` object opened for
    writing as *fileobj*, and retrieve the resulting memory buffer using the
-   :class:`StringIO` object's :meth:`getvalue` method.
+   :class:`StringIO` object's :meth:`~StringIO.StringIO.getvalue` method.
 
    :class:`GzipFile` supports iteration and the :keyword:`with` statement.
 
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
index 3a87c13..c016564 100644
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -661,7 +661,7 @@
 
       In Babyl mailboxes, the headers of a message are not stored contiguously
       with the body of the message. To generate a file-like representation, the
-      headers and body are copied together into a :class:`StringIO` instance
+      headers and body are copied together into a :class:`~StringIO.StringIO` instance
       (from the :mod:`StringIO` module), which has an API identical to that of a
       file. As a result, the file-like object is truly independent of the
       underlying mailbox but does not save memory compared to a string
diff --git a/Doc/library/mimewriter.rst b/Doc/library/mimewriter.rst
index 2070ff6..a30caef 100644
--- a/Doc/library/mimewriter.rst
+++ b/Doc/library/mimewriter.rst
@@ -24,7 +24,7 @@
 
    Return a new instance of the :class:`MimeWriter` class.  The only argument
    passed, *fp*, is a file object to be used for writing. Note that a
-   :class:`StringIO` object could also be used.
+   :class:`~StringIO.StringIO` object could also be used.
 
 
 .. _mimewriter-objects:
diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst
index ada647d..827f5f5 100644
--- a/Doc/library/tempfile.rst
+++ b/Doc/library/tempfile.rst
@@ -93,7 +93,7 @@
    causes the file to roll over to an on-disk file regardless of its size.
 
    The returned object is a file-like object whose :attr:`_file` attribute
-   is either a :class:`StringIO` object or a true file object, depending on
+   is either a :class:`~StringIO.StringIO` object or a true file object, depending on
    whether :func:`rollover` has been called. This file-like object can be
    used in a :keyword:`with` statement, just like a normal file.
 
diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst
index f6984a0..d4e363a 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -58,7 +58,7 @@
 .. function:: parseString(string[, parser])
 
    Return a :class:`Document` that represents the *string*. This method creates a
-   :class:`io.StringIO` object for the string and passes that on to :func:`parse`.
+   :class:`~StringIO.StringIO` object for the string and passes that on to :func:`parse`.
 
 Both functions return a :class:`Document` object representing the content of the
 document.