diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
index 0f59b9a..f8aedcc 100644
--- a/Doc/library/http.client.rst
+++ b/Doc/library/http.client.rst
@@ -486,7 +486,7 @@
 
 .. attribute:: HTTPResponse.debuglevel
 
-   A debugging hook.  If `debuglevel` is greater than zero, messages
+   A debugging hook.  If :attr:`debuglevel` is greater than zero, messages
    will be printed to stdout as the response is read and parsed.
 
 
diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst
index 37a4f1a..cc88acf 100644
--- a/Doc/library/inspect.rst
+++ b/Doc/library/inspect.rst
@@ -387,7 +387,7 @@
 
 .. function:: getargspec(func)
 
-   Get the names and default values of a function's arguments. A
+   Get the names and default values of a Python function's arguments. A
    :term:`named tuple` ``ArgSpec(args, varargs, keywords,
    defaults)`` is returned. *args* is a list of
    the argument names. *varargs* and *varkw* are the names of the ``*`` and
@@ -402,8 +402,8 @@
 
 .. function:: getfullargspec(func)
 
-   Get the names and default values of a function's arguments.  A :term:`named
-   tuple` is returned:
+   Get the names and default values of a Python function's arguments.  A
+   :term:`named tuple` is returned:
 
    ``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults,
    annotations)``
diff --git a/Doc/library/site.rst b/Doc/library/site.rst
index 0fe63a3..bf65d17 100644
--- a/Doc/library/site.rst
+++ b/Doc/library/site.rst
@@ -117,5 +117,5 @@
    Adds a directory to sys.path and processes its pth files.
 
 
-XXX Update documentation
-XXX document python -m site --user-base --user-site
+.. XXX Update documentation
+.. XXX document python -m site --user-base --user-site
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index 5c78345..d377072 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -278,14 +278,6 @@
                 else:
                     raise
 
-.. method:: SSLSocket.unwrap()
-
-   Performs the SSL shutdown handshake, which removes the TLS layer from the
-   underlying socket, and returns the underlying socket object.  This can be
-   used to go from encrypted operation over a connection to unencrypted.  The
-   returned socket should always be used for further communication with the
-   other side of the connection, rather than the original socket
-
 .. method:: SSLSocket.getpeercert(binary_form=False)
 
    If there is no certificate for the peer on the other end of the connection,
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 619d4fb..f0e551e 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -359,7 +359,7 @@
    specific.
 
    If given, *default* will be returned if the object does not provide means to
-   retrieve the size.  Otherwise a `TypeError` will be raised.
+   retrieve the size.  Otherwise a :exc:`TypeError` will be raised.
 
    :func:`getsizeof` calls the object's ``__sizeof__`` method and adds an
    additional garbage collector overhead if the object is managed by the garbage
diff --git a/Doc/library/xmlrpc.server.rst b/Doc/library/xmlrpc.server.rst
index 4a391b7..3cb2c3a 100644
--- a/Doc/library/xmlrpc.server.rst
+++ b/Doc/library/xmlrpc.server.rst
@@ -136,10 +136,10 @@
    server.register_function(adder_function, 'add')
 
    # Register an instance; all the methods of the instance are
-   # published as XML-RPC methods (in this case, just 'div').
+   # published as XML-RPC methods (in this case, just 'mul').
    class MyFuncs:
-       def div(self, x, y):
-           return x // y
+       def mul(self, x, y):
+           return x * y
 
    server.register_instance(MyFuncs())
 
@@ -209,7 +209,8 @@
 Example::
 
    class MyFuncs:
-       def div(self, x, y) : return x // y
+       def mul(self, x, y):
+           return x * y
 
 
    handler = CGIXMLRPCRequestHandler()
