Merged revisions 59605-59624 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r59606 | georg.brandl | 2007-12-29 11:57:00 +0100 (Sat, 29 Dec 2007) | 2 lines

  Some cleanup in the docs.
........
  r59611 | martin.v.loewis | 2007-12-29 19:49:21 +0100 (Sat, 29 Dec 2007) | 2 lines

  Bug #1699: Define _BSD_SOURCE only on OpenBSD.
........
  r59612 | raymond.hettinger | 2007-12-29 23:09:34 +0100 (Sat, 29 Dec 2007) | 1 line

  Simpler documentation for itertools.tee().  Should be backported.
........
  r59613 | raymond.hettinger | 2007-12-29 23:16:24 +0100 (Sat, 29 Dec 2007) | 1 line

  Improve docs for itertools.groupby().  The use of xrange(0) to create a unique object is less obvious than object().
........
  r59620 | christian.heimes | 2007-12-31 15:47:07 +0100 (Mon, 31 Dec 2007) | 3 lines

  Added wininst-9.0.exe executable for VS 2008
  Integrated bdist_wininst into PCBuild9 directory
........
  r59621 | christian.heimes | 2007-12-31 15:51:18 +0100 (Mon, 31 Dec 2007) | 1 line

  Moved PCbuild directory to PC/VS7.1
........
  r59622 | christian.heimes | 2007-12-31 15:59:26 +0100 (Mon, 31 Dec 2007) | 1 line

  Fix paths for build bot
........
  r59623 | christian.heimes | 2007-12-31 16:02:41 +0100 (Mon, 31 Dec 2007) | 1 line

  Fix paths for build bot, part 2
........
  r59624 | christian.heimes | 2007-12-31 16:18:55 +0100 (Mon, 31 Dec 2007) | 1 line

  Renamed PCBuild9 directory to PCBuild
........
diff --git a/Doc/library/aepack.rst b/Doc/library/aepack.rst
index 0ee93e5..daaa9b2 100644
--- a/Doc/library/aepack.rst
+++ b/Doc/library/aepack.rst
@@ -6,9 +6,7 @@
    :platform: Mac
    :synopsis: Conversion between Python variables and AppleEvent data containers.
 .. sectionauthor:: Vincent Marchetti <vincem@en.com>
-
-
-.. % \moduleauthor{Jack Jansen?}{email}
+.. moduleauthor:: Jack Jansen
 
 The :mod:`aepack` module defines functions for converting (packing) Python
 variables to AppleEvent descriptors and back (unpacking). Within Python the
diff --git a/Doc/library/aetools.rst b/Doc/library/aetools.rst
index b5fd4ad..da427eb 100644
--- a/Doc/library/aetools.rst
+++ b/Doc/library/aetools.rst
@@ -6,9 +6,7 @@
    :platform: Mac
    :synopsis: Basic support for sending Apple Events
 .. sectionauthor:: Jack Jansen <Jack.Jansen@cwi.nl>
-
-
-.. % \moduleauthor{Jack Jansen?}{email}
+.. moduleauthor:: Jack Jansen
 
 The :mod:`aetools` module contains the basic functionality on which Python
 AppleScript client support is built. It also imports and re-exports the core
diff --git a/Doc/library/aetypes.rst b/Doc/library/aetypes.rst
index 0dd0a88..c8c5d80 100644
--- a/Doc/library/aetypes.rst
+++ b/Doc/library/aetypes.rst
@@ -6,9 +6,7 @@
    :platform: Mac
    :synopsis: Python representation of the Apple Event Object Model.
 .. sectionauthor:: Vincent Marchetti <vincem@en.com>
-
-
-.. % \moduleauthor{Jack Jansen?}{email}
+.. moduleauthor:: Jack Jansen
 
 The :mod:`aetypes` defines classes used to represent Apple Event data
 descriptors and Apple Event object specifiers.
diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst
index 2ed3c92..6830bae 100644
--- a/Doc/library/asyncore.rst
+++ b/Doc/library/asyncore.rst
@@ -8,13 +8,12 @@
 .. moduleauthor:: Sam Rushing <rushing@nightmare.com>
 .. sectionauthor:: Christopher Petrilli <petrilli@amber.org>
 .. sectionauthor:: Steve Holden <sholden@holdenweb.com>
+.. heavily adapted from original documentation by Sam Rushing
 
 
 This module provides the basic infrastructure for writing asynchronous  socket
 service clients and servers.
 
-.. % Heavily adapted from original documentation by Sam Rushing.
-
 There are only two ways to have a program on a single processor do  "more than
 one thing at a time." Multi-threaded programming is the  simplest and most
 popular way to do it, but there is another very different technique, that lets
diff --git a/Doc/library/audioop.rst b/Doc/library/audioop.rst
index 7779610..8ee2795 100644
--- a/Doc/library/audioop.rst
+++ b/Doc/library/audioop.rst
@@ -19,7 +19,7 @@
 
 This module provides support for a-LAW, u-LAW and Intel/DVI ADPCM encodings.
 
-.. % This para is mostly here to provide an excuse for the index entries...
+.. This para is mostly here to provide an excuse for the index entries...
 
 A few of the more complicated operations only take 16-bit samples, otherwise the
 sample size (in bytes) is always a parameter of the operation.
diff --git a/Doc/library/bisect.rst b/Doc/library/bisect.rst
index 10f72fb..114300e 100644
--- a/Doc/library/bisect.rst
+++ b/Doc/library/bisect.rst
@@ -5,11 +5,7 @@
 .. module:: bisect
    :synopsis: Array bisection algorithms for binary searching.
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
-
-
-.. % LaTeX produced by Fred L. Drake, Jr. <fdrake@acm.org>, with an
-.. % example based on the PyModules FAQ entry by Aaron Watters
-.. % <arw@pythonpros.com>.
+.. example based on the PyModules FAQ entry by Aaron Watters <arw@pythonpros.com>
 
 This module provides support for maintaining a list in sorted order without
 having to sort the list after each insertion.  For long lists of items with
diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst
index 41ebf9d..9f0171c 100644
--- a/Doc/library/cgi.rst
+++ b/Doc/library/cgi.rst
@@ -176,7 +176,7 @@
 sections obsolete --- they are still useful to process file uploads efficiently,
 for example.
 
-.. % XXX: Is this true ?
+.. XXX: Is this true ?
 
 The interface consists of two simple methods. Using the methods you can process
 form data in a generic way, without the need to worry whether only one or more
diff --git a/Doc/library/codeop.rst b/Doc/library/codeop.rst
index 35430b4..456f6dd 100644
--- a/Doc/library/codeop.rst
+++ b/Doc/library/codeop.rst
@@ -7,9 +7,6 @@
 .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 .. sectionauthor:: Michael Hudson <mwh@python.net>
 
-
-.. % LaTeXed from excellent doc-string.
-
 The :mod:`codeop` module provides utilities upon which the Python
 read-eval-print loop can be emulated, as is done in the :mod:`code` module.  As
 a result, you probably don't want to use the module directly; if you want to
@@ -29,7 +26,6 @@
 
 To do just the former:
 
-
 .. function:: compile_command(source[, filename[, symbol]])
 
    Tries to compile *source*, which should be a string of Python code and return a
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index e01c52e..3fd0cc9 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -100,7 +100,7 @@
    where only the most recent activity is of interest.
 
    .. versionchanged:: 2.6
-      Added *maxlen*
+      Added *maxlen* parameter.
 
 Deque objects support the following methods:
 
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst
index 6185aa0..979f351 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -87,7 +87,7 @@
    well. New applications should prefer this version if they don't need to be
    compatible with older versions of Python.
 
-   .. % XXX Need to explain what's safer/more predictable about it.
+   .. XXX Need to explain what's safer/more predictable about it.
 
 
 .. exception:: NoSectionError
diff --git a/Doc/library/constants.rst b/Doc/library/constants.rst
index 0d44b7b..3870874 100644
--- a/Doc/library/constants.rst
+++ b/Doc/library/constants.rst
@@ -15,19 +15,21 @@
 
 .. data:: False
 
-   The false value of the :class:`bool` type.
+   The false value of the :class:`bool` type. Assignments to ``False`` 
+   are illegal and raise a :exc:`SyntaxError`.
 
 
 .. data:: True
 
-   The true value of the :class:`bool` type.
+   The true value of the :class:`bool` type. Assignments to ``True`` 
+   are illegal and raise a :exc:`SyntaxError`.
 
 
 .. data:: None
 
    The sole value of :attr:`types.NoneType`.  ``None`` is frequently used to
    represent the absence of a value, as when default arguments are not passed to a
-   function.
+   function. Assignments to ``None`` are illegal and raise a :exc:`SyntaxError`.
 
 
 .. data:: NotImplemented
@@ -42,11 +44,11 @@
    The same as ``...``. Special value used mostly in conjunction with extended
    slicing syntax for user-defined container data types, as in ::
 
-      val = container[1:5, 7:10, ...]
+   .. XXX Someone who understands extended slicing should fill in here.
 
 
 .. data:: __debug__
 
-   A boolean value that is :data:`True` if Python was not started with the
-   ``-O`` command line option.  Its value is used indirectly by the
-   :keyword:`assert` statement, but it can also be used directly in code.
+   This constant is true if Python was not started with an :option:`-O` option.
+   Assignments to :const:`__debug__` are illegal and raise a :exc:`SyntaxError`.
+   See also the :keyword:`assert` statement.
diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst
index 0abee4d..485cfc5 100644
--- a/Doc/library/copy.rst
+++ b/Doc/library/copy.rst
@@ -21,8 +21,6 @@
 
 For module specific errors, :exc:`copy.error` is raised.
 
-.. % 
-
 The difference between shallow and deep copying is only relevant for compound
 objects (objects that contain other objects, like lists or class instances):
 
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index c759832..bbe4408 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -69,7 +69,7 @@
    <CDLL 'libc.so.6', handle ... at ...>
    >>>
 
-.. % XXX Add section for Mac OS X.
+.. XXX Add section for Mac OS X.
 
 
 .. _ctypes-accessing-functions-from-loaded-dlls:
@@ -1256,10 +1256,6 @@
 
 ``long double`` is not implemented.
 
-.. % Local Variables:
-.. % compile-command: "make.bat"
-.. % End:
-
 
 .. _ctypes-ctypes-reference:
 
diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst
index 046b796..07ccc55 100644
--- a/Doc/library/curses.rst
+++ b/Doc/library/curses.rst
@@ -1167,7 +1167,7 @@
 Keys are referred to by integer constants with names starting with  ``KEY_``.
 The exact keycaps available are system dependent.
 
-.. % XXX should this table be alphabetized?
+.. XXX this table is far too large! should it be alphabetized?
 
 +-------------------+--------------------------------------------+
 | Key constant      | Key                                        |
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index adc1664..3fad2fb 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -1,6 +1,3 @@
-.. % XXX what order should the types be discussed in?
-
-
 :mod:`datetime` --- Basic date and time types
 =============================================
 
@@ -10,6 +7,7 @@
 .. sectionauthor:: Tim Peters <tim@zope.com>
 .. sectionauthor:: A.M. Kuchling <amk@amk.ca>
 
+.. XXX what order should the types be discussed in?
 
 The :mod:`datetime` module supplies classes for manipulating dates and times in
 both simple and complex ways.  While date and time arithmetic is supported, the
@@ -202,7 +200,7 @@
 
 Supported operations:
 
-.. % XXX this table is too wide!
+.. XXX this table is too wide!
 
 +--------------------------------+-----------------------------------------------+
 | Operation                      | Result                                        |
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index fecfdeb..218d1c8 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -88,7 +88,7 @@
    * IEEE standard 854-1987, `Unofficial IEEE 854 Text
      <http://www.cs.berkeley.edu/~ejr/projects/754/private/drafts/854-1987/dir.html>`_.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-tutorial:
@@ -263,7 +263,7 @@
 the program manipulates the data no differently than with other Python numeric
 types.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-decimal:
@@ -274,7 +274,7 @@
 
 .. class:: Decimal([value [, context]])
 
-   Constructs a new :class:`Decimal` object based from *value*.
+   Construct a new :class:`Decimal` object based from *value*.
 
    *value* can be an integer, string, tuple, or another :class:`Decimal` object. If
    no *value* is given, returns ``Decimal("0")``.  If *value* is a string, it
@@ -512,7 +512,7 @@
    correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode.
 
 
-.. method:  Decimal.logb([context])
+.. method:: Decimal.logb([context])
 
    For a nonzero number, return the adjusted exponent of its operand
    as a :class:`Decimal` instance.  If the operand is a zero then
@@ -624,7 +624,7 @@
 
 .. method:: Decimal.quantize(exp[, rounding[, context[, watchexp]]])
 
-   Returns a value equal to the first operand after rounding and
+   Return a value equal to the first operand after rounding and
    having the exponent of the second operand.
 
    >>> Decimal("1.41421356").quantize(Decimal("1.000"))
@@ -645,8 +645,8 @@
    the given ``context`` argument; if neither argument is given the
    rounding mode of the current thread's context is used.
 
-   If watchexp is set (default), then an error is returned whenever 
-   the resulting exponent is greater than Emax or less than Etiny.
+   If *watchexp* is set (default), then an error is returned whenever the
+   resulting exponent is greater than :attr:`Emax` or less than :attr:`Etiny`.
 
 .. method:: Decimal.radix()
 
@@ -657,7 +657,7 @@
 
 .. method:: Decimal.remainder_near(other[, context])
 
-   Computes the modulo as either a positive or negative value depending on which is
+   Compute the modulo as either a positive or negative value depending on which is
    closest to zero.  For instance, ``Decimal(10).remainder_near(6)`` returns
    ``Decimal("-2")`` which is closer to zero than ``Decimal("4")``.
 
@@ -720,7 +720,7 @@
 
 .. method:: Decimal.to_integral_exact([rounding[, context]])
 
-   Round the argument to the nearest integer, signaling
+   Round to the nearest integer, signaling
    :const:`Inexact` or :const:`Rounded` as appropriate if rounding
    occurs.  The rounding mode is determined by the ``rounding``
    parameter if given, else by the given ``context``.  If neither
@@ -730,14 +730,14 @@
 
 .. method:: Decimal.to_integral_value([rounding[, context]])
 
-   Rounds to the nearest integer without signaling :const:`Inexact` or
+   Round to the nearest integer without signaling :const:`Inexact` or
    :const:`Rounded`.  If given, applies *rounding*; otherwise, uses the rounding
    method in either the supplied *context* or the current context.
 
 
 .. method:: Decimal.trim()
 
-   Returns its argument with *insignificant* trailing zeros removed.
+   Return the decimal with *insignificant* trailing zeros removed.
    Here, a trailing zero is considered insignificant either if it
    follows the decimal point, or if the exponent of the argument (that
    is, the last element of the :meth:`as_tuple` representation) is
@@ -755,7 +755,7 @@
 exponent and sign are both zero, and whose digits are all either
 :const:`0` or :const:`1`.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-context:
@@ -1023,7 +1023,7 @@
 
    Converts a number to a string using scientific notation.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-signals:
@@ -1144,7 +1144,7 @@
            Rounded
            Subnormal
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-notes:
@@ -1241,7 +1241,7 @@
    >>> 1 / Decimal('Infinity')
    Decimal("0E-1000000026")
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-threads:
@@ -1279,7 +1279,7 @@
    t3.start()
     . . .
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-recipes:
@@ -1435,7 +1435,7 @@
        return +s
 
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-faq:
diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst
index fe956b2..3b17d04 100644
--- a/Doc/library/difflib.rst
+++ b/Doc/library/difflib.rst
@@ -6,9 +6,9 @@
    :synopsis: Helpers for computing differences between objects.
 .. moduleauthor:: Tim Peters <tim_one@users.sourceforge.net>
 .. sectionauthor:: Tim Peters <tim_one@users.sourceforge.net>
+.. Markup by Fred L. Drake, Jr. <fdrake@acm.org>
 
 
-.. % LaTeXification by Fred L. Drake, Jr. <fdrake@acm.org>.
 
 This module provides classes and functions for comparing sequences. It
 can be used for example, for comparing files, and can produce difference
@@ -378,6 +378,12 @@
    then ``i+n != i'`` or ``j+n != j'``; in other words, adjacent triples always
    describe non-adjacent equal blocks.
 
+   .. XXX Explain why a dummy is used!
+
+   .. versionchanged:: 2.5
+      The guarantee that adjacent triples always describe non-adjacent blocks was
+      implemented.
+
    ::
 
       >>> s = SequenceMatcher(None, "abxcd", "abcd")
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 2616295..41cbe7f 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -452,13 +452,6 @@
    Unpacks TOS into *count* individual values, which are put onto the stack
    right-to-left.
 
-.. % \begin{opcodedesc}{UNPACK_LIST}{count}
-.. % This opcode is obsolete.
-.. % \end{opcodedesc}
-.. % \begin{opcodedesc}{UNPACK_ARG}{count}
-.. % This opcode is obsolete.
-.. % \end{opcodedesc}
-
 
 .. opcode:: DUP_TOPX (count)
 
@@ -486,10 +479,6 @@
 
    Works as ``DELETE_NAME``, but deletes a global name.
 
-.. % \begin{opcodedesc}{UNPACK_VARARG}{argc}
-.. % This opcode is obsolete.
-.. % \end{opcodedesc}
-
 
 .. opcode:: LOAD_CONST (consti)
 
@@ -577,22 +566,11 @@
    the iterator indicates it is exhausted ``TOS`` is popped, and the byte code
    counter is incremented by *delta*.
 
-.. % \begin{opcodedesc}{FOR_LOOP}{delta}
-.. % This opcode is obsolete.
-.. % \end{opcodedesc}
-.. % \begin{opcodedesc}{LOAD_LOCAL}{namei}
-.. % This opcode is obsolete.
-.. % \end{opcodedesc}
-
 
 .. opcode:: LOAD_GLOBAL (namei)
 
    Loads the global named ``co_names[namei]`` onto the stack.
 
-.. % \begin{opcodedesc}{SET_FUNC_ARGS}{argc}
-.. % This opcode is obsolete.
-.. % \end{opcodedesc}
-
 
 .. opcode:: SETUP_LOOP (delta)
 
@@ -690,7 +668,7 @@
 
    Pushes a slice object on the stack.  *argc* must be 2 or 3.  If it is 2,
    ``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is
-   pushed. See the ``slice()`` built-in function for more information.
+   pushed. See the :func:`slice` built-in function for more information.
 
 
 .. opcode:: EXTENDED_ARG (ext)
diff --git a/Doc/library/dl.rst b/Doc/library/dl.rst
index ff42619..de641e3 100644
--- a/Doc/library/dl.rst
+++ b/Doc/library/dl.rst
@@ -7,9 +7,6 @@
    :synopsis: Call C functions in shared objects.
 .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 
-
-.. % ?????????? Anyone????????????
-
 The :mod:`dl` module defines an interface to the :cfunc:`dlopen` function, which
 is the most common interface on Unix platforms for handling dynamically linked
 libraries. It allows the program to call arbitrary functions in such a library.
diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst
index 99a2921..04bc219 100644
--- a/Doc/library/doctest.rst
+++ b/Doc/library/doctest.rst
@@ -691,12 +691,7 @@
 surprise you a few times, as you learn exactly what Python does and doesn't
 guarantee about output.  For example, when printing a dict, Python doesn't
 guarantee that the key-value pairs will be printed in any particular order, so a
-test like
-
-.. % Hey! What happened to Monty Python examples?
-.. % Tim: ask Guido -- it's his example!
-
-::
+test like ::
 
    >>> foo()
    {"Hermione": "hippogryph", "Harry": "broomstick"}
diff --git a/Doc/library/email.rst b/Doc/library/email.rst
index df41563..72fb31d 100644
--- a/Doc/library/email.rst
+++ b/Doc/library/email.rst
@@ -1,7 +1,3 @@
-.. % Copyright (C) 2001-2007 Python Software Foundation
-.. % Author: barry@python.org (Barry Warsaw)
-
-
 :mod:`email` --- An email and MIME handling package
 ===================================================
 
@@ -10,6 +6,7 @@
               including MIME documents.
 .. moduleauthor:: Barry A. Warsaw <barry@python.org>
 .. sectionauthor:: Barry A. Warsaw <barry@python.org>
+.. Copyright (C) 2001-2007 Python Software Foundation
 
 
 The :mod:`email` package is a library for managing email messages, including
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 786e825..e7721fa 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -111,16 +111,15 @@
 
 .. exception:: AttributeError
 
-   Raised when an attribute reference or assignment fails.  (When an object does
-   not support attribute references or attribute assignments at all,
-   :exc:`TypeError` is raised.)
-
-   .. % xref to attribute reference?
+   Raised when an attribute reference (see :ref:`attribute-references`) or
+   assignment fails.  (When an object does not support attribute references or
+   attribute assignments at all, :exc:`TypeError` is raised.)
 
 
 .. exception:: EOFError
 
-   Raised when attempting to read beyond the end of a file. (N.B.: the
+   Raised when one of the built-in functions (:func:`input` or :func:`raw_input`)
+   hits an end-of-file condition (EOF) without reading any data. (N.B.: the
    :meth:`file.read` and :meth:`file.readline` methods return an empty string
    when they hit EOF.)
 
@@ -162,14 +161,14 @@
    truncated to fall in the allowed range; if an index is not a plain integer,
    :exc:`TypeError` is raised.)
 
-   .. % XXXJH xref to sequences
+   .. XXX xref to sequences
 
 
 .. exception:: KeyError
 
    Raised when a mapping (dictionary) key is not found in the set of existing keys.
 
-   .. % XXXJH xref to mapping objects?
+   .. XXX xref to mapping objects?
 
 
 .. exception:: KeyboardInterrupt
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 02c709c2..49fd77d 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -28,7 +28,7 @@
    :func:`__import__` function.
 
    For example, the statement ``import spam`` results in the following call:
-   ``__import__('spam',`` ``globals(),`` ``locals(), [], -1)``; the statement
+   ``__import__('spam', globals(), locals(), [], -1)``; the statement
    ``from spam.ham import eggs`` results in ``__import__('spam.ham', globals(),
    locals(), ['eggs'], -1)``.  Note that even though ``locals()`` and ``['eggs']``
    are passed in as arguments, the :func:`__import__` function does not set the
@@ -359,7 +359,7 @@
    access to the standard :mod:`builtins` module and restricted environments are
    propagated.  If the *locals* dictionary is omitted it defaults to the *globals*
    dictionary.  If both dictionaries are omitted, the expression is executed in the
-   environment where :keyword:`eval` is called.  The return value is the result of
+   environment where :func:`eval` is called.  The return value is the result of
    the evaluated expression. Syntax errors are reported as exceptions.  Example::
 
       >>> x = 1
@@ -632,7 +632,7 @@
       The contents of this dictionary should not be modified; changes may not affect
       the values of local variables used by the interpreter.
 
-   Free variables are returned by *locals* when it is called in a function block.
+   Free variables are returned by :func:`locals` when it is called in a function block.
    Modifications of free variables may not affect the values used by the
    interpreter.  Free variables are not returned in class blocks.
 
diff --git a/Doc/library/gensuitemodule.rst b/Doc/library/gensuitemodule.rst
index 3fc5254..dbbc3a0 100644
--- a/Doc/library/gensuitemodule.rst
+++ b/Doc/library/gensuitemodule.rst
@@ -6,9 +6,7 @@
    :platform: Mac
    :synopsis: Create a stub package from an OSA dictionary
 .. sectionauthor:: Jack Jansen <Jack.Jansen@cwi.nl>
-
-
-.. % \moduleauthor{Jack Jansen?}{email}
+.. moduleauthor:: Jack Jansen
 
 The :mod:`gensuitemodule` module creates a Python package implementing stub code
 for the AppleScript suites that are implemented by a specific application,
diff --git a/Doc/library/getopt.rst b/Doc/library/getopt.rst
index b7220a5..35d91d2 100644
--- a/Doc/library/getopt.rst
+++ b/Doc/library/getopt.rst
@@ -9,7 +9,7 @@
 
 This module helps scripts to parse the command line arguments in ``sys.argv``.
 It supports the same conventions as the Unix :cfunc:`getopt` function (including
-the special meanings of arguments of the form '``-``' and '``--``'). Long
+the special meanings of arguments of the form '``-``' and '``--``').  Long
 options similar to those supported by GNU software may be used as well via an
 optional third argument. This module provides a single function and an
 exception:
diff --git a/Doc/library/getpass.rst b/Doc/library/getpass.rst
index 9a45b28..bd384b4 100644
--- a/Doc/library/getpass.rst
+++ b/Doc/library/getpass.rst
@@ -1,4 +1,3 @@
-
 :mod:`getpass` --- Portable password input
 ==========================================
 
@@ -6,9 +5,7 @@
    :synopsis: Portable reading of passwords and retrieval of the userid.
 .. moduleauthor:: Piers Lauder <piers@cs.su.oz.au>
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
-
-
-.. % Windows (& Mac?) support by Guido van Rossum.
+.. Windows (& Mac?) support by Guido van Rossum.
 
 The :mod:`getpass` module provides two functions:
 
diff --git a/Doc/library/heapq.rst b/Doc/library/heapq.rst
index e3b145c..f26d29b 100644
--- a/Doc/library/heapq.rst
+++ b/Doc/library/heapq.rst
@@ -1,4 +1,3 @@
-
 :mod:`heapq` --- Heap queue algorithm
 =====================================
 
@@ -8,9 +7,6 @@
 .. sectionauthor:: Guido van Rossum <guido@python.org>
 .. sectionauthor:: François Pinard
 
-
-.. % Theoretical explanation:
-
 This module provides an implementation of the heap queue algorithm, also known
 as the priority queue algorithm.
 
diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst
index 44b59e9..8209aa9 100644
--- a/Doc/library/idle.rst
+++ b/Doc/library/idle.rst
@@ -1,20 +1,16 @@
 .. _idle:
 
-Idle
+IDLE
 ====
 
 .. moduleauthor:: Guido van Rossum <guido@Python.org>
 
-
-.. % \declaremodule{standard}{idle}
-.. % \modulesynopsis{A Python Integrated Development Environment}
-
 .. index::
-   single: Idle
+   single: IDLE
    single: Python Editor
    single: Integrated Development Environment
 
-Idle is the Python IDE built with the :mod:`Tkinter` GUI toolkit.
+IDLE is the Python IDE built with the :mod:`Tkinter` GUI toolkit.
 
 IDLE has the following features:
 
diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst
index dab22e0..10f3a42 100644
--- a/Doc/library/imaplib.rst
+++ b/Doc/library/imaplib.rst
@@ -1,4 +1,3 @@
-
 :mod:`imaplib` --- IMAP4 protocol client
 ========================================
 
@@ -6,6 +5,10 @@
    :synopsis: IMAP4 protocol client (requires sockets).
 .. moduleauthor:: Piers Lauder <piers@communitysolutions.com.au>
 .. sectionauthor:: Piers Lauder <piers@communitysolutions.com.au>
+.. revised by ESR, January 2000
+.. changes for IMAP4_SSL by Tino Lange <Tino.Lange@isg.de>, March 2002
+.. changes for IMAP4_stream by Piers Lauder <piers@communitysolutions.com.au>,
+   November 2002
 
 
 .. index::
@@ -13,14 +16,6 @@
    pair: IMAP4_SSL; protocol
    pair: IMAP4_stream; protocol
 
-.. % Based on HTML documentation by Piers Lauder
-.. % <piers@communitysolutions.com.au>;
-.. % converted by Fred L. Drake, Jr. <fdrake@acm.org>.
-.. % Revised by ESR, January 2000.
-.. % Changes for IMAP4_SSL by Tino Lange <Tino.Lange@isg.de>, March 2002
-.. % Changes for IMAP4_stream by Piers Lauder
-.. % <piers@communitysolutions.com.au>, November 2002
-
 This module defines three classes, :class:`IMAP4`, :class:`IMAP4_SSL` and
 :class:`IMAP4_stream`, which encapsulate a connection to an IMAP4 server and
 implement a large subset of the IMAP4rev1 client protocol as defined in
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index 54b52e4..21f6476 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -157,7 +157,7 @@
                   key = lambda x: x
               self.keyfunc = key
               self.it = iter(iterable)
-              self.tgtkey = self.currkey = self.currvalue = []
+              self.tgtkey = self.currkey = self.currvalue = object()
           def __iter__(self):
               return self
           def __next__(self):
@@ -350,14 +350,13 @@
    is equivalent to::
 
       def tee(iterable):
-          def gen(next, data={}, cnt=[0]):
+          def gen(next, data={}):
               for i in count():
-                  if i == cnt[0]:
-                      item = data[i] = next()
-                      cnt[0] += 1
+                  if i in data:
+                      yield data.pop(i)
                   else:
-                      item = data.pop(i)
-                  yield item
+                      data[i] = next()
+                      yield data[i]
           it = iter(iterable)
           return (gen(it.__next__), gen(it.__next__))
 
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index 537ac3a..a95e2b5 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -2019,8 +2019,6 @@
 Configuration functions
 ^^^^^^^^^^^^^^^^^^^^^^^
 
-.. % 
-
 The following functions configure the logging module. They are located in the
 :mod:`logging.config` module.  Their use is optional --- you can configure the
 logging module using these functions or by making calls to the main API (defined
@@ -2204,13 +2202,12 @@
    class=logging.Formatter
 
 The ``format`` entry is the overall format string, and the ``datefmt`` entry is
-the :func:`strftime`\ -compatible date/time format string. If empty, the package
-substitutes ISO8601 format date/times, which is almost equivalent to specifying
-the date format string "The ISO8601 format also specifies milliseconds, which
-are appended to the result of using the above format string, with a comma
-separator. An example time in ISO8601 format is ``2003-01-23 00:29:50,411``.
-
-.. % Y-%m-%d %H:%M:%S".
+the :func:`strftime`\ -compatible date/time format string.  If empty, the
+package substitutes ISO8601 format date/times, which is almost equivalent to
+specifying the date format string ``"%Y-%m-%d %H:%M:%S"``.  The ISO8601 format
+also specifies milliseconds, which are appended to the result of using the above
+format string, with a comma separator.  An example time in ISO8601 format is
+``2003-01-23 00:29:50,411``.
 
 The ``class`` entry is optional.  It indicates the name of the formatter's class
 (as a dotted module and class name.)  This option is useful for instantiating a
diff --git a/Doc/library/mhlib.rst b/Doc/library/mhlib.rst
index 0dd5353..f6edf28 100644
--- a/Doc/library/mhlib.rst
+++ b/Doc/library/mhlib.rst
@@ -1,13 +1,9 @@
-
 :mod:`mhlib` --- Access to MH mailboxes
 =======================================
 
 .. module:: mhlib
    :synopsis: Manipulate MH mailboxes from Python.
-
-
-.. % LaTeX'ized from the comments in the module by Skip Montanaro
-.. % <skip@pobox.com>.
+.. sectionauthor:: Skip Montanaro <skip@pobox.com>
 
 The :mod:`mhlib` module provides a Python interface to MH folders and their
 contents.
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index c3de3d7..761190d 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -309,8 +309,6 @@
    is supplied, then the returned *list* is an empty list. This is an optional NNTP
    extension, and may not be supported by all servers.
 
-   .. % XXX huh?  Should that be (name, description)?
-
    RFC2980 says "It is suggested that this extension be deprecated".  Use
    :meth:`descriptions` or :meth:`description` instead.
 
diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst
index f5488e7..e6668b6 100644
--- a/Doc/library/optparse.rst
+++ b/Doc/library/optparse.rst
@@ -1,7 +1,3 @@
-.. % THIS FILE IS AUTO-GENERATED!  DO NOT EDIT!
-.. % (Your changes will be lost the next time it is generated.)
-
-
 :mod:`optparse` --- More powerful command line option parser
 ============================================================
 
@@ -18,9 +14,6 @@
 to specify options in the conventional GNU/POSIX syntax, and additionally
 generates usage and help messages for you.
 
-.. % An intro blurb used only when generating LaTeX docs for the Python
-.. % manual (based on README.txt).
-
 Here's an example of using ``optparse`` in a simple script::
 
    from optparse import OptionParser
@@ -70,8 +63,6 @@
 where the value of *yourscript* is determined at runtime (normally from
 ``sys.argv[0]``).
 
-.. % $Id: intro.txt 413 2004-09-28 00:59:13Z greg $
-
 
 .. _optparse-background:
 
@@ -233,8 +224,6 @@
 implementation becomes.  Too much flexibility has drawbacks as well, of course;
 too many options can overwhelm users and make your code much harder to maintain.
 
-.. % $Id: tao.txt 413 2004-09-28 00:59:13Z greg $
-
 
 .. _optparse-tutorial:
 
@@ -652,8 +641,6 @@
    if __name__ == "__main__":
        main()
 
-.. % $Id: tutorial.txt 515 2006-06-10 15:37:45Z gward $
-
 
 .. _optparse-reference-guide:
 
@@ -1329,8 +1316,6 @@
      parser.add_option("--novice", action="store_const",
                        dest="mode", const="novice")
 
-.. % $Id: reference.txt 519 2006-06-11 14:39:11Z gward $
-
 
 .. _optparse-option-callbacks:
 
@@ -1626,8 +1611,6 @@
 (probably causing an error), rather than as arguments to ``"-c"``.  Fixing this
 is left as an exercise for the reader.
 
-.. % $Id: callbacks.txt 415 2004-09-30 02:26:17Z greg $
-
 
 .. _optparse-extending-optparse:
 
@@ -1818,6 +1801,3 @@
   about setting a default value for the option destinations in question; they can
   just leave the default as None and :meth:`ensure_value` will take care of
   getting it right when it's needed.
-
-.. % $Id: extending.txt 517 2006-06-10 16:18:11Z gward $
-
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 2a8325a..71e5f36 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -291,9 +291,8 @@
 
    Set the current process' user id. Availability: Unix.
 
-.. % placed in this section since it relates to errno.... a little weak
 
-
+.. placed in this section since it relates to errno.... a little weak
 .. function:: strerror(code)
 
    Return the error message corresponding to the error code in *code*.
diff --git a/Doc/library/ossaudiodev.rst b/Doc/library/ossaudiodev.rst
index 7be838b..e23b049 100644
--- a/Doc/library/ossaudiodev.rst
+++ b/Doc/library/ossaudiodev.rst
@@ -11,33 +11,33 @@
 OSS is available for a wide range of open-source and commercial Unices, and is
 the standard audio interface for Linux and recent versions of FreeBSD.
 
-.. % Things will get more complicated for future Linux versions, since
-.. % ALSA is in the standard kernel as of 2.5.x.  Presumably if you
-.. % use ALSA, you'll have to make sure its OSS compatibility layer
-.. % is active to use ossaudiodev, but you're gonna need it for the vast
-.. % majority of Linux audio apps anyways.
-.. % 
-.. % Sounds like things are also complicated for other BSDs.  In response
-.. % to my python-dev query, Thomas Wouters said:
-.. % 
-.. % > Likewise, googling shows OpenBSD also uses OSS/Free -- the commercial
-.. % > OSS installation manual tells you to remove references to OSS/Free from the
-.. % > kernel :)
-.. % 
-.. % but Aleksander Piotrowsk actually has an OpenBSD box, and he quotes
-.. % from its <soundcard.h>:
-.. % >  * WARNING!  WARNING!
-.. % >  * This is an OSS (Linux) audio emulator.
-.. % >  * Use the Native NetBSD API for developing new code, and this
-.. % >  * only for compiling Linux programs.
-.. % 
-.. % There's also an ossaudio manpage on OpenBSD that explains things
-.. % further.  Presumably NetBSD and OpenBSD have a different standard
-.. % audio interface.  That's the great thing about standards, there are so
-.. % many to choose from ... ;-)
-.. % 
-.. % This probably all warrants a footnote or two, but I don't understand
-.. % things well enough right now to write it!   --GPW
+.. Things will get more complicated for future Linux versions, since
+   ALSA is in the standard kernel as of 2.5.x.  Presumably if you
+   use ALSA, you'll have to make sure its OSS compatibility layer
+   is active to use ossaudiodev, but you're gonna need it for the vast
+   majority of Linux audio apps anyways.
+   
+   Sounds like things are also complicated for other BSDs.  In response
+   to my python-dev query, Thomas Wouters said:
+   
+   > Likewise, googling shows OpenBSD also uses OSS/Free -- the commercial
+   > OSS installation manual tells you to remove references to OSS/Free from the
+   > kernel :)
+   
+   but Aleksander Piotrowsk actually has an OpenBSD box, and he quotes
+   from its <soundcard.h>:
+   >  * WARNING!  WARNING!
+   >  * This is an OSS (Linux) audio emulator.
+   >  * Use the Native NetBSD API for developing new code, and this
+   >  * only for compiling Linux programs.
+   
+   There's also an ossaudio manpage on OpenBSD that explains things
+   further.  Presumably NetBSD and OpenBSD have a different standard
+   audio interface.  That's the great thing about standards, there are so
+   many to choose from ... ;-)
+   
+   This probably all warrants a footnote or two, but I don't understand
+   things well enough right now to write it!   --GPW
 
 
 .. seealso::
@@ -87,6 +87,10 @@
    second is required.  This is a historical artifact for compatibility with the
    older :mod:`linuxaudiodev` module which :mod:`ossaudiodev` supersedes.
 
+   .. XXX it might also be motivated
+      by my unfounded-but-still-possibly-true belief that the default
+      audio device varies unpredictably across operating systems.  -GW
+
 
 .. function:: openmixer([device])
 
diff --git a/Doc/library/othergui.rst b/Doc/library/othergui.rst
index 5a84285..b36568d 100644
--- a/Doc/library/othergui.rst
+++ b/Doc/library/othergui.rst
@@ -5,7 +5,6 @@
 
 There are an number of extension widget sets to :mod:`Tkinter`.
 
-
 .. seealso::
 
    `Python megawidgets <http://pmw.sourceforge.net/>`_
@@ -29,12 +28,10 @@
       since they can operate directly on Python data structures, without having to
       transfer data through the Tk/Tcl layer.
 
-      .. % 
 
 The major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits that are
 also available for Python:
 
-
 .. seealso::
 
    `PyGTK <http://www.pygtk.org/>`_
diff --git a/Doc/library/parser.rst b/Doc/library/parser.rst
index 9323090..b0e509a 100644
--- a/Doc/library/parser.rst
+++ b/Doc/library/parser.rst
@@ -8,13 +8,12 @@
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
 
 
-.. % Copyright 1995 Virginia Polytechnic Institute and State University
-.. % and Fred L. Drake, Jr.  This copyright notice must be distributed on
-.. % all copies, but this document otherwise may be distributed as part
-.. % of the Python distribution.  No fee may be charged for this document
-.. % in any representation, either on paper or electronically.  This
-.. % restriction does not affect other elements in a distributed package
-.. % in any way.
+.. Copyright 1995 Virginia Polytechnic Institute and State University and Fred
+   L. Drake, Jr.  This copyright notice must be distributed on all copies, but
+   this document otherwise may be distributed as part of the Python
+   distribution.  No fee may be charged for this document in any representation,
+   either on paper or electronically.  This restriction does not affect other
+   elements in a distributed package in any way.
 
 .. index:: single: parsing; Python source code
 
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
index c88fc29..7e04f5b 100644
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -1,4 +1,3 @@
-
 :mod:`pickle` --- Python object serialization
 =============================================
 
@@ -12,10 +11,8 @@
 
 .. module:: pickle
    :synopsis: Convert Python objects to streams of bytes and back.
-
-
-.. % Substantial improvements by Jim Kerr <jbkerr@sr.hp.com>.
-.. % Rewritten by Barry Warsaw <barry@zope.com>
+.. sectionauthor:: Jim Kerr <jbkerr@sr.hp.com>.
+.. sectionauthor:: Barry Warsaw <barry@zope.com>
 
 The :mod:`pickle` module implements a fundamental, but powerful algorithm for
 serializing and de-serializing a Python object structure.  "Pickling" is the
@@ -607,10 +604,10 @@
 [#]_  Setting :attr:`persistent_load` to a list is usually used in conjunction
 with the :meth:`noload` method on the Unpickler.
 
-.. % BAW: Both pickle and cPickle support something called
-.. % inst_persistent_id() which appears to give unknown types a second
-.. % shot at producing a persistent id.  Since Jim Fulton can't remember
-.. % why it was added or what it's for, I'm leaving it undocumented.
+.. BAW: Both pickle and cPickle support something called inst_persistent_id()
+   which appears to give unknown types a second shot at producing a persistent
+   id.  Since Jim Fulton can't remember why it was added or what it's for, I'm
+   leaving it undocumented.
 
 
 .. _pickle-sub:
diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst
index a668075..cddaa58 100644
--- a/Doc/library/platform.rst
+++ b/Doc/library/platform.rst
@@ -194,16 +194,12 @@
 Win95/98 specific
 ^^^^^^^^^^^^^^^^^
 
-
 .. function:: popen(cmd, mode='r', bufsize=None)
 
    Portable :func:`popen` interface.  Find a working popen implementation
    preferring :func:`win32pipe.popen`.  On Windows NT, :func:`win32pipe.popen`
    should work; on Windows 9x it hangs due to bugs in the MS C library.
 
-   .. % This KnowledgeBase article appears to be missing...
-   .. % See also \ulink{MS KnowledgeBase article Q150956}{}.
-
 
 Mac OS Platform
 ---------------
@@ -231,7 +227,7 @@
    Tries to determine the name of the OS distribution name Returns a tuple
    ``(distname, version, id)`` which defaults to the args given as parameters.
 
-.. % Document linux_distribution()?
+.. XXX Document linux_distribution()?
 
 
 .. function:: libc_ver(executable=sys.executable, lib='', version='', chunksize=2048)
diff --git a/Doc/library/poplib.rst b/Doc/library/poplib.rst
index b462ec5..893296f 100644
--- a/Doc/library/poplib.rst
+++ b/Doc/library/poplib.rst
@@ -4,16 +4,11 @@
 
 .. module:: poplib
    :synopsis: POP3 protocol client (requires sockets).
-
+.. sectionauthor:: Andrew T. Csillag
+.. revised by ESR, January 2000
 
 .. index:: pair: POP3; protocol
 
-.. % By Andrew T. Csillag
-.. % Even though I put it into LaTeX, I cannot really claim that I wrote
-.. % it since I just stole most of it from the poplib.py source code and
-.. % the imaplib ``chapter''.
-.. % Revised by ESR, January 2000
-
 This module defines a class, :class:`POP3`, which encapsulates a connection to a
 POP3 server and implements the protocol as defined in :rfc:`1725`.  The
 :class:`POP3` class supports both the minimal and optional command sets.
diff --git a/Doc/library/pprint.rst b/Doc/library/pprint.rst
index 2e4f3f2..22407ed 100644
--- a/Doc/library/pprint.rst
+++ b/Doc/library/pprint.rst
@@ -24,7 +24,7 @@
 
 The :mod:`pprint` module defines one class:
 
-.. % First the implementation class:
+.. First the implementation class:
 
 
 .. class:: PrettyPrinter(...)
@@ -65,8 +65,7 @@
 
 The :class:`PrettyPrinter` class supports several derivative functions:
 
-.. % Now the derivative functions:
-
+.. Now the derivative functions:
 
 .. function:: pformat(object[, indent[, width[, depth]]])
 
@@ -123,9 +122,6 @@
    recursive reference will be represented as ``<Recursion on typename with
    id=number>``.  The representation is not otherwise formatted.
 
-.. % This example is outside the {funcdesc} to keep it from running over
-.. % the right margin.
-
 ::
 
    >>> pprint.saferepr(stuff)
diff --git a/Doc/library/profile.rst b/Doc/library/profile.rst
index cc02436..fe3cadf 100644
--- a/Doc/library/profile.rst
+++ b/Doc/library/profile.rst
@@ -72,47 +72,47 @@
 :mod:`cProfile` is really a compatibility layer on top of the internal
 :mod:`_lsprof` module.
 
-.. % \section{How Is This Profiler Different From The Old Profiler?}
-.. % \nodename{Profiler Changes}
-.. % 
-.. % (This section is of historical importance only; the old profiler
-.. % discussed here was last seen in Python 1.1.)
-.. % 
-.. % The big changes from old profiling module are that you get more
-.. % information, and you pay less CPU time.  It's not a trade-off, it's a
-.. % trade-up.
-.. % 
-.. % To be specific:
-.. % 
-.. % \begin{description}
-.. % 
-.. % \item[Bugs removed:]
-.. % Local stack frame is no longer molested, execution time is now charged
-.. % to correct functions.
-.. % 
-.. % \item[Accuracy increased:]
-.. % Profiler execution time is no longer charged to user's code,
-.. % calibration for platform is supported, file reads are not done \emph{by}
-.. % profiler \emph{during} profiling (and charged to user's code!).
-.. % 
-.. % \item[Speed increased:]
-.. % Overhead CPU cost was reduced by more than a factor of two (perhaps a
-.. % factor of five), lightweight profiler module is all that must be
-.. % loaded, and the report generating module (\module{pstats}) is not needed
-.. % during profiling.
-.. % 
-.. % \item[Recursive functions support:]
-.. % Cumulative times in recursive functions are correctly calculated;
-.. % recursive entries are counted.
-.. % 
-.. % \item[Large growth in report generating UI:]
-.. % Distinct profiles runs can be added together forming a comprehensive
-.. % report; functions that import statistics take arbitrary lists of
-.. % files; sorting criteria is now based on keywords (instead of 4 integer
-.. % options); reports shows what functions were profiled as well as what
-.. % profile file was referenced; output format has been improved.
-.. % 
-.. % \end{description}
+.. \section{How Is This Profiler Different From The Old Profiler?}
+   \nodename{Profiler Changes}
+   
+   (This section is of historical importance only; the old profiler
+   discussed here was last seen in Python 1.1.)
+   
+   The big changes from old profiling module are that you get more
+   information, and you pay less CPU time.  It's not a trade-off, it's a
+   trade-up.
+   
+   To be specific:
+   
+   \begin{description}
+   
+   \item[Bugs removed:]
+   Local stack frame is no longer molested, execution time is now charged
+   to correct functions.
+   
+   \item[Accuracy increased:]
+   Profiler execution time is no longer charged to user's code,
+   calibration for platform is supported, file reads are not done \emph{by}
+   profiler \emph{during} profiling (and charged to user's code!).
+   
+   \item[Speed increased:]
+   Overhead CPU cost was reduced by more than a factor of two (perhaps a
+   factor of five), lightweight profiler module is all that must be
+   loaded, and the report generating module (\module{pstats}) is not needed
+   during profiling.
+   
+   \item[Recursive functions support:]
+   Cumulative times in recursive functions are correctly calculated;
+   recursive entries are counted.
+   
+   \item[Large growth in report generating UI:]
+   Distinct profiles runs can be added together forming a comprehensive
+   report; functions that import statistics take arbitrary lists of
+   files; sorting criteria is now based on keywords (instead of 4 integer
+   options); reports shows what functions were profiled as well as what
+   profile file was referenced; output format has been improved.
+   
+   \end{description}
 
 
 .. _profile-instant:
@@ -172,7 +172,7 @@
 string that is printed. The third method printed out all the statistics.  You
 might try the following sort calls:
 
-.. % (this is to comply with the semantics of the old profiler).
+.. (this is to comply with the semantics of the old profiler).
 
 ::
 
@@ -363,6 +363,8 @@
    a single report.  If additional files need to be combined with data in an
    existing :class:`Stats` object, the :meth:`add` method can be used.
 
+   .. (such as the old system profiler).
+
 
 .. _profile-stats:
 
@@ -457,7 +459,7 @@
    (numeric) is used, only one sort key (the numeric key) will be used, and
    additional arguments will be silently ignored.
 
-   .. % For compatibility with the old profiler,
+   .. For compatibility with the old profiler,
 
 
 .. method:: Stats.reverse_order()
@@ -466,8 +468,7 @@
    within the object.  Note that by default ascending vs descending order is
    properly selected based on the sort key of choice.
 
-   .. % This method is provided primarily for
-   .. % compatibility with the old profiler.
+   .. This method is provided primarily for compatibility with the old profiler.
 
 
 .. method:: Stats.print_stats([restriction, ...])
diff --git a/Doc/library/py_compile.rst b/Doc/library/py_compile.rst
index c815846..de9a80e 100644
--- a/Doc/library/py_compile.rst
+++ b/Doc/library/py_compile.rst
@@ -3,11 +3,8 @@
 
 .. module:: py_compile
    :synopsis: Generate byte-code files from Python source files.
-
-.. % Documentation based on module docstrings, by Fred L. Drake, Jr.
-.. % <fdrake@acm.org>
-
-
+.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
+.. documentation based on module docstrings
 
 .. index:: pair: file; byte-code
 
diff --git a/Doc/library/pyclbr.rst b/Doc/library/pyclbr.rst
index a052a69..788c60c 100644
--- a/Doc/library/pyclbr.rst
+++ b/Doc/library/pyclbr.rst
@@ -24,7 +24,7 @@
    be a sequence, and is used to augment the value of ``sys.path``, which is
    used to locate module source code.
 
-   .. % The 'inpackage' parameter appears to be for internal use only....
+   .. The 'inpackage' parameter appears to be for internal use only....
 
 
 .. function:: readmodule_ex(module[, path])
@@ -35,7 +35,7 @@
    the key ``'__path__'`` in the returned dictionary has as its value a list which
    contains the package search path.
 
-   .. % The 'inpackage' parameter appears to be for internal use only....
+   .. The 'inpackage' parameter appears to be for internal use only....
 
 
 .. _pyclbr-class-objects:
diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst
index fcb7705..29ca540 100644
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -7,14 +7,13 @@
 .. moduleauthor:: Paul Prescod <paul@prescod.net>
 
 
-.. % Markup notes:
-.. % 
-.. % Many of the attributes of the XMLParser objects are callbacks.
-.. % Since signature information must be presented, these are described
-.. % using the methoddesc environment.  Since they are attributes which
-.. % are set by client code, in-text references to these attributes
-.. % should be marked using the \member macro and should not include the
-.. % parentheses used when marking functions and methods.
+.. Markup notes:
+
+   Many of the attributes of the XMLParser objects are callbacks.  Since
+   signature information must be presented, these are described using the method
+   directive.  Since they are attributes which are set by client code, in-text
+   references to these attributes should be marked using the :member: role.
+
 
 .. index:: single: Expat
 
diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index 88912eb..49c5215 100644
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -84,8 +84,6 @@
 
 The special characters are:
 
-.. % 
-
 ``'.'``
    (Dot.)  In the default mode, this matches any character except a newline.  If
    the :const:`DOTALL` flag has been specified, this matches any character
@@ -297,8 +295,6 @@
 If the ordinary character is not on the list, then the resulting RE will match
 the second character.  For example, ``\$`` matches the character ``'$'``.
 
-.. % 
-
 ``\number``
    Matches the contents of the group of the same number.  Groups are numbered
    starting from 1.  For example, ``(.+) \1`` matches ``'the the'`` or ``'55 55'``,
@@ -384,9 +380,6 @@
 a group reference.  As for string literals, octal escapes are always at most
 three digits in length.
 
-.. % Note the lack of a period in the section title; it causes problems
-.. % with readers of the GNU info version.  See http://www.python.org/sf/581414.
-
 
 .. _matching-searching:
 
@@ -406,15 +399,11 @@
 :const:`MULTILINE` mode also immediately following a newline.  The "match"
 operation succeeds only if the pattern matches at the start of the string
 regardless of mode, or at the starting position given by the optional *pos*
-argument regardless of whether a newline precedes it.
-
-.. % Examples from Tim Peters:
-
-::
+argument regardless of whether a newline precedes it.  ::
 
    >>> re.match("c", "abcdef") # No match
    >>> re.search("c", "abcdef")
-  <_sre.SRE_Match object at 0x827e9c0> # Match
+   <_sre.SRE_Match object at 0x827e9c0> # Match
 
 
 .. _contents-of-module-re:
@@ -450,10 +439,9 @@
    but the version using :func:`compile` is more efficient when the expression
    will be used several times in a single program.
 
-   .. % (The compiled version of the last pattern passed to
-   .. % \function{re.match()} or \function{re.search()} is cached, so
-   .. % programs that use only a single regular expression at a time needn't
-   .. % worry about compiling regular expressions.)
+   .. (The compiled version of the last pattern passed to :func:`re.match` or
+      :func:`re.search` is cached, so programs that use only a single regular
+      expression at a time needn't worry about compiling regular expressions.)
 
 
 .. data:: I
diff --git a/Doc/library/sched.rst b/Doc/library/sched.rst
index c262a8d..57f9b5c 100644
--- a/Doc/library/sched.rst
+++ b/Doc/library/sched.rst
@@ -1,4 +1,3 @@
-
 :mod:`sched` --- Event scheduler
 ================================
 
@@ -6,9 +5,6 @@
    :synopsis: General purpose event scheduler.
 .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 
-
-.. % LaTeXed and enhanced from comments in file
-
 .. index:: single: event scheduling
 
 The :mod:`sched` module defines a class which implements a general purpose event
diff --git a/Doc/library/select.rst b/Doc/library/select.rst
index f68a0da..4a97179 100644
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -58,8 +58,6 @@
    class yourself, as long as it has an appropriate :meth:`fileno` method (that
    really returns a file descriptor, not just a random integer).
 
-   .. % 
-
    .. note::
 
       .. index:: single: WinSock
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 3fdaa1f..3275179 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -5,9 +5,7 @@
 .. module:: shutil
    :synopsis: High-level file operations, including copying.
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
-
-
-.. % partly based on the docstrings
+.. partly based on the docstrings
 
 .. index::
    single: file; copying
diff --git a/Doc/library/sndhdr.rst b/Doc/library/sndhdr.rst
index 90d71a9..01a3917 100644
--- a/Doc/library/sndhdr.rst
+++ b/Doc/library/sndhdr.rst
@@ -5,9 +5,7 @@
 .. module:: sndhdr
    :synopsis: Determine type of a sound file.
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
-
-
-.. % Based on comments in the module source file.
+.. Based on comments in the module source file.
 
 .. index::
    single: A-LAW
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 5c3d9f6..a6557e1 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -542,7 +542,7 @@
    file object and socket object may be closed or garbage-collected independently.
    The socket must be in blocking mode (it can not have a timeout). The optional
    *mode* and *bufsize* arguments are interpreted the same way as by the built-in
-   :func:`file` function; see :ref:`built-in-funcs` for more information.
+   :func:`file` function.
 
 
 .. method:: socket.recv(bufsize[, flags])
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index 96fae6b..c900ea7 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -115,9 +115,8 @@
 important for stream services where each client can potentially be connected for
 a long time (if threads or subprocesses cannot be used).
 
-.. % XXX should data and methods be intermingled, or separate?
-.. % how should the distinction between class and instance variables be
-.. % drawn?
+.. XXX should data and methods be intermingled, or separate?
+   how should the distinction between class and instance variables be drawn?
 
 
 Server Objects
@@ -171,8 +170,7 @@
 
 The server classes support the following class variables:
 
-.. % XXX should class variables be covered before instance variables, or
-.. % vice versa?
+.. XXX should class variables be covered before instance variables, or vice versa?
 
 
 .. data:: allow_reuse_address
@@ -199,8 +197,8 @@
 server classes like :class:`TCPServer`; these methods aren't useful to external
 users of the server object.
 
-.. % should the default implementations of these be documented, or should
-.. % it be assumed that the user will look at SocketServer.py?
+.. XXX should the default implementations of these be documented, or should
+   it be assumed that the user will look at SocketServer.py?
 
 
 .. function:: finish_request()
@@ -230,9 +228,9 @@
    or thread to handle the request; the :class:`ForkingMixIn` and
    :class:`ThreadingMixIn` classes do this.
 
-.. % Is there any point in documenting the following two functions?
-.. % What would the purpose of overriding them be: initializing server
-.. % instance variables, adding new network families?
+.. Is there any point in documenting the following two functions?
+   What would the purpose of overriding them be: initializing server
+   instance variables, adding new network families?
 
 
 .. function:: server_activate()
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index 0b569bf..9d12d34 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -349,7 +349,7 @@
    memory overhead. It will probably be better than your own custom
    dictionary-based approach or even a db_row based solution.
 
-   .. % XXX what's a db_row-based solution?
+   .. XXX what's a db_row-based solution?
 
 
 .. attribute:: Connection.text_factory
diff --git a/Doc/library/statvfs.rst b/Doc/library/statvfs.rst
index 6ec7c38..0b32f65 100644
--- a/Doc/library/statvfs.rst
+++ b/Doc/library/statvfs.rst
@@ -1,4 +1,3 @@
-
 :mod:`statvfs` --- Constants used with :func:`os.statvfs`
 =========================================================
 
@@ -7,8 +6,6 @@
 .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 
 
-.. % LaTeX'ed from comments in module
-
 The :mod:`statvfs` module defines constants so interpreting the result if
 :func:`os.statvfs`, which returns a tuple, can be made without remembering
 "magic numbers."  Each of the constants defined in this module is the *index* of
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 196ad49..9763cba 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -162,6 +162,24 @@
 +------------+-------------------------+-------+
 
 .. index::
+   pair: operator; comparison
+   operator: ==
+   operator: <
+   operator: <=
+   operator: >
+   operator: >=
+   operator: !=
+   operator: is
+   operator: is not
+
+Notes:
+
+(1)
+    ``!=`` can also be written ``<>``, but this is an obsolete usage
+    kept for backwards compatibility only. New code should always use
+    ``!=``.
+
+.. index::
    pair: object; numeric
    pair: objects; comparing
 
@@ -335,8 +353,8 @@
    
    .. versionadded:: 2.6
 
-   
-.. % XXXJH exceptions: overflow (when? what operations?) zerodivision
+
+.. XXXJH exceptions: overflow (when? what operations?) zerodivision
 
 
 .. _bitstring-ops:
@@ -1154,6 +1172,8 @@
 Since Python strings have an explicit length, ``%s`` conversions do not assume
 that ``'\0'`` is the end of the string.
 
+.. XXX Examples?
+
 For safety reasons, floating point precisions are clipped to 50; ``%f``
 conversions for numbers whose absolute value is over 1e25 are replaced by ``%g``
 conversions. [#]_  All other errors raise exceptions.
@@ -1845,8 +1865,7 @@
 .. XXX this is quite out of date, must be updated with "io" module
 
 File objects are implemented using C's ``stdio`` package and can be
-created with the built-in :func:`file` and (more usually) :func:`open`
-constructors described in the :ref:`built-in-funcs` section. [#]_ File
+created with the built-in :func:`open` function.  File
 objects are also returned by some other built-in functions and methods,
 such as :func:`os.popen` and :func:`os.fdopen` and the :meth:`makefile`
 method of socket objects. Temporary files can be created using the
@@ -1870,7 +1889,7 @@
 
    As of Python 2.5, you can avoid having to call this method explicitly if you use
    the :keyword:`with` statement.  For example, the following code will
-   automatically close ``f`` when the :keyword:`with` block is exited::
+   automatically close *f* when the :keyword:`with` block is exited::
 
       from __future__ import with_statement
 
@@ -1998,6 +2017,9 @@
 
    Note that not all file objects are seekable.
 
+   .. versionchanged:: 2.6
+      Passing float values as offset has been deprecated.
+
 
 .. method:: file.tell()
 
@@ -2407,9 +2429,6 @@
    strings of meaningless digits without hampering correct use and without having
    to know the exact precision of floating point values on a particular machine.
 
-.. [#] :func:`file` is new in Python 2.2.  The older built-in :func:`open` is an alias
-   for :func:`file`.
-
 .. [#] The advantage of leaving the newline on is that returning an empty string is
    then an unambiguous EOF indication.  It is also possible (in cases where it
    might matter, for example, if you want to make an exact copy of a file while
diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst
index 9e527f1..ee568e6 100644
--- a/Doc/library/struct.rst
+++ b/Doc/library/struct.rst
@@ -175,7 +175,7 @@
 processors are little-endian.
 
 Native size and alignment are determined using the C compiler's
-:keyword:`sizeof` expression.  This is always combined with native byte order.
+``sizeof`` expression.  This is always combined with native byte order.
 
 Standard size and alignment are as follows: no alignment is required for any
 type (so you have to use pad bytes); :ctype:`short` is 2 bytes; :ctype:`int` and
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 368bd4c..0205937 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -458,9 +458,8 @@
    implementation and, where needed, by :mod:`sitecustomize`.  Once used by the
    :mod:`site` module, it is removed from the :mod:`sys` module's namespace.
 
-   .. % Note that \refmodule{site} is not imported if
-   .. % the \programopt{-S} option is passed to the interpreter, in which
-   .. % case this function will remain available.
+   .. Note that :mod:`site` is not imported if the :option:`-S` option is passed
+      to the interpreter, in which case this function will remain available.
 
 
 .. function:: setdlopenflags(n)
diff --git a/Doc/library/tabnanny.rst b/Doc/library/tabnanny.rst
index 4402e78..f43659f 100644
--- a/Doc/library/tabnanny.rst
+++ b/Doc/library/tabnanny.rst
@@ -8,9 +8,7 @@
 .. moduleauthor:: Tim Peters <tim_one@users.sourceforge.net>
 .. sectionauthor:: Peter Funk <pf@artcom-gmbh.de>
 
-
-.. % rudimentary documentation based on module comments, by Peter Funk
-.. % <pf@artcom-gmbh.de>
+.. rudimentary documentation based on module comments
 
 For the time being this module is intended to be called as a script. However it
 is possible to import it into an IDE and use the function :func:`check`
@@ -55,14 +53,11 @@
    This function is used by :func:`check` as a callback parameter to the function
    :func:`tokenize.tokenize`.
 
-.. % XXX FIXME: Document \function{errprint},
-.. % \function{format_witnesses} \class{Whitespace}
-.. % check_equal, indents
-.. % \function{reset_globals}
+.. XXX document errprint, format_witnesses, Whitespace, check_equal, indents,
+   reset_globals
 
 
 .. seealso::
 
    Module :mod:`tokenize`
       Lexical scanner for Python source code.
-
diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst
index 5f18155..9f049c1 100644
--- a/Doc/library/tarfile.rst
+++ b/Doc/library/tarfile.rst
@@ -205,10 +205,6 @@
    `GNU tar manual, Basic Tar Format <http://www.gnu.org/software/tar/manual/html_node/tar_134.html#SEC134>`_
       Documentation for tar archive files, including GNU tar extensions.
 
-.. % -----------------
-.. % TarFile Objects
-.. % -----------------
-
 
 .. _tarfile-objects:
 
@@ -421,10 +417,6 @@
    A dictionary containing key-value pairs of pax global headers.
 
 
-.. % -----------------
-.. % TarInfo Objects
-.. % -----------------
-
 
 .. _tarinfo-objects:
 
@@ -574,10 +566,6 @@
 
    Return :const:`True` if it is one of character device, block device or FIFO.
 
-.. % ------------------------
-.. % Examples
-.. % ------------------------
-
 
 .. _tar-examples:
 
@@ -635,10 +623,6 @@
        tar.extract(tarinfo)
    tar.close()
 
-.. % ------------
-.. % Tar format
-.. % ------------
-
 
 .. _tar-formats:
 
@@ -679,11 +663,6 @@
 * The SunOS tar extended format. This format is a variant of the POSIX.1-2001
   pax format, but is not compatible.
 
-.. % ----------------
-.. % Unicode issues
-.. % ----------------
-
-
 .. _tar-unicode:
 
 Unicode issues
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index 1ba4810..a0f7841 100644
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -33,8 +33,6 @@
 Writing Unit Tests for the :mod:`test` package
 ----------------------------------------------
 
-.. % 
-
 It is preferred that tests that use the :mod:`unittest` module follow a few
 guidelines. One is to name the test module by starting it with ``test_`` and end
 it with the name of the module being tested. The test methods in the test module
diff --git a/Doc/library/thread.rst b/Doc/library/thread.rst
index 6c59954..867a1ff 100644
--- a/Doc/library/thread.rst
+++ b/Doc/library/thread.rst
@@ -63,12 +63,13 @@
    Raise the :exc:`SystemExit` exception.  When not caught, this will cause the
    thread to exit silently.
 
-.. % \begin{funcdesc}{exit_prog}{status}
-.. % Exit all threads and report the value of the integer argument
-.. % \var{status} as the exit status of the entire program.
-.. % \strong{Caveat:} code in pending \keyword{finally} clauses, in this thread
-.. % or in other threads, is not executed.
-.. % \end{funcdesc}
+..
+   function:: exit_prog(status)
+
+      Exit all threads and report the value of the integer argument
+      *status* as the exit status of the entire program.
+      **Caveat:** code in pending :keyword:`finally` clauses, in this thread
+      or in other threads, is not executed.
 
 
 .. function:: allocate_lock()
diff --git a/Doc/library/tix.rst b/Doc/library/tix.rst
index abe3ca5..f4bb20f 100644
--- a/Doc/library/tix.rst
+++ b/Doc/library/tix.rst
@@ -88,7 +88,7 @@
 demo of all the :mod:`Tix` widgets in the :file:`Demo/tix` directory of the
 standard distribution.
 
-.. % The Python sample code is still being added to Python, hence commented out
+.. The Python sample code is still being added to Python, hence commented out
 
 
 Basic Widgets
@@ -103,8 +103,8 @@
    widget to which a Balloon widget has been bound, a small pop-up window with a
    descriptive message will be shown on the screen.
 
-.. % Python Demo of:
-.. % \ulink{Balloon}{http://tix.sourceforge.net/dist/current/demos/samples/Balloon.tcl}
+.. Python Demo of:
+.. \ulink{Balloon}{http://tix.sourceforge.net/dist/current/demos/samples/Balloon.tcl}
 
 
 .. class:: ButtonBox()
@@ -113,8 +113,8 @@
    <http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixButtonBox.htm>`_
    widget creates a box of buttons, such as is commonly used for ``Ok Cancel``.
 
-.. % Python Demo of:
-.. % \ulink{ButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/BtnBox.tcl}
+.. Python Demo of:
+.. \ulink{ButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/BtnBox.tcl}
 
 
 .. class:: ComboBox()
@@ -125,8 +125,8 @@
    choice by either typing in the entry subwdget or selecting from the listbox
    subwidget.
 
-.. % Python Demo of:
-.. % \ulink{ComboBox}{http://tix.sourceforge.net/dist/current/demos/samples/ComboBox.tcl}
+.. Python Demo of:
+.. \ulink{ComboBox}{http://tix.sourceforge.net/dist/current/demos/samples/ComboBox.tcl}
 
 
 .. class:: Control()
@@ -138,8 +138,8 @@
    the entry. The new value will be checked against the user-defined upper and
    lower limits.
 
-.. % Python Demo of:
-.. % \ulink{Control}{http://tix.sourceforge.net/dist/current/demos/samples/Control.tcl}
+.. Python Demo of:
+.. \ulink{Control}{http://tix.sourceforge.net/dist/current/demos/samples/Control.tcl}
 
 
 .. class:: LabelEntry()
@@ -149,8 +149,8 @@
    widget packages an entry widget and a label into one mega widget. It can be used
    be used to simplify the creation of "entry-form" type of interface.
 
-.. % Python Demo of:
-.. % \ulink{LabelEntry}{http://tix.sourceforge.net/dist/current/demos/samples/LabEntry.tcl}
+.. Python Demo of:
+.. \ulink{LabelEntry}{http://tix.sourceforge.net/dist/current/demos/samples/LabEntry.tcl}
 
 
 .. class:: LabelFrame()
@@ -161,8 +161,8 @@
    widgets inside a LabelFrame widget, one creates the new widgets relative to the
    :attr:`frame` subwidget and manage them inside the :attr:`frame` subwidget.
 
-.. % Python Demo of:
-.. % \ulink{LabelFrame}{http://tix.sourceforge.net/dist/current/demos/samples/LabFrame.tcl}
+.. Python Demo of:
+.. \ulink{LabelFrame}{http://tix.sourceforge.net/dist/current/demos/samples/LabFrame.tcl}
 
 
 .. class:: Meter()
@@ -172,8 +172,8 @@
    can be used to show the progress of a background job which may take a long time
    to execute.
 
-.. % Python Demo of:
-.. % \ulink{Meter}{http://tix.sourceforge.net/dist/current/demos/samples/Meter.tcl}
+.. Python Demo of:
+.. \ulink{Meter}{http://tix.sourceforge.net/dist/current/demos/samples/Meter.tcl}
 
 
 .. class:: OptionMenu()
@@ -182,8 +182,8 @@
    <http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixOptionMenu.htm>`_
    creates a menu button of options.
 
-.. % Python Demo of:
-.. % \ulink{OptionMenu}{http://tix.sourceforge.net/dist/current/demos/samples/OptMenu.tcl}
+.. Python Demo of:
+.. \ulink{OptionMenu}{http://tix.sourceforge.net/dist/current/demos/samples/OptMenu.tcl}
 
 
 .. class:: PopupMenu()
@@ -194,8 +194,8 @@
    of the :mod:`Tix` :class:`PopupMenu` widget is it requires less application code
    to manipulate.
 
-.. % Python Demo of:
-.. % \ulink{PopupMenu}{http://tix.sourceforge.net/dist/current/demos/samples/PopMenu.tcl}
+.. Python Demo of:
+.. \ulink{PopupMenu}{http://tix.sourceforge.net/dist/current/demos/samples/PopMenu.tcl}
 
 
 .. class:: Select()
@@ -205,8 +205,8 @@
    is a container of button subwidgets. It can be used to provide radio-box or
    check-box style of selection options for the user.
 
-.. % Python Demo of:
-.. % \ulink{Select}{http://tix.sourceforge.net/dist/current/demos/samples/Select.tcl}
+.. Python Demo of:
+.. \ulink{Select}{http://tix.sourceforge.net/dist/current/demos/samples/Select.tcl}
 
 
 .. class:: StdButtonBox()
@@ -215,8 +215,8 @@
    <http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixStdButtonBox.htm>`_
    widget is a group of standard buttons for Motif-like dialog boxes.
 
-.. % Python Demo of:
-.. % \ulink{StdButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/StdBBox.tcl}
+.. Python Demo of:
+.. \ulink{StdButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/StdBBox.tcl}
 
 
 File Selectors
@@ -231,8 +231,8 @@
    sub-directories. The user can choose one of the directories displayed in the
    list or change to another directory.
 
-.. % Python Demo of:
-.. % \ulink{DirList}{http://tix.sourceforge.net/dist/current/demos/samples/DirList.tcl}
+.. Python Demo of:
+.. \ulink{DirList}{http://tix.sourceforge.net/dist/current/demos/samples/DirList.tcl}
 
 
 .. class:: DirTree()
@@ -243,8 +243,8 @@
    sub-directories. The user can choose one of the directories displayed in the
    list or change to another directory.
 
-.. % Python Demo of:
-.. % \ulink{DirTree}{http://tix.sourceforge.net/dist/current/demos/samples/DirTree.tcl}
+.. Python Demo of:
+.. \ulink{DirTree}{http://tix.sourceforge.net/dist/current/demos/samples/DirTree.tcl}
 
 
 .. class:: DirSelectDialog()
@@ -255,8 +255,8 @@
    can use this dialog window to navigate through the file system to select the
    desired directory.
 
-.. % Python Demo of:
-.. % \ulink{DirSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/DirDlg.tcl}
+.. Python Demo of:
+.. \ulink{DirSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/DirDlg.tcl}
 
 
 .. class:: DirSelectBox()
@@ -276,8 +276,8 @@
    :class:`ExFileSelectBox` widget is very similar to the standard file dialog on
    MS Windows 3.1.
 
-.. % Python Demo of:
-.. % \ulink{ExFileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/EFileDlg.tcl}
+.. Python Demo of:
+.. \ulink{ExFileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/EFileDlg.tcl}
 
 
 .. class:: FileSelectBox()
@@ -289,8 +289,8 @@
    selected into a :class:`ComboBox` widget so that they can be quickly selected
    again.
 
-.. % Python Demo of:
-.. % \ulink{FileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/FileDlg.tcl}
+.. Python Demo of:
+.. \ulink{FileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/FileDlg.tcl}
 
 
 .. class:: FileEntry()
@@ -301,8 +301,8 @@
    manually. Alternatively, the user can press the button widget that sits next to
    the entry, which will bring up a file selection dialog.
 
-.. % Python Demo of:
-.. % \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl}
+.. Python Demo of:
+.. \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl}
 
 
 Hierachical ListBox
@@ -317,8 +317,8 @@
    file system directory trees. The list entries are indented and connected by
    branch lines according to their places in the hierarchy.
 
-.. % Python Demo of:
-.. % \ulink{HList}{http://tix.sourceforge.net/dist/current/demos/samples/HList1.tcl}
+.. Python Demo of:
+.. \ulink{HList}{http://tix.sourceforge.net/dist/current/demos/samples/HList1.tcl}
 
 
 .. class:: CheckList()
@@ -329,12 +329,12 @@
    similarly to the Tk checkbutton or radiobutton widgets, except it is capable of
    handling many more items than checkbuttons or radiobuttons.
 
-.. % Python Demo of:
-.. % \ulink{ CheckList}{http://tix.sourceforge.net/dist/current/demos/samples/ChkList.tcl}
-.. % Python Demo of:
-.. % \ulink{ScrolledHList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList.tcl}
-.. % Python Demo of:
-.. % \ulink{ScrolledHList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList2.tcl}
+.. Python Demo of:
+.. \ulink{ CheckList}{http://tix.sourceforge.net/dist/current/demos/samples/ChkList.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledHList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledHList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList2.tcl}
 
 
 .. class:: Tree()
@@ -344,10 +344,10 @@
    can be used to display hierarchical data in a tree form. The user can adjust the
    view of the tree by opening or closing parts of the tree.
 
-.. % Python Demo of:
-.. % \ulink{Tree}{http://tix.sourceforge.net/dist/current/demos/samples/Tree.tcl}
-.. % Python Demo of:
-.. % \ulink{Tree (Dynamic)}{http://tix.sourceforge.net/dist/current/demos/samples/DynTree.tcl}
+.. Python Demo of:
+.. \ulink{Tree}{http://tix.sourceforge.net/dist/current/demos/samples/Tree.tcl}
+.. Python Demo of:
+.. \ulink{Tree (Dynamic)}{http://tix.sourceforge.net/dist/current/demos/samples/DynTree.tcl}
 
 
 Tabular ListBox
@@ -364,18 +364,18 @@
    in a two dimensional format and (2) you can use graphical images as well as
    multiple colors and fonts for the list entries.
 
-.. % Python Demo of:
-.. % \ulink{ScrolledTList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/STList1.tcl}
-.. % Python Demo of:
-.. % \ulink{ScrolledTList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/STList2.tcl}
-.. % Grid has yet to be added to Python
-.. % \subsubsection{Grid Widget}
-.. % Python Demo of:
-.. % \ulink{Simple Grid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid0.tcl}
-.. % Python Demo of:
-.. % \ulink{ScrolledGrid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid1.tcl}
-.. % Python Demo of:
-.. % \ulink{Editable Grid}{http://tix.sourceforge.net/dist/current/demos/samples/EditGrid.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledTList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/STList1.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledTList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/STList2.tcl}
+.. Grid has yet to be added to Python
+.. \subsubsection{Grid Widget}
+.. Python Demo of:
+.. \ulink{Simple Grid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid0.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledGrid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid1.tcl}
+.. Python Demo of:
+.. \ulink{Editable Grid}{http://tix.sourceforge.net/dist/current/demos/samples/EditGrid.tcl}
 
 
 Manager Widgets
@@ -390,8 +390,8 @@
    The panes can be arranged either vertically or horizontally.  The user changes
    the sizes of the panes by dragging the resize handle between two panes.
 
-.. % Python Demo of:
-.. % \ulink{PanedWindow}{http://tix.sourceforge.net/dist/current/demos/samples/PanedWin.tcl}
+.. Python Demo of:
+.. \ulink{PanedWindow}{http://tix.sourceforge.net/dist/current/demos/samples/PanedWin.tcl}
 
 
 .. class:: ListNoteBook()
@@ -404,8 +404,8 @@
    can be shown. The user can navigate through these pages by choosing the name of
    the desired page in the :attr:`hlist` subwidget.
 
-.. % Python Demo of:
-.. % \ulink{ListNoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/ListNBK.tcl}
+.. Python Demo of:
+.. \ulink{ListNoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/ListNBK.tcl}
 
 
 .. class:: NoteBook()
@@ -417,18 +417,18 @@
    these pages can be shown. The user can navigate through these pages by choosing
    the visual "tabs" at the top of the NoteBook widget.
 
-.. % Python Demo of:
-.. % \ulink{NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/NoteBook.tcl}
+.. Python Demo of:
+.. \ulink{NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/NoteBook.tcl}
 
-.. % \subsubsection{Scrolled Widgets}
-.. % Python Demo of:
-.. % \ulink{ScrolledListBox}{http://tix.sourceforge.net/dist/current/demos/samples/SListBox.tcl}
-.. % Python Demo of:
-.. % \ulink{ScrolledText}{http://tix.sourceforge.net/dist/current/demos/samples/SText.tcl}
-.. % Python Demo of:
-.. % \ulink{ScrolledWindow}{http://tix.sourceforge.net/dist/current/demos/samples/SWindow.tcl}
-.. % Python Demo of:
-.. % \ulink{Canvas Object View}{http://tix.sourceforge.net/dist/current/demos/samples/CObjView.tcl}
+.. \subsubsection{Scrolled Widgets}
+.. Python Demo of:
+.. \ulink{ScrolledListBox}{http://tix.sourceforge.net/dist/current/demos/samples/SListBox.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledText}{http://tix.sourceforge.net/dist/current/demos/samples/SText.tcl}
+.. Python Demo of:
+.. \ulink{ScrolledWindow}{http://tix.sourceforge.net/dist/current/demos/samples/SWindow.tcl}
+.. Python Demo of:
+.. \ulink{Canvas Object View}{http://tix.sourceforge.net/dist/current/demos/samples/CObjView.tcl}
 
 
 Image Types
@@ -440,10 +440,10 @@
   capabilities to all :mod:`Tix` and :mod:`Tkinter` widgets to create color images
   from XPM files.
 
-  .. % Python Demo of:
-  .. % \ulink{XPM Image In Button}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm.tcl}
-  .. % Python Demo of:
-  .. % \ulink{XPM Image In Menu}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm1.tcl}
+  .. Python Demo of:
+  .. \ulink{XPM Image In Button}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm.tcl}
+  .. Python Demo of:
+  .. \ulink{XPM Image In Menu}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm1.tcl}
 
 * `Compound
   <http://tix.sourceforge.net/dist/current/man/html/TixCmd/compound.htm>`_ image
@@ -453,14 +453,14 @@
   display a bitmap and a text string simultaneously in a Tk :class:`Button`
   widget.
 
-  .. % Python Demo of:
-  .. % \ulink{Compound Image In Buttons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg.tcl}
-  .. % Python Demo of:
-  .. % \ulink{Compound Image In NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg2.tcl}
-  .. % Python Demo of:
-  .. % \ulink{Compound Image Notebook Color Tabs}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg4.tcl}
-  .. % Python Demo of:
-  .. % \ulink{Compound Image Icons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg3.tcl}
+  .. Python Demo of:
+  .. \ulink{Compound Image In Buttons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg.tcl}
+  .. Python Demo of:
+  .. \ulink{Compound Image In NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg2.tcl}
+  .. Python Demo of:
+  .. \ulink{Compound Image Notebook Color Tabs}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg4.tcl}
+  .. Python Demo of:
+  .. \ulink{Compound Image Icons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg3.tcl}
 
 
 Miscellaneous Widgets
diff --git a/Doc/library/tk.rst b/Doc/library/tk.rst
index bb852d2..3e2f100 100644
--- a/Doc/library/tk.rst
+++ b/Doc/library/tk.rst
@@ -36,8 +36,8 @@
    idle.rst
    othergui.rst
 
-.. % Other sections I have in mind are
-.. % Tkinter internals
-.. % Freezing Tkinter applications
+.. Other sections I have in mind are
+   Tkinter internals
+   Freezing Tkinter applications
 
 
diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst
index f6c5c61..4d5cce8 100644
--- a/Doc/library/tkinter.rst
+++ b/Doc/library/tkinter.rst
@@ -59,7 +59,7 @@
    widget of Tk which usually is the main window of an application. Each instance
    has its own associated Tcl interpreter.
 
-   .. % FIXME: The following keyword arguments are currently recognized:
+   .. FIXME: The following keyword arguments are currently recognized:
 
 
 .. function:: Tcl(screenName=None, baseName=None, className='Tk', useTk=0)
@@ -114,8 +114,6 @@
 Tkinter.  Rather, it is intended as a stop gap, providing some introductory
 orientation on the system.
 
-.. % Converted to LaTeX by Mike Clarkson.
-
 Credits:
 
 * Tkinter was written by Steen Lumholt and Guido van Rossum.
@@ -218,8 +216,6 @@
 programmers almost always refer to the classes at the very bottom of the
 hierarchy.
 
-.. % BriefTclTk.html
-
 Notes:
 
 * These classes are provided for the purposes of organizing certain functions
@@ -334,13 +330,6 @@
 How Tk and Tkinter are Related
 ------------------------------
 
-.. % Relationship.html
-
-.. note::
-
-   This was derived from a graphical image; the image will be used more directly in
-   a subsequent version of this document.
-
 From the top down:
 
 Your App Here (Python)
@@ -453,8 +442,6 @@
 
 .. index:: single: packing (widgets)
 
-.. % Packer.html
-
 The packer is one of Tk's geometry-management mechanisms.    Geometry managers
 are used to specify the relative positioning of the positioning of widgets
 within their container - their mutual *master*.  In contrast to the more
@@ -463,8 +450,6 @@
 *filling*, etc - and works everything out to determine the exact placement
 coordinates for you.
 
-.. % See also \citetitle[classes/ClassPacker.html]{the Packer class interface}.
-
 The size of any *master* widget is determined by the size of the "slave widgets"
 inside.  The packer is used to control where slave widgets appear inside the
 master into which they are packed.  You can pack widgets into frames, and frames
@@ -521,8 +506,6 @@
 ``value``.  This connection works both ways: if the variable changes for any
 reason, the widget it's connected to will be updated to reflect the new value.
 
-.. % VarCouplings.html
-
 Unfortunately, in the current implementation of :mod:`Tkinter` it is not
 possible to hand over an arbitrary Python variable to a widget through a
 ``variable`` or ``textvariable`` option.  The only kinds of variables for which
@@ -569,8 +552,6 @@
 
 .. index:: single: window manager (widgets)
 
-.. % WindowMgr.html
-
 In Tk, there is a utility command, ``wm``, for interacting with the window
 manager.  Options to the ``wm`` command allow you to control things like titles,
 placement, icon bitmaps, and the like.  In :mod:`Tkinter`, these commands have
@@ -585,8 +566,6 @@
 This method begins with an underscore to denote the fact that this function is
 part of the implementation, and not an interface to Tk functionality.
 
-.. % See also \citetitle[classes/ClassWm.html]{the Wm class interface}.
-
 Here are some examples of typical usage::
 
    from Tkinter import *
@@ -614,8 +593,6 @@
 
 .. index:: single: Tk Option Data Types
 
-.. % OptionTypes.html
-
 anchor
    Legal values are points of the compass: ``"n"``, ``"ne"``, ``"e"``, ``"se"``,
    ``"s"``, ``"sw"``, ``"w"``, ``"nw"``, and also ``"center"``.
@@ -695,8 +672,6 @@
    single: bind (widgets)
    single: events (widgets)
 
-.. % Bindings.html
-
 The bind method from the widget command allows you to watch for certain events
 and to have a callback function trigger when that event type occurs.  The form
 of the bind method is::
@@ -752,8 +727,6 @@
 point at a specific place in a Text widget, or to particular characters in an
 Entry widget, or to particular menu items in a Menu widget.
 
-.. % Index.html
-
 Entry widget indexes (index, view index, etc.)
    Entry widgets have options that refer to character positions in the text being
    displayed.  You can use these :mod:`Tkinter` functions to access these special
diff --git a/Doc/library/undoc.rst b/Doc/library/undoc.rst
index 942a924..ae8fae7 100644
--- a/Doc/library/undoc.rst
+++ b/Doc/library/undoc.rst
@@ -169,3 +169,27 @@
 in the build tree and either rebuilding Python if the modules are statically
 linked, or building and installing the shared object if using dynamically-loaded
 extensions.
+
+.. (lib-old is empty as of Python 2.5)
+
+   Those which are written in Python will be installed into the directory
+   \file{lib-old/} installed as part of the standard library.  To use
+   these, the directory must be added to \code{sys.path}, possibly using
+   \envvar{PYTHONPATH}.
+
+:mod:`timing`
+   --- Measure time intervals to high resolution (use :func:`time.clock` instead).
+
+
+SGI-specific Extension modules
+==============================
+
+The following are SGI specific, and may be out of touch with the current version
+of reality.
+
+:mod:`cl`
+   --- Interface to the SGI compression library.
+
+:mod:`sv`
+   --- Interface to the "simple video" board on SGI Indigo (obsolete hardware).
+
diff --git a/Doc/library/wave.rst b/Doc/library/wave.rst
index d03f091..b931fed 100644
--- a/Doc/library/wave.rst
+++ b/Doc/library/wave.rst
@@ -1,13 +1,10 @@
-.. % Documentations stolen and LaTeX'ed from comments in file.
-
-
 :mod:`wave` --- Read and write WAV files
 ========================================
 
 .. module:: wave
    :synopsis: Provide an interface to the WAV sound format.
 .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
-
+.. Documentations stolen from comments in file.
 
 The :mod:`wave` module provides a convenient interface to the WAV sound format.
 It does not support compression/decompression, but it does support mono/stereo.
diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst
index fdfbae0..195ac95 100644
--- a/Doc/library/weakref.rst
+++ b/Doc/library/weakref.rst
@@ -13,8 +13,8 @@
 The :mod:`weakref` module allows the Python programmer to create :dfn:`weak
 references` to objects.
 
-.. % When making changes to the examples in this file, be sure to update
-.. % Lib/test/test_weakref.py::libreftest too!
+.. When making changes to the examples in this file, be sure to update
+   Lib/test/test_weakref.py::libreftest too!
 
 In the following, the term :dfn:`referent` means the object which is referred to
 by a weak reference.
@@ -306,7 +306,7 @@
 other data structures without forcing the objects to remain alive, but the
 objects can still be retrieved by ID if they do.
 
-.. % Example contributed by Tim Peters.
+.. Example contributed by Tim Peters.
 
 ::
 
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index 0118032..e43d850 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -27,7 +27,7 @@
 See http://www.wsgi.org for more information about WSGI, and links to tutorials
 and other resources.
 
-.. % XXX If you're just trying to write a web application...
+.. XXX If you're just trying to write a web application...
 
 
 :mod:`wsgiref.util` -- WSGI environment utilities
diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst
index 1af07b3..84a95f1 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -201,11 +201,11 @@
 
 * Operations are used as methods. Since the DOM uses only :keyword:`in`
   parameters, the arguments are passed in normal order (from left to right).
-  There are no optional arguments. :keyword:`void` operations return ``None``.
+  There are no optional arguments. ``void`` operations return ``None``.
 
 * IDL attributes map to instance attributes. For compatibility with the OMG IDL
   language mapping for Python, an attribute ``foo`` can also be accessed through
-  accessor methods :meth:`_get_foo` and :meth:`_set_foo`.  :keyword:`readonly`
+  accessor methods :meth:`_get_foo` and :meth:`_set_foo`.  ``readonly``
   attributes must not be changed; this is not enforced at runtime.
 
 * The types ``short int``, ``unsigned int``, ``unsigned long long``, and
@@ -216,7 +216,7 @@
   Values of type ``DOMString`` may also be ``None`` where allowed to have the IDL
   ``null`` value by the DOM specification from the W3C.
 
-* :keyword:`const` declarations map to variables in their respective scope (e.g.
+* ``const`` declarations map to variables in their respective scope (e.g.
   ``xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE``); they must not be changed.
 
 * ``DOMException`` is currently not supported in :mod:`xml.dom.minidom`.
diff --git a/Doc/library/xml.dom.rst b/Doc/library/xml.dom.rst
index d75db2c..76edd43 100644
--- a/Doc/library/xml.dom.rst
+++ b/Doc/library/xml.dom.rst
@@ -38,13 +38,13 @@
    package <http://pyxml.sourceforge.net/>`_.  Refer to the documentation bundled
    with that package for information on the current state of DOM Level 3 support.
 
-.. % What if your needs are somewhere between SAX and the DOM?  Perhaps
-.. % you cannot afford to load the entire tree in memory but you find the
-.. % SAX model somewhat cumbersome and low-level.  There is also a module
-.. % called xml.dom.pulldom that allows you to build trees of only the
-.. % parts of a document that you need structured access to.  It also has
-.. % features that allow you to find your way around the DOM.
-.. % See http://www.prescod.net/python/pulldom
+.. What if your needs are somewhere between SAX and the DOM?  Perhaps
+   you cannot afford to load the entire tree in memory but you find the
+   SAX model somewhat cumbersome and low-level.  There is also a module
+   called xml.dom.pulldom that allows you to build trees of only the
+   parts of a document that you need structured access to.  It also has
+   features that allow you to find your way around the DOM.
+   See http://www.prescod.net/python/pulldom
 
 DOM applications typically start by parsing some XML into a DOM.  How this is
 accomplished is not covered at all by DOM Level 1, and Level 2 provides only
@@ -148,7 +148,7 @@
 within the class rather than at the module level to conform with the DOM
 specifications.
 
-.. % Should the Node documentation go here?
+.. Should the Node documentation go here?
 
 
 .. _dom-objects:
@@ -893,7 +893,7 @@
 
    This is raised if data is specified for a node which does not support data.
 
-   .. % XXX  a better explanation is needed!
+   .. XXX  a better explanation is needed!
 
 
 .. exception:: NoModificationAllowedErr
@@ -906,7 +906,7 @@
 
    Raised when an invalid or illegal string is specified.
 
-   .. % XXX  how is this different from InvalidCharacterErr ???
+   .. XXX  how is this different from InvalidCharacterErr?
 
 
 .. exception:: WrongDocumentErr
@@ -988,8 +988,8 @@
 a Python string or Unicode string.  Applications should be able to handle
 Unicode whenever a string is returned from the DOM.
 
-The IDL :keyword:`null` value is mapped to ``None``, which may be accepted or
-provided by the implementation whenever :keyword:`null` is allowed by the API.
+The IDL ``null`` value is mapped to ``None``, which may be accepted or
+provided by the implementation whenever ``null`` is allowed by the API.
 
 
 .. _dom-accessor-methods:
@@ -998,7 +998,7 @@
 ^^^^^^^^^^^^^^^^
 
 The mapping from OMG IDL to Python defines accessor functions for IDL
-:keyword:`attribute` declarations in much the way the Java mapping does.
+``attribute`` declarations in much the way the Java mapping does.
 Mapping the IDL declarations ::
 
    readonly attribute string someValue;
@@ -1017,13 +1017,13 @@
 objects are accessed via CORBA. While this does require some additional
 consideration for CORBA DOM clients, the implementers with experience using DOM
 over CORBA from Python do not consider this a problem.  Attributes that are
-declared :keyword:`readonly` may not restrict write access in all DOM
+declared ``readonly`` may not restrict write access in all DOM
 implementations.
 
 In the Python DOM API, accessor functions are not required.  If provided, they
 should take the form defined by the Python IDL mapping, but these methods are
 considered unnecessary since the attributes are accessible directly from Python.
-"Set" accessors should never be provided for :keyword:`readonly` attributes.
+"Set" accessors should never be provided for ``readonly`` attributes.
 
 The IDL definitions do not fully embody the requirements of the W3C DOM API,
 such as the notion of certain objects, such as the return value of
diff --git a/Doc/library/xml.etree.rst b/Doc/library/xml.etree.rst
index 9d39559..a944765 100644
--- a/Doc/library/xml.etree.rst
+++ b/Doc/library/xml.etree.rst
@@ -12,7 +12,7 @@
 this package contains the :mod:`ElementTree`,  :mod:`ElementPath`, and
 :mod:`ElementInclude` modules from the full  ElementTree distribution.
 
-.. % XXX To be continued!
+.. XXX To be continued!
 
 
 .. seealso::
diff --git a/Doc/library/xml.sax.handler.rst b/Doc/library/xml.sax.handler.rst
index 3ef3c83..c31efd8 100644
--- a/Doc/library/xml.sax.handler.rst
+++ b/Doc/library/xml.sax.handler.rst
@@ -205,7 +205,7 @@
    information to the application to expand prefixes in those contexts itself, if
    necessary.
 
-   .. % XXX This is not really the default, is it? MvL
+   .. XXX This is not really the default, is it? MvL
 
    Note that :meth:`startPrefixMapping` and :meth:`endPrefixMapping` events are not
    guaranteed to be properly nested relative to each-other: all
diff --git a/Doc/library/xml.sax.reader.rst b/Doc/library/xml.sax.reader.rst
index bb802ee..5994371 100644
--- a/Doc/library/xml.sax.reader.rst
+++ b/Doc/library/xml.sax.reader.rst
@@ -348,8 +348,8 @@
 
    Return the value of attribute *name*.
 
-.. % getValueByQName, getNameByQName, getQNameByName, getQNames available
-.. % here already, but documented only for derived class.
+.. getValueByQName, getNameByQName, getQNameByName, getQNames available
+.. here already, but documented only for derived class.
 
 
 .. _attributes-ns-objects:
diff --git a/Doc/library/xmlrpclib.rst b/Doc/library/xmlrpclib.rst
index bde0688..176c929 100644
--- a/Doc/library/xmlrpclib.rst
+++ b/Doc/library/xmlrpclib.rst
@@ -1,4 +1,3 @@
-
 :mod:`xmlrpclib` --- XML-RPC client access
 ==========================================
 
@@ -8,8 +7,8 @@
 .. sectionauthor:: Eric S. Raymond <esr@snark.thyrsus.com>
 
 
-.. % Not everything is documented yet.  It might be good to describe
-.. % Marshaller, Unmarshaller, getparser, dumps, loads, and Transport.
+.. XXX Not everything is documented yet.  It might be good to describe
+   Marshaller, Unmarshaller, getparser, dumps, loads, and Transport.
 
 XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a
 transport.  With it, a client can call methods with parameters on a remote
@@ -529,11 +528,9 @@
        print("ERROR", v)
 
 To access an XML-RPC server through a proxy, you need to define  a custom
-transport.  The following example,  written by NoboNobo, shows how:
+transport.  The following example shows how:
 
-.. % fill in original author's name if we ever learn it
-
-.. % Example taken from http://lowlife.jp/nobonobo/wiki/xmlrpcwithproxy.html
+.. Example taken from http://lowlife.jp/nobonobo/wiki/xmlrpcwithproxy.html
 
 ::
 
diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst
index 6c946f8..7515440 100644
--- a/Doc/library/zipfile.rst
+++ b/Doc/library/zipfile.rst
@@ -7,9 +7,6 @@
 .. moduleauthor:: James C. Ahlstrom <jim@interet.com>
 .. sectionauthor:: James C. Ahlstrom <jim@interet.com>
 
-
-.. % LaTeX markup by Fred L. Drake, Jr. <fdrake@acm.org>
-
 The ZIP file format is a common archive and compression standard. This module
 provides tools to create, read, write, append, and list a ZIP file.  Any
 advanced use of this module will require an understanding of the format, as
diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst
index 449394c..dda0b9c 100644
--- a/Doc/library/zlib.rst
+++ b/Doc/library/zlib.rst
@@ -74,8 +74,6 @@
    the algorithm is designed for use as a checksum algorithm, it is not suitable
    for use as a general hash algorithm.
 
-   .. % 
-
 
 .. function:: decompress(string[, wbits[, bufsize]])