diff --git a/Doc/library/calendar.rst b/Doc/library/calendar.rst
index 1cf958c..f8c14fa 100644
--- a/Doc/library/calendar.rst
+++ b/Doc/library/calendar.rst
@@ -123,7 +123,7 @@
       Print a month's calendar as returned by :meth:`formatmonth`.
 
 
-   .. method:: formatyear(theyear, themonth, w=2, l=1, c=6, m=3)
+   .. method:: formatyear(theyear, w=2, l=1, c=6, m=3)
 
       Return a *m*-column calendar for an entire year as a multi-line string.
       Optional parameters *w*, *l*, and *c* are for date column width, lines per
@@ -152,7 +152,7 @@
       used.
 
 
-   .. method:: formatyear(theyear, themonth, width=3)
+   .. method:: formatyear(theyear, width=3)
 
       Return a year's calendar as an HTML table. *width* (defaulting to 3)
       specifies the number of months per row.
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 7eb838a..555cb31 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -176,7 +176,7 @@
 
    .. note::
 
-      When compiling a string with multi-line statements in ``'single'`` or
+      When compiling a string with multi-line code in ``'single'`` or
       ``'eval'`` mode, input must be terminated by at least one newline
       character.  This is to facilitate detection of incomplete and complete
       statements in the :mod:`code` module.
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index 8fb2603..0d03d8e 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -446,9 +446,9 @@
            socket.sendto(data.upper(), self.client_address)
 
    if __name__ == "__main__":
-      HOST, PORT = "localhost", 9999
-      server = socketserver.UDPServer((HOST, PORT), MyUDPHandler)
-      server.serve_forever()
+       HOST, PORT = "localhost", 9999
+       server = socketserver.UDPServer((HOST, PORT), MyUDPHandler)
+       server.serve_forever()
 
 This is the client side::
 
diff --git a/Doc/library/string.rst b/Doc/library/string.rst
index 759de42..0766894 100644
--- a/Doc/library/string.rst
+++ b/Doc/library/string.rst
@@ -521,13 +521,12 @@
       templates containing dangling delimiters, unmatched braces, or
       placeholders that are not valid Python identifiers.
 
-:class:`Template` instances also provide one public data attribute:
+   :class:`Template` instances also provide one public data attribute:
 
+   .. attribute:: template
 
-.. attribute:: string.template
-
-   This is the object passed to the constructor's *template* argument.  In general,
-   you shouldn't change it, but read-only access is not enforced.
+      This is the object passed to the constructor's *template* argument.  In
+      general, you shouldn't change it, but read-only access is not enforced.
 
 Here is an example of how to use a Template:
 
diff --git a/Doc/library/xml.dom.rst b/Doc/library/xml.dom.rst
index fe21804..45d30d6 100644
--- a/Doc/library/xml.dom.rst
+++ b/Doc/library/xml.dom.rst
@@ -76,7 +76,7 @@
    `Document Object Model (DOM) Level 1 Specification <http://www.w3.org/TR/REC-DOM-Level-1/>`_
       The W3C recommendation for the DOM supported by :mod:`xml.dom.minidom`.
 
-   `Python Language Mapping Specification <http://www.omg.org/docs/formal/02-11-05.pdf>`_
+   `Python Language Mapping Specification <http://www.omg.org/spec/PYTH/1.2/PDF>`_
       This specifies the mapping from OMG IDL to Python.
 
 
diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst
index ae8751e..7e9f4d8 100644
--- a/Doc/library/zipfile.rst
+++ b/Doc/library/zipfile.rst
@@ -19,7 +19,7 @@
 (that is ZIP files that are more than 4 GByte in size).  It supports
 decryption of encrypted files in ZIP archives, but it currently cannot
 create an encrypted file.  Decryption is extremely slow as it is
-implemented in native python rather than C.
+implemented in native Python rather than C.
 
 For other archive formats, see the :mod:`bz2`, :mod:`gzip`, and
 :mod:`tarfile` modules.
