Issue #18758: Fixed and improved cross-references.
diff --git a/Doc/howto/unicode.rst b/Doc/howto/unicode.rst
index 486195a..4fc8c5c 100644
--- a/Doc/howto/unicode.rst
+++ b/Doc/howto/unicode.rst
@@ -531,9 +531,10 @@
 of partial coding sequences.  The work of implementing this has already been
 done for you: the built-in :func:`open` function can return a file-like object
 that assumes the file's contents are in a specified encoding and accepts Unicode
-parameters for methods such as :meth:`read` and :meth:`write`.  This works through
-:func:`open`\'s *encoding* and *errors* parameters which are interpreted just
-like those in :meth:`str.encode` and :meth:`bytes.decode`.
+parameters for methods such as :meth:`~io.TextIOBase.read` and
+:meth:`~io.TextIOBase.write`.  This works through:func:`open`\'s *encoding* and
+*errors* parameters which are interpreted just like those in :meth:`str.encode`
+and :meth:`bytes.decode`.
 
 Reading Unicode from a file is therefore simple::
 
@@ -656,7 +657,8 @@
 and behaving like a stream returning data in encoding #2.
 
 For example, if you have an input file *f* that's in Latin-1, you
-can wrap it with a :class:`StreamRecoder` to return bytes encoded in UTF-8::
+can wrap it with a :class:`~codecs.StreamRecoder` to return bytes encoded in
+UTF-8::
 
     new_f = codecs.StreamRecoder(f,
         # en/decoder: used by read() to encode its results and
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
index 7afe9a6..74eeee0 100644
--- a/Doc/howto/urllib2.rst
+++ b/Doc/howto/urllib2.rst
@@ -57,7 +57,7 @@
     html = response.read()
 
 If you wish to retrieve a resource via URL and store it in a temporary location,
-you can do so via the :func:`urlretrieve` function::
+you can do so via the :func:`~urllib.request.urlretrieve` function::
 
     import urllib.request
     local_filename, headers = urllib.request.urlretrieve('http://python.org/')