diff --git a/Doc/Makefile b/Doc/Makefile
index ea62f00..04cca4e 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -16,10 +16,11 @@
 
 help:
 	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html   to make standalone HTML files"
-	@echo "  web    to make file usable by Sphinx.web"
+	@echo "  html     to make standalone HTML files"
+	@echo "  web      to make file usable by Sphinx.web"
 	@echo "  htmlhelp to make HTML files and a HTML help project"
-	@echo "  latex  to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latex    to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  changes  to make an overview over all changed/added/deprecated items"
 
 checkout:
 	@if [ ! -d tools/sphinx ]; then \
@@ -66,6 +67,10 @@
 	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
 	      "run these through (pdf)latex."
 
+changes: BUILDER = changes
+changes: build
+	@echo "The overview file is in build/changes."
+
 clean:
 	-rm -rf build/*
 	-rm -rf tools/sphinx
diff --git a/Doc/README.txt b/Doc/README.txt
index 6e135e9..b6cadd3 100644
--- a/Doc/README.txt
+++ b/Doc/README.txt
@@ -51,6 +51,10 @@
  * "latex", which builds LaTeX source files that can be run with "pdflatex"
    to produce PDF documents.
 
+ * "changes", which builds an overview over all versionadded/versionchanged/
+   deprecated items in the current version. This is meant as a help for the
+   writer of the "What's New" document.
+
 A "make update" updates the Subversion checkouts in `tools/`.
 
 
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index 9424bf1..133bac9 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -37,8 +37,8 @@
 API functions exist to interact with the error indicator in various ways.  There
 is a separate error indicator for each thread.
 
-.. % XXX Order of these should be more thoughtful.
-.. % Either alphabetical or some kind of structure.
+.. XXX Order of these should be more thoughtful.
+   Either alphabetical or some kind of structure.
 
 
 .. cfunction:: void PyErr_Print()
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index bb0e390..dd2c531 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -266,7 +266,7 @@
    as the list ``sys.path``, which may be modified to change the future search path
    for loaded modules.
 
-   .. % XXX should give the exact rules
+   .. XXX should give the exact rules
 
 
 .. cfunction:: const char* Py_GetVersion()
@@ -361,8 +361,8 @@
    to initialize ``sys.argv``, a fatal condition is signalled using
    :cfunc:`Py_FatalError`.
 
-   .. % XXX impl. doesn't seem consistent in allowing 0/NULL for the params;
-   .. % check w/ Guido.
+   .. XXX impl. doesn't seem consistent in allowing 0/NULL for the params;
+      check w/ Guido.
 
 
 .. _threads:
diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst
index 3e458c1..5e9f525 100644
--- a/Doc/c-api/intro.rst
+++ b/Doc/c-api/intro.rst
@@ -489,7 +489,7 @@
    single: PyErr_Clear()
    single: Py_XDECREF()
 
-This example represents an endorsed use of the :keyword:`goto` statement  in C!
+This example represents an endorsed use of the ``goto`` statement  in C!
 It illustrates the use of :cfunc:`PyErr_ExceptionMatches` and
 :cfunc:`PyErr_Clear` to handle specific exceptions, and the use of
 :cfunc:`Py_XDECREF` to dispose of owned references that may be *NULL* (note the
diff --git a/Doc/c-api/newtypes.rst b/Doc/c-api/newtypes.rst
index 61c30f6..bcb0d20 100644
--- a/Doc/c-api/newtypes.rst
+++ b/Doc/c-api/newtypes.rst
@@ -476,7 +476,7 @@
    declare the instance struct) and this in turn includes the :attr:`_ob_prev` and
    :attr:`_ob_next` fields if they are present.  This means that the only correct
    way to get an initializer for the :attr:`tp_basicsize` is to use the
-   :keyword:`sizeof` operator on the struct used to declare the instance layout.
+   ``sizeof`` operator on the struct used to declare the instance layout.
    The basic size does not include the GC header size (this is new in Python 2.2;
    in 2.1 and 2.0, the GC header size was included in :attr:`tp_basicsize`).
 
@@ -1175,7 +1175,7 @@
 
       PyObject * tp_descr_get(PyObject *self, PyObject *obj, PyObject *type);
 
-   XXX blah, blah.
+   XXX explain.
 
    This field is inherited by subtypes.
 
@@ -1190,7 +1190,7 @@
 
    This field is inherited by subtypes.
 
-   XXX blah, blah.
+   XXX explain.
 
 
 .. cmember:: long PyTypeObject.tp_dictoffset
@@ -1734,10 +1734,9 @@
    and :exc:`SystemError` should be raised when *segment* specifies a segment that
    doesn't exist.
 
-   .. % Why doesn't it raise ValueError for this one?
-   .. % GJS: because you shouldn't be calling it with an invalid
-   .. % segment. That indicates a blatant programming error in the C
-   .. % code.
+   .. Why doesn't it raise ValueError for this one?
+      GJS: because you shouldn't be calling it with an invalid
+      segment. That indicates a blatant programming error in the C code.
 
 
 .. ctype:: Py_ssize_t (*segcountproc) (PyObject *self, Py_ssize_t *lenp)
diff --git a/Doc/distutils/setupscript.rst b/Doc/distutils/setupscript.rst
index 26f50e6..167265b 100644
--- a/Doc/distutils/setupscript.rst
+++ b/Doc/distutils/setupscript.rst
@@ -137,7 +137,7 @@
 extension name, source file(s), and any compile/link requirements (include
 directories, libraries to link with, etc.).
 
-.. % XXX read over this section
+.. XXX read over this section
 
 All of this is done through another keyword argument to :func:`setup`, the
 :option:`ext_modules` option.  :option:`ext_modules` is just a list of
diff --git a/Doc/documenting/fromlatex.rst b/Doc/documenting/fromlatex.rst
index 42045f7..116524a 100644
--- a/Doc/documenting/fromlatex.rst
+++ b/Doc/documenting/fromlatex.rst
@@ -154,25 +154,35 @@
 
         Description.
 
-* **New information unit**
+* **New information units**
 
-  There is a new generic information unit called "describe" which can be used
-  to document things that are not covered by the other units::
+  There are new generic information units: One is called "describe" and can be
+  used to document things that are not covered by the other units::
 
      .. describe:: a == b
 
         The equals operator.
 
+  The others are::
+
+     .. cmdoption:: -O
+
+        Describes a command-line option.
+
+     .. envvar:: PYTHONINSPECT
+
+        Describes an environment variable.
+
 
 Structure
 ---------
 
-The LaTeX docs were split in several toplevel manuals.  Now, all files
-are part of the same documentation tree, as indicated by the *toctree*
-directives in the sources.  Every *toctree* directive embeds other files
-as subdocuments of the current file (this structure is not necessarily
-mirrored in the filesystem layout).  The toplevel file is
-:file:`contents.rst`.
+The LaTeX docs were split in several toplevel manuals.  Now, all files are part
+of the same documentation tree, as indicated by the *toctree* directives in the
+sources (though individual output formats may choose to split them up into parts
+again).  Every *toctree* directive embeds other files as subdocuments of the
+current file (this structure is not necessarily mirrored in the filesystem
+layout).  The toplevel file is :file:`contents.rst`.
 
 However, most of the old directory structure has been kept, with the
 directories renamed as follows:
@@ -184,7 +194,7 @@
 * :file:`inst` -> :file:`installing`
 * :file:`lib` -> :file:`library`
 * :file:`mac` -> merged into :file:`library`, with :file:`mac/using.tex`
-  moved to :file:`howto/pythonmac.rst`
+  moved to :file:`using/mac.rst`
 * :file:`ref` -> :file:`reference`
 * :file:`tut` -> :file:`tutorial`, with the single TeX file split up
 
diff --git a/Doc/documenting/markup.rst b/Doc/documenting/markup.rst
index a246d62..f3a8237 100644
--- a/Doc/documenting/markup.rst
+++ b/Doc/documenting/markup.rst
@@ -455,7 +455,7 @@
 
 .. describe:: keyword
 
-   The name of a keyword in a programming language.
+   The name of a keyword in Python.
 
 .. describe:: mailheader
 
diff --git a/Doc/documenting/sphinx.rst b/Doc/documenting/sphinx.rst
index 85e8b5e..43da14e 100644
--- a/Doc/documenting/sphinx.rst
+++ b/Doc/documenting/sphinx.rst
@@ -47,14 +47,30 @@
    could be docs for temporarily disabled modules or documentation that's not
    yet ready for public consumption.
 
-last_updated_format : string
+add_function_parentheses : bool
+   If true, ``()`` will be appended to the content of ``:func:``, ``:meth:`` and
+   ``:cfunc:`` cross-references.
+
+add_module_names : bool
+   If true, the current module name will be prepended to all description unit
+   titles (such as ``.. function::``).
+
+Builder-specific variables
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+html_download_base_url : string
+   The base URL for download links on the download page.
+
+html_last_updated_fmt : string
    If this is not an empty string, it will be given to ``time.strftime()`` and
    written to each generated output file after "last updated on:".
 
-use_smartypants : bool
+html_use_smartypants : bool
    If true, use SmartyPants to convert quotes and dashes to the typographically
    correct entities.
 
-add_function_parentheses : bool
-   If true, ``()`` will be appended to the content of ``:func:``, ``:meth:`` and
-   ``:cfunc:`` cross-references.
\ No newline at end of file
+latex_paper_size : "letter" or "a4"
+   The paper size option for the LaTeX document class.
+
+latex_font_size : "10pt", "11pt" or "12pt"
+   The font size option for the LaTeX document class.
\ No newline at end of file
diff --git a/Doc/extending/embedding.rst b/Doc/extending/embedding.rst
index b9a567c..95a30fe 100644
--- a/Doc/extending/embedding.rst
+++ b/Doc/extending/embedding.rst
@@ -155,11 +155,7 @@
 
 Although the program is quite large for its functionality, most of the code is
 for data conversion between Python and C, and for error reporting.  The
-interesting part with respect to embedding Python starts with
-
-.. % $
-
-::
+interesting part with respect to embedding Python starts with ::
 
    Py_Initialize();
    pName = PyString_FromString(argv[1]);
@@ -239,15 +235,8 @@
 In a real application, the methods will expose an API of the application to
 Python.
 
-.. % \section{For the future}
-.. % 
-.. % You don't happen to have a nice library to get textual
-.. % equivalents of numeric values do you :-) ?
-.. % Callbacks here ? (I may be using information from that section
-.. % ?!)
-.. % threads
-.. % code examples do not really behave well if errors happen
-.. % (what to watch out for)
+.. TODO: threads, code examples do not really behave well if errors happen
+   (what to watch out for)
 
 
 .. _embeddingincplusplus:
diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst
index 21eeddf..ae9e493 100644
--- a/Doc/extending/extending.rst
+++ b/Doc/extending/extending.rst
@@ -307,7 +307,7 @@
 The method table must be passed to the interpreter in the module's
 initialization function.  The initialization function must be named
 :cfunc:`initname`, where *name* is the name of the module, and should be the
-only non-\ :keyword:`static` item defined in the module file::
+only non-\ ``static`` item defined in the module file::
 
    PyMODINIT_FUNC
    initspam(void)
@@ -665,11 +665,7 @@
 .. index:: single: Philbrick, Geoff
 
 Here is an example module which uses keywords, based on an example by Geoff
-Philbrick (philbrick@hks.com):
-
-.. % 
-
-::
+Philbrick (philbrick@hks.com)::
 
    #include "Python.h"
 
@@ -765,8 +761,8 @@
 
 In languages like C or C++, the programmer is responsible for dynamic allocation
 and deallocation of memory on the heap.  In C, this is done using the functions
-:cfunc:`malloc` and :cfunc:`free`.  In C++, the operators :keyword:`new` and
-:keyword:`delete` are used with essentially the same meaning and we'll restrict
+:cfunc:`malloc` and :cfunc:`free`.  In C++, the operators ``new`` and
+``delete`` are used with essentially the same meaning and we'll restrict
 the following discussion to the C case.
 
 Every block of memory allocated with :cfunc:`malloc` should eventually be
@@ -1039,11 +1035,10 @@
 
 It is a severe error to ever let a *NULL* pointer "escape" to the Python user.
 
-.. % Frank Stajano:
-.. % A pedagogically buggy example, along the lines of the previous listing,
-.. % would be helpful here -- showing in more concrete terms what sort of
-.. % actions could cause the problem. I can't very well imagine it from the
-.. % description.
+.. Frank Stajano:
+   A pedagogically buggy example, along the lines of the previous listing, would
+   be helpful here -- showing in more concrete terms what sort of actions could
+   cause the problem. I can't very well imagine it from the description.
 
 
 .. _cplusplus:
@@ -1079,7 +1074,7 @@
 manipulation from other extension modules.
 
 At first sight this seems easy: just write the functions (without declaring them
-:keyword:`static`, of course), provide an appropriate header file, and document
+``static``, of course), provide an appropriate header file, and document
 the C API. And in fact this would work if all extension modules were always
 linked statically with the Python interpreter. When modules are used as shared
 libraries, however, the symbols defined in one module may not be visible to
@@ -1092,7 +1087,7 @@
 
 Portability therefore requires not to make any assumptions about symbol
 visibility. This means that all symbols in extension modules should be declared
-:keyword:`static`, except for the module's initialization function, in order to
+``static``, except for the module's initialization function, in order to
 avoid name clashes with other extension modules (as discussed in section
 :ref:`methodtable`). And it means that symbols that *should* be accessible from
 other extension modules must be exported in a different way.
@@ -1127,7 +1122,7 @@
 :cfunc:`PySpam_System` is also exported to other extension modules.
 
 The function :cfunc:`PySpam_System` is a plain C function, declared
-:keyword:`static` like everything else::
+``static`` like everything else::
 
    static int
    PySpam_System(const char *command)
@@ -1183,7 +1178,7 @@
            PyModule_AddObject(m, "_C_API", c_api_object);
    }
 
-Note that ``PySpam_API`` is declared :keyword:`static`; otherwise the pointer
+Note that ``PySpam_API`` is declared ``static``; otherwise the pointer
 array would disappear when :func:`initspam` terminates!
 
 The bulk of the work is in the header file :file:`spammodule.h`, which looks
diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst
index e4d4e32..f9f8d43 100644
--- a/Doc/extending/newtypes.rst
+++ b/Doc/extending/newtypes.rst
@@ -232,8 +232,6 @@
 that directory and fire up Python --- you should be able to ``import noddy`` and
 play around with Noddy objects.
 
-.. % $ <-- bow to font-lock  ;-(
-
 That wasn't so hard, was it?
 
 Of course, the current Noddy type is pretty uninteresting. It has no data and
@@ -1235,16 +1233,14 @@
 As with the :attr:`tp_methods` table, a sentinel entry with a :attr:`name` value
 of *NULL* is required.
 
-.. % XXX Descriptors need to be explained in more detail somewhere, but
-.. % not here.
-.. % 
-.. % Descriptor objects have two handler functions which correspond to
-.. % the \member{tp_getattro} and \member{tp_setattro} handlers.  The
-.. % \method{__get__()} handler is a function which is passed the
-.. % descriptor, instance, and type objects, and returns the value of the
-.. % attribute, or it returns \NULL{} and sets an exception.  The
-.. % \method{__set__()} handler is passed the descriptor, instance, type,
-.. % and new value;
+.. XXX Descriptors need to be explained in more detail somewhere, but not here.
+   
+   Descriptor objects have two handler functions which correspond to the
+   \member{tp_getattro} and \member{tp_setattro} handlers.  The
+   \method{__get__()} handler is a function which is passed the descriptor,
+   instance, and type objects, and returns the value of the attribute, or it
+   returns \NULL{} and sets an exception.  The \method{__set__()} handler is
+   passed the descriptor, instance, type, and new value;
 
 
 Type-specific Attribute Management
diff --git a/Doc/extending/windows.rst b/Doc/extending/windows.rst
index 7a66afe..a34ba2b 100644
--- a/Doc/extending/windows.rst
+++ b/Doc/extending/windows.rst
@@ -7,8 +7,6 @@
 Building C and C++ Extensions on Windows
 ****************************************
 
-.. % 
-
 This chapter briefly explains how to create a Windows extension module for
 Python using Microsoft Visual C++, and follows with more detailed background
 information on how it works.  The explanatory material is useful for both the
diff --git a/Doc/howto/advocacy.rst b/Doc/howto/advocacy.rst
index 1f1754a..7d7706e 100644
--- a/Doc/howto/advocacy.rst
+++ b/Doc/howto/advocacy.rst
@@ -302,11 +302,11 @@
    The Python Success Stories are a collection of stories from successful users of
    Python, with the emphasis on business and corporate users.
 
-.. % \term{\url{http://www.fsbassociates.com/books/pythonchpt1.htm}}
-.. % The first chapter of \emph{Internet Programming with Python} also
-.. % examines some of the reasons for using Python.  The book is well worth
-.. % buying, but the publishers have made the first chapter available on
-.. % the Web.
+.. http://www.fsbassociates.com/books/pythonchpt1.htm
+   The first chapter of \emph{Internet Programming with Python} also
+   examines some of the reasons for using Python.  The book is well worth
+   buying, but the publishers have made the first chapter available on
+   the Web.
 
 http://home.pacbell.net/ouster/scripting.html
    John Ousterhout's white paper on scripting is a good argument for the utility of
@@ -333,9 +333,9 @@
    to show that choosing Python didn't introduce any difficulties into a company's
    development process, and provided some substantial benefits.
 
-.. % \term{\url{http://www.python.org/psa/Commercial.html}}
-.. % Robin Friedrich wrote this document on how to support Python's use in
-.. % commercial projects.
+.. http://www.python.org/psa/Commercial.html
+   Robin Friedrich wrote this document on how to support Python's use in
+   commercial projects.
 
 http://www.python.org/workshops/1997-10/proceedings/stein.ps
    For the 6th Python conference, Greg Stein presented a paper that traced Python's
diff --git a/Doc/howto/doanddont.rst b/Doc/howto/doanddont.rst
index 600c216..a350753 100644
--- a/Doc/howto/doanddont.rst
+++ b/Doc/howto/doanddont.rst
@@ -290,7 +290,7 @@
       calculate_number(10, 20) != forbulate(500, 360):
          pass
 
-You should realize that this is dangerous: a stray space after the ``XXX`` would
+You should realize that this is dangerous: a stray space after the ``\`` would
 make this line wrong, and stray spaces are notoriously hard to see in editors.
 In this case, at least it would be a syntax error, but if the code was::
 
diff --git a/Doc/howto/regex.rst b/Doc/howto/regex.rst
index 131bb51..e237e6c 100644
--- a/Doc/howto/regex.rst
+++ b/Doc/howto/regex.rst
@@ -5,11 +5,11 @@
 :Author: A.M. Kuchling
 :Release: 0.05
 
-.. % TODO:
-.. % Document lookbehind assertions
-.. % Better way of displaying a RE, a string, and what it matches
-.. % Mention optional argument to match.groups()
-.. % Unicode (at least a reference)
+.. TODO:
+   Document lookbehind assertions
+   Better way of displaying a RE, a string, and what it matches
+   Mention optional argument to match.groups()
+   Unicode (at least a reference)
 
 
 .. topic:: Abstract
@@ -91,8 +91,6 @@
 characters.  If you wanted to match only lowercase letters, your RE would be
 ``[a-z]``.
 
-.. % $
-
 Metacharacters are not active inside classes.  For example, ``[akm$]`` will
 match any of the characters ``'a'``, ``'k'``, ``'m'``, or ``'$'``; ``'$'`` is
 usually a metacharacter, but inside a character class it's stripped of its
@@ -679,8 +677,8 @@
       >>> print re.search('^From', 'Reciting From Memory')
       None
 
-   .. % To match a literal \character{\^}, use \regexp{\e\^} or enclose it
-   .. % inside a character class, as in \regexp{[{\e}\^]}.
+   .. To match a literal \character{\^}, use \regexp{\e\^} or enclose it
+   .. inside a character class, as in \regexp{[{\e}\^]}.
 
 ``$``
    Matches at the end of a line, which is defined as either the end of the string,
@@ -696,8 +694,6 @@
    To match a literal ``'$'``, use ``\$`` or enclose it inside a character class,
    as in  ``[$]``.
 
-   .. % $
-
 ``\A``
    Matches only at the start of the string.  When not in :const:`MULTILINE` mode,
    ``\A`` and ``^`` are effectively the same.  In :const:`MULTILINE` mode, they're
@@ -980,12 +976,8 @@
 that the first character of the extension is not a ``b``.  This is wrong,
 because the pattern also doesn't match ``foo.bar``.
 
-.. % $
-
 ``.*[.]([^b]..|.[^a].|..[^t])$``
 
-.. % Messes up the HTML without the curly braces around \^
-
 The expression gets messier when you try to patch up the first solution by
 requiring one of the following cases to match: the first character of the
 extension isn't ``b``; the second character isn't ``a``; or the third character
@@ -1013,16 +1005,12 @@
 that something like ``sample.batch``, where the extension only starts with
 ``bat``, will be allowed.
 
-.. % $
-
 Excluding another filename extension is now easy; simply add it as an
 alternative inside the assertion.  The following pattern excludes filenames that
 end in either ``bat`` or ``exe``:
 
 ``.*[.](?!bat$|exe$).*$``
 
-.. % $
-
 
 Modifying Strings
 =================
@@ -1343,16 +1331,10 @@
     \s*$                # Trailing whitespace to end-of-line
    """, re.VERBOSE)
 
-This is far more readable than:
-
-.. % $
-
-::
+This is far more readable than::
 
    pat = re.compile(r"\s*(?P<header>[^:]+)\s*:(?P<value>.*?)\s*$")
 
-.. % $
-
 
 Feedback
 ========
diff --git a/Doc/install/index.rst b/Doc/install/index.rst
index aa2d915..584cb47 100644
--- a/Doc/install/index.rst
+++ b/Doc/install/index.rst
@@ -10,18 +10,17 @@
 :Release: |version|
 :Date: |today|
 
-.. % TODO:
-.. % Fill in XXX comments
+.. TODO: Fill in XXX comments
 
-.. % The audience for this document includes people who don't know anything
-.. % about Python and aren't about to learn the language just in order to
-.. % install and maintain it for their users, i.e. system administrators.
-.. % Thus, I have to be sure to explain the basics at some point:
-.. % sys.path and PYTHONPATH at least.  Should probably give pointers to
-.. % other docs on "import site", PYTHONSTARTUP, PYTHONHOME, etc.
-.. % 
-.. % Finally, it might be useful to include all the material from my "Care
-.. % and Feeding of a Python Installation" talk in here somewhere.  Yow!
+.. The audience for this document includes people who don't know anything
+   about Python and aren't about to learn the language just in order to
+   install and maintain it for their users, i.e. system administrators.
+   Thus, I have to be sure to explain the basics at some point:
+   sys.path and PYTHONPATH at least.  Should probably give pointers to
+   other docs on "import site", PYTHONSTARTUP, PYTHONHOME, etc.
+   
+   Finally, it might be useful to include all the material from my "Care
+   and Feeding of a Python Installation" talk in here somewhere.  Yow!
 
 .. topic:: Abstract
 
@@ -517,11 +516,7 @@
                            --install-scripts=python/scripts
                            --install-data=python/data
 
-or, equivalently,
-
-.. % $ % -- bow to font-lock
-
-::
+or, equivalently, ::
 
    python setup.py install --home=~/python \
                            --install-purelib=lib \
@@ -533,8 +528,6 @@
 the Distutils as it parses your command line options, just as it does when
 parsing your configuration file(s).
 
-.. % $ % -- bow to font-lock
-
 Obviously, specifying the entire installation scheme every time you install a
 new module distribution would be very tedious.  Thus, you can put these options
 into your Distutils config file (see section :ref:`inst-config-files`)::
@@ -574,11 +567,11 @@
 the Distutils are the only ones you can use.) See section :ref:`inst-config-files`
 for details.
 
-.. % XXX need some Windows examples---when would custom
-.. % installation schemes be needed on those platforms?
+.. XXX need some Windows examples---when would custom installation schemes be
+   needed on those platforms?
 
-.. % XXX I'm not sure where this section should go.
 
+.. XXX I'm not sure where this section should go.
 
 .. _inst-search-path:
 
@@ -890,8 +883,8 @@
 reason you have to convert Python's library :file:`python25.lib` into the
 Borland format.  You can do this as follows:
 
-.. % Should we mention that users have to create cfg-files for the compiler?
-.. % see also http://community.borland.com/article/0,1410,21205,00.html
+.. Should we mention that users have to create cfg-files for the compiler?
+.. see also http://community.borland.com/article/0,1410,21205,00.html
 
 ::
 
@@ -949,8 +942,8 @@
 http://starship.python.net/crew/kernr/mingw32/Notes.html, see at  PExports 0.42h
 there.)
 
-.. % I don't understand what the next line means. --amk
-.. % (inclusive the references on data structures.)
+.. I don't understand what the next line means. --amk
+.. (inclusive the references on data structures.)
 
 ::
 
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 71c29d2..5f43c07 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 8691c11..f6d762f 100644
--- a/Doc/library/audioop.rst
+++ b/Doc/library/audioop.rst
@@ -20,7 +20,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/bastion.rst b/Doc/library/bastion.rst
index 3ab71d8..ac529af 100644
--- a/Doc/library/bastion.rst
+++ b/Doc/library/bastion.rst
@@ -22,11 +22,11 @@
 restricted-mode programs access to certain safe attributes of an object, while
 denying access to other, unsafe attributes.
 
-.. % I'm concerned that the word 'bastion' won't be understood by people
-.. % for whom English is a second language, making the module name
-.. % somewhat mysterious.  Thus, the brief definition... --amk
+.. I'm concerned that the word 'bastion' won't be understood by people
+.. for whom English is a second language, making the module name
+.. somewhat mysterious.  Thus, the brief definition... --amk
 
-.. % I've punted on the issue of documenting keyword arguments for now.
+.. I've punted on the issue of documenting keyword arguments for now.
 
 
 .. function:: Bastion(object[, filter[, name[, class]]])
diff --git a/Doc/library/bisect.rst b/Doc/library/bisect.rst
index b8eb348..6d91644 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 6b2e3d2..3b82e7b 100644
--- a/Doc/library/cgi.rst
+++ b/Doc/library/cgi.rst
@@ -178,7 +178,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 9e8f3e3..717731a 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -60,7 +60,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 5db1f73..aabbba7 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -92,7 +92,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.
 
    .. versionadded:: 2.3
 
diff --git a/Doc/library/constants.rst b/Doc/library/constants.rst
index 4aa3a1c..7e63978 100644
--- a/Doc/library/constants.rst
+++ b/Doc/library/constants.rst
@@ -25,6 +25,9 @@
    represent the absence of a value, as when default arguments are not passed to a
    function.
 
+   .. versionchanged:: 2.4
+      Assignments to ``None`` are illegal and raise a :exc:`SyntaxError`.
+
 
 .. data:: NotImplemented
 
@@ -37,5 +40,11 @@
 
    Special value used in conjunction with extended slicing syntax.
 
-   .. % XXX Someone who understands extended slicing should fill in here.
+   .. XXX Someone who understands extended slicing should fill in here.
 
+
+.. data:: __debug__
+
+   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.
\ No newline at end of file
diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst
index 50baabf..89b668d 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 2df733c..9c11ecd 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -71,7 +71,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:
@@ -1258,10 +1258,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 91af757..22cb626 100644
--- a/Doc/library/curses.rst
+++ b/Doc/library/curses.rst
@@ -1170,8 +1170,7 @@
 Keys are referred to by integer constants with names starting with  ``KEY_``.
 The exact keycaps available are system dependent.
 
-.. % XXX this table is far too large!
-.. % 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 404a148..3477250 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?
 
 .. versionadded:: 2.3
 
@@ -204,7 +202,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 6fc0aa6..6383673 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -93,7 +93,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:
@@ -268,7 +268,7 @@
 the program manipulates the data no differently than with other Python numeric
 types.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-decimal:
@@ -279,7 +279,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
@@ -538,7 +538,7 @@
 
    .. versionadded:: 2.6
 
-.. 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
@@ -659,7 +659,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"))
@@ -680,8 +680,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()
 
@@ -693,7 +693,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")``.
 
@@ -759,7 +759,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
@@ -770,7 +770,7 @@
 
 .. 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.
 
@@ -780,7 +780,7 @@
 
 .. 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
@@ -799,7 +799,7 @@
 exponent and sign are both zero, and whose digits are all either
 :const:`0` or :const:`1`.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-context:
@@ -1075,7 +1075,7 @@
 
    Converts a number to a string using scientific notation.
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-signals:
@@ -1196,7 +1196,7 @@
            Rounded
            Subnormal
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-notes:
@@ -1293,7 +1293,7 @@
    >>> 1 / Decimal('Infinity')
    Decimal("0E-1000000026")
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-threads:
@@ -1331,7 +1331,7 @@
    t3.start()
     . . .
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-recipes:
@@ -1487,7 +1487,7 @@
        return +s
 
 
-.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 .. _decimal-faq:
diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst
index baea5d4..0ae6699 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>.
 
 .. versionadded:: 2.1
 
@@ -386,7 +386,7 @@
    then ``i+n != i'`` or ``j+n != j'``; in other words, adjacent triples always
    describe non-adjacent equal blocks.
 
-   .. % Explain why a dummy is used!
+   .. XXX Explain why a dummy is used!
 
    .. versionchanged:: 2.5
       The guarantee that adjacent triples always describe non-adjacent blocks was
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 58276da..487c471 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -559,13 +559,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)
 
@@ -593,10 +586,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)
 
@@ -679,22 +668,11 @@
    the iterator indicates it is exhausted ``TOS`` is popped, and the bytecode
    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)
 
@@ -792,7 +770,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 acc8d1b..a231bb4 100644
--- a/Doc/library/doctest.rst
+++ b/Doc/library/doctest.rst
@@ -731,12 +731,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 212c321..aaff153 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
 
 
 .. versionadded:: 2.2
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 7b1f1b9..6122d44 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -124,23 +124,18 @@
 
 .. 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 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:`read` and :meth:`readline` methods of file objects return an empty string
+   :meth:`file.read` and :meth:`file.readline` methods return an empty string
    when they hit EOF.)
 
-   .. % XXXJH xrefs here
-   .. % XXXJH xrefs here
-
 
 .. exception:: FloatingPointError
 
@@ -167,8 +162,6 @@
    :func:`open` function or a method of a file object) fails for an I/O-related
    reason, e.g., "file not found" or "disk full".
 
-   .. % XXXJH xrefs here
-
    This class is derived from :exc:`EnvironmentError`.  See the discussion above
    for more information on exception instance attributes.
 
@@ -181,8 +174,6 @@
    Raised when an :keyword:`import` statement fails to find the module definition
    or when a ``from ... import`` fails to find a name that is to be imported.
 
-   .. % XXXJH xref to import statement?
-
 
 .. exception:: IndexError
 
@@ -190,14 +181,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
@@ -209,8 +200,6 @@
    :exc:`BaseException` so as to not be accidentally caught by code that catches
    :exc:`Exception` and thus prevent the interpreter from exiting.
 
-   .. % XXX(hylton) xrefs here
-
    .. versionchanged:: 2.5
       Changed to inherit from :exc:`BaseException`.
 
@@ -248,8 +237,6 @@
    :mod:`os` module's ``os.error`` exception. See :exc:`EnvironmentError` above for
    a description of the possible associated values.
 
-   .. % xref for os module
-
    .. versionadded:: 1.5.2
 
 
@@ -263,8 +250,6 @@
    checked except left shift, where typical applications prefer to drop bits than
    raise an exception.
 
-   .. % XXXJH reference to long's and/or int's?
-
 
 .. exception:: ReferenceError
 
@@ -302,8 +287,6 @@
    built-in function :func:`eval` or :func:`input`, or when reading the initial
    script or standard input (also interactively).
 
-   .. % XXXJH xref to these functions?
-
    Instances of this class have attributes :attr:`filename`, :attr:`lineno`,
    :attr:`offset` and :attr:`text` for easier access to the details.  :func:`str`
    of the exception instance returns only the message.
@@ -331,8 +314,6 @@
    it has another type (such as a string), the object's value is printed and the
    exit status is one.
 
-   .. % XXX(hylton) xref to module sys?
-
    Instances have an attribute :attr:`code` which is set to the proposed exit
    status or error message (defaulting to ``None``). Also, this exception derives
    directly from :exc:`BaseException` and not :exc:`StandardError`, since it is not
diff --git a/Doc/library/fl.rst b/Doc/library/fl.rst
index 741dd18..c66b909 100644
--- a/Doc/library/fl.rst
+++ b/Doc/library/fl.rst
@@ -141,7 +141,7 @@
    call :func:`fl.qread` to read the event from the queue.  Don't use the
    equivalent GL functions!
 
-   .. % \funcline{blkqread}{?}
+   .. \funcline{blkqread}{?}
 
 
 .. function:: color()
@@ -227,8 +227,6 @@
 
    Find the last object in the form.
 
-.. % ---
-
 
 .. method:: form.add_box(type, x, y, w, h, name)
 
@@ -239,17 +237,15 @@
 
    Add a text object to the form. No extra methods.
 
-.. % \begin{methoddesc}[form]{add_bitmap}{type, x, y, w, h, name}
-.. % Add a bitmap object to the form.
-.. % \end{methoddesc}
+.. \begin{methoddesc}[form]{add_bitmap}{type, x, y, w, h, name}
+.. Add a bitmap object to the form.
+.. \end{methoddesc}
 
 
 .. method:: form.add_clock(type, x, y, w, h, name)
 
    Add a clock object to the form.  ---  Method: :meth:`get_clock`.
 
-.. % ---
-
 
 .. method:: form.add_button(type, x, y, w, h,  name)
 
@@ -268,8 +264,6 @@
    Add a roundbutton object to the form.  ---  Methods: :meth:`get_button`,
    :meth:`set_button`.
 
-.. % ---
-
 
 .. method:: form.add_slider(type, x, y, w, h, name)
 
@@ -308,16 +302,12 @@
    :meth:`get_counter_value`, :meth:`set_counter_bounds`, :meth:`set_counter_step`,
    :meth:`set_counter_precision`, :meth:`set_counter_return`.
 
-.. % ---
-
 
 .. method:: form.add_input(type, x, y, w, h, name)
 
    Add a input object to the form.  ---  Methods: :meth:`set_input`,
    :meth:`get_input`, :meth:`set_input_color`, :meth:`set_input_return`.
 
-.. % ---
-
 
 .. method:: form.add_menu(type, x, y, w, h, name)
 
@@ -345,8 +335,6 @@
    :meth:`set_browser_fontsize`, :meth:`set_browser_fontstyle`,
    :meth:`set_browser_specialkey`.
 
-.. % ---
-
 
 .. method:: form.add_timer(type, x, y, w, h, name)
 
@@ -428,10 +416,10 @@
 
 FORMS objects have these data attributes; see the FORMS documentation:
 
-.. % \begin{methoddesc}[FORMS object]{handle_object}{} XXX
-.. % \end{methoddesc}
-.. % \begin{methoddesc}[FORMS object]{handle_object_direct}{} XXX
-.. % \end{methoddesc}
+.. \begin{methoddesc}[FORMS object]{handle_object}{} XXX
+.. \end{methoddesc}
+.. \begin{methoddesc}[FORMS object]{handle_object_direct}{} XXX
+.. \end{methoddesc}
 
 +--------------------+-----------------+------------------+
 | Name               | C Type          | Meaning          |
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 756d722..9c11b6d 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -30,7 +30,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
@@ -356,7 +356,7 @@
    access to the standard :mod:`__builtin__` 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
@@ -635,7 +635,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 11fec5b..088e1fa 100644
--- a/Doc/library/getopt.rst
+++ b/Doc/library/getopt.rst
@@ -9,13 +9,11 @@
 
 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:
 
-.. % That's to fool latex2html into leaving the two hyphens alone!
-
 
 .. function:: getopt(args, options[, long_options])
 
diff --git a/Doc/library/getpass.rst b/Doc/library/getpass.rst
index 45c6e53..da1f9f5 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/gl.rst b/Doc/library/gl.rst
index d9d0de1..8398a8e 100644
--- a/Doc/library/gl.rst
+++ b/Doc/library/gl.rst
@@ -65,7 +65,7 @@
    converted to 3D double precision points by assuming ``z = 0.0`` if necessary (as
    indicated in the man page), and for each point ``v3d()`` is called.
 
-   .. % JHXXX the argument-argument added
+   .. XXX the argument-argument added
 
 
 .. function:: nvarray()
@@ -89,7 +89,7 @@
    Defines a nurbs surface. The dimensions of ``ctl[][]`` are computed as follows:
    ``[len(s_k) - s_ord]``, ``[len(t_k) - t_ord]``.
 
-   .. % XXX s_k[], t_k[], ctl[][]
+   .. XXX s_k[], t_k[], ctl[][]
 
 
 .. function:: nurbscurve(knots, ctlpoints, order, type)
diff --git a/Doc/library/heapq.rst b/Doc/library/heapq.rst
index bd4c79f..115d223 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:
-
 .. versionadded:: 2.3
 
 This module provides an implementation of the heap queue algorithm, also known
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 fc7c230..4279fa5 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/jpeg.rst b/Doc/library/jpeg.rst
index d94dac6..1c5075f 100644
--- a/Doc/library/jpeg.rst
+++ b/Doc/library/jpeg.rst
@@ -78,16 +78,11 @@
    |                 | decompression.                              |
    +-----------------+---------------------------------------------+
 
-   .. % 
-   .. % 
-   .. % 
-   .. % 
-
 
 .. seealso::
 
    JPEG Still Image Data Compression Standard
-      The  canonical reference for the JPEG image format, by Pennebaker and Mitchell.
+      The canonical reference for the JPEG image format, by Pennebaker and Mitchell.
 
    `Information Technology - Digital Compression and Coding of Continuous-tone Still Images - Requirements and Guidelines <http://www.w3.org/Graphics/JPEG/itu-t81.pdf>`_
       The ISO standard for JPEG is also published as ITU T.81.  This is available
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index c125cb5..d66b70e 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -2049,8 +2049,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
@@ -2234,13 +2232,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/netrc.rst b/Doc/library/netrc.rst
index bf3d92e..8a2f1c6 100644
--- a/Doc/library/netrc.rst
+++ b/Doc/library/netrc.rst
@@ -8,8 +8,6 @@
 .. sectionauthor:: Eric S. Raymond <esr@snark.thyrsus.com>
 
 
-.. % Note the \protect needed for \file... ;-(
-
 .. versionadded:: 1.5.2
 
 The :class:`netrc` class parses and encapsulates the netrc file format used by
diff --git a/Doc/library/new.rst b/Doc/library/new.rst
index f3bb55b..1858009 100644
--- a/Doc/library/new.rst
+++ b/Doc/library/new.rst
@@ -45,7 +45,7 @@
 
    This function is an interface to the :cfunc:`PyCode_New` C function.
 
-   .. % XXX This is still undocumented!!!!!!!!!!!
+   .. XXX This is still undocumented!
 
 
 .. function:: module(name[, doc])
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index 5bc947e..fdbf2a3 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -316,8 +316,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 8b585b6..e193eb8 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
 ============================================================
 
@@ -22,9 +18,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
@@ -74,8 +67,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:
 
@@ -237,8 +228,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:
 
@@ -656,8 +645,6 @@
    if __name__ == "__main__":
        main()
 
-.. % $Id: tutorial.txt 515 2006-06-10 15:37:45Z gward $
-
 
 .. _optparse-reference-guide:
 
@@ -1333,8 +1320,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:
 
@@ -1630,8 +1615,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:
 
@@ -1822,6 +1805,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 805f2a2..8f6e46e 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -35,13 +35,6 @@
 and in the following sub-sections are all available directly from the :mod:`os`
 module.
 
-.. % Frank Stajano <fstajano@uk.research.att.com> complained that it
-.. % wasn't clear that the entries described in the subsections were all
-.. % available at the module level (most uses of subsections are
-.. % different); I think this is only a problem for the HTML version,
-.. % where the relationship may not be as clear.
-.. % 
-
 
 .. exception:: error
 
@@ -309,9 +302,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 066b26b..e4ece4d 100644
--- a/Doc/library/ossaudiodev.rst
+++ b/Doc/library/ossaudiodev.rst
@@ -13,33 +13,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::
@@ -89,9 +89,9 @@
    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
+   .. 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 b6249e9..7ead2dd 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 e4471f2..218e467 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
@@ -622,10 +619,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 a4570d2..f479397 100644
--- a/Doc/library/platform.rst
+++ b/Doc/library/platform.rst
@@ -202,16 +202,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
 ---------------
@@ -239,7 +235,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/popen2.rst b/Doc/library/popen2.rst
index 619e777..2635175 100644
--- a/Doc/library/popen2.rst
+++ b/Doc/library/popen2.rst
@@ -150,9 +150,9 @@
 are being written by one process in a blocking fashion, while the other process
 is reading from the other process, also in a blocking fashion.
 
-.. % Example explanation and suggested work-arounds substantially stolen
-.. % from Martin von Löwis:
-.. % http://mail.python.org/pipermail/python-dev/2000-September/009460.html
+.. Example explanation and suggested work-arounds substantially stolen
+   from Martin von Löwis:
+   http://mail.python.org/pipermail/python-dev/2000-September/009460.html
 
 There are several ways to deal with this situation.
 
diff --git a/Doc/library/poplib.rst b/Doc/library/poplib.rst
index 5716204..2cf3402 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/posix.rst b/Doc/library/posix.rst
index 07ecb48..2074e45 100644
--- a/Doc/library/posix.rst
+++ b/Doc/library/posix.rst
@@ -60,17 +60,11 @@
    CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
            ./configure
 
-On large-file-capable Linux systems, this might work:
-
-.. % $ <-- bow to font-lock
-
-::
+On large-file-capable Linux systems, this might work::
 
    CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
            ./configure
 
-.. % $ <-- bow to font-lock
-
 
 .. _posix-contents:
 
diff --git a/Doc/library/posixfile.rst b/Doc/library/posixfile.rst
index 5ed3483..aaacc22 100644
--- a/Doc/library/posixfile.rst
+++ b/Doc/library/posixfile.rst
@@ -1,6 +1,3 @@
-.. % Manual text and implementation by Jaap Vermeulen
-
-
 :mod:`posixfile` --- File-like objects with locking support
 ===========================================================
 
@@ -15,8 +12,6 @@
 .. index:: pair: POSIX; file object
 
 .. deprecated:: 1.5
-   .. index:: single: lockf() (in module fcntl)
-
    The locking operation that this module provides is done better and more portably
    by the :func:`fcntl.lockf` call.
 
@@ -29,8 +24,6 @@
 methods and adds the methods described below.  This module only works for
 certain flavors of Unix, since it uses :func:`fcntl.fcntl` for file locking.
 
-.. % 
-
 To instantiate a posixfile object, use the :func:`open` function in the
 :mod:`posixfile` module.  The resulting object looks and feels roughly the same
 as a standard file object.
diff --git a/Doc/library/pprint.rst b/Doc/library/pprint.rst
index e9cd148..d073714 100644
--- a/Doc/library/pprint.rst
+++ b/Doc/library/pprint.rst
@@ -27,7 +27,7 @@
 
 The :mod:`pprint` module defines one class:
 
-.. % First the implementation class:
+.. First the implementation class:
 
 
 .. class:: PrettyPrinter(...)
@@ -68,8 +68,7 @@
 
 The :class:`PrettyPrinter` class supports several derivative functions:
 
-.. % Now the derivative functions:
-
+.. Now the derivative functions:
 
 .. function:: pformat(object[, indent[, width[, depth]]])
 
@@ -131,9 +130,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 e688bac..fe54da2 100644
--- a/Doc/library/profile.rst
+++ b/Doc/library/profile.rst
@@ -85,47 +85,47 @@
 :mod:`_lsprof` module.  The :mod:`hotshot` module is reserved to specialized
 usages.
 
-.. % \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:
@@ -185,7 +185,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).
 
 ::
 
@@ -376,7 +376,7 @@
    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).
+   .. (such as the old system profiler).
 
    .. versionchanged:: 2.5
       The *stream* parameter was added.
@@ -477,7 +477,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()
@@ -486,8 +486,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 38ec5c6..a4cc1d2 100644
--- a/Doc/library/pyexpat.rst
+++ b/Doc/library/pyexpat.rst
@@ -7,14 +7,12 @@
 .. 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.
 
 .. versionadded:: 2.0
 
diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index dae765e..850e1f8 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
@@ -298,8 +296,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'``,
@@ -385,9 +381,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:
 
@@ -407,15 +400,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:
@@ -451,10 +440,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/rexec.rst b/Doc/library/rexec.rst
index 5747d82..c85c7ca 100644
--- a/Doc/library/rexec.rst
+++ b/Doc/library/rexec.rst
@@ -182,7 +182,7 @@
 
    Unload the module object *module*.
 
-   .. % XXX what are the semantics of this?
+   .. XXX what are the semantics of this?
 
 
 .. _rexec-extension:
@@ -232,7 +232,7 @@
    'times', 'uname', 'getpid', 'getppid', 'getcwd', 'getuid', 'getgid', 'geteuid',
    'getegid')``.
 
-   .. % Should this be called ok_os_names?
+   .. Should this be called ok_os_names?
 
 
 .. attribute:: RExec.ok_sys_names
@@ -285,6 +285,3 @@
 security is at stake, it may be preferable to write simple code which is
 sometimes overly restrictive, instead of more general code that is also more
 complex and may harbor a subtle security hole.
-
-.. % 
-
diff --git a/Doc/library/sched.rst b/Doc/library/sched.rst
index bf3efbf..40d9331 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 0f9b967..5bd69cd 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 dbe7e66..b6b950c 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -568,7 +568,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 b84de76..c42a1d7 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -351,7 +351,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 5b341b8..99c1923 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -162,11 +162,14 @@
 .. index::
    pair: operator; comparison
    operator: ==
+   operator: <
+   operator: <=
+   operator: >
+   operator: >=
+   operator: !=
    operator: is
    operator: is not
 
-.. % XXX *All* others have funny characters < ! >
-
 Notes:
 
 (1)
@@ -361,8 +364,8 @@
    
    .. versionadded:: 2.6
 
-   
-.. % XXXJH exceptions: overflow (when? what operations?) zerodivision
+
+.. XXXJH exceptions: overflow (when? what operations?) zerodivision
 
 
 .. _bitstring-ops:
@@ -1232,7 +1235,7 @@
 Since Python strings have an explicit length, ``%s`` conversions do not assume
 that ``'\0'`` is the end of the string.
 
-.. % XXX Examples?
+.. 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``
@@ -1854,8 +1857,7 @@
    module: socket
 
 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
@@ -1879,7 +1881,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
 
@@ -2020,7 +2022,7 @@
    Note that not all file objects are seekable.
 
    .. versionchanged:: 2.6
-      Passing float values as offset has been deprecated
+      Passing float values as offset has been deprecated.
 
 
 .. method:: file.tell()
@@ -2469,9 +2471,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 9cf4eb2..d4952bb 100644
--- a/Doc/library/struct.rst
+++ b/Doc/library/struct.rst
@@ -192,7 +192,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 f9c7f29..24ce207 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -525,9 +525,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.
 
    .. versionadded:: 2.0
 
diff --git a/Doc/library/tabnanny.rst b/Doc/library/tabnanny.rst
index 8032655..875f3aa 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,16 +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.
-
-   .. % XXX may be add a reference to IDLE?
-
diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst
index e5e7608..ff25fe9 100644
--- a/Doc/library/tarfile.rst
+++ b/Doc/library/tarfile.rst
@@ -210,10 +210,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:
 
@@ -440,10 +436,6 @@
 
    .. versionadded:: 2.6
 
-.. % -----------------
-.. % TarInfo Objects
-.. % -----------------
-
 
 .. _tarinfo-objects:
 
@@ -599,10 +591,6 @@
 
    Return :const:`True` if it is one of character device, block device or FIFO.
 
-.. % ------------------------
-.. % Examples
-.. % ------------------------
-
 
 .. _tar-examples:
 
@@ -660,10 +648,6 @@
        tar.extract(tarinfo)
    tar.close()
 
-.. % ------------
-.. % Tar format
-.. % ------------
-
 
 .. _tar-formats:
 
@@ -704,11 +688,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 90b4db3..f5c1fda 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 ca70403..afe8cbe 100644
--- a/Doc/library/thread.rst
+++ b/Doc/library/thread.rst
@@ -65,12 +65,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 4701c15..04ea23a 100644
--- a/Doc/library/tix.rst
+++ b/Doc/library/tix.rst
@@ -79,8 +79,6 @@
 
    package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]
 
-.. % $ <-- bow to font-lock
-
 
 Tix Widgets
 -----------
@@ -90,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
@@ -105,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()
@@ -115,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()
@@ -127,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()
@@ -140,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()
@@ -151,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()
@@ -163,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()
@@ -174,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()
@@ -184,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()
@@ -196,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()
@@ -207,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()
@@ -217,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
@@ -233,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()
@@ -245,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()
@@ -257,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()
@@ -278,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()
@@ -291,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()
@@ -303,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
@@ -319,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()
@@ -331,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()
@@ -346,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
@@ -366,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
@@ -392,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()
@@ -406,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()
@@ -419,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
@@ -442,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
@@ -455,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
@@ -489,15 +487,6 @@
    <http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixForm.htm>`_ geometry
    manager based on attachment rules for all Tk widgets.
 
-.. % begin{latexonly}
-.. % \subsection{Tix Class Structure}
-.. % 
-.. % \begin{figure}[hbtp]
-.. % \centerline{\epsfig{file=hierarchy.png,width=.9\textwidth}}
-.. % \vspace{.5cm}
-.. % \caption{The Class Hierarchy of Tix Widgets}
-.. % \end{figure}
-.. % end{latexonly}
 
 
 Tix Commands
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 d52c1e0..71b71e2 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:
 
    .. versionchanged:: 2.4
       The *useTk* parameter was added.
@@ -118,8 +118,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.
@@ -182,17 +180,6 @@
 A Simple Hello World Program
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-.. % HelloWorld.html
-.. % begin{latexonly}
-.. % \begin{figure}[hbtp]
-.. % \centerline{\epsfig{file=HelloWorld.gif,width=.9\textwidth}}
-.. % \vspace{.5cm}
-.. % \caption{HelloWorld gadget image}
-.. % \end{figure}
-.. % See also the hello-world \ulink{notes}{classes/HelloWorld-notes.html} and
-.. % \ulink{summary}{classes/HelloWorld-summary.html}.
-.. % end{latexonly}
-
 ::
 
    from Tkinter import *
@@ -233,8 +220,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
@@ -349,13 +334,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)
@@ -468,8 +446,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
@@ -478,8 +454,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
@@ -536,8 +510,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
@@ -584,8 +556,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
@@ -600,8 +570,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 *
@@ -629,8 +597,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"``.
@@ -710,8 +676,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::
@@ -767,8 +731,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 e4fea83..c316e32 100644
--- a/Doc/library/undoc.rst
+++ b/Doc/library/undoc.rst
@@ -195,13 +195,12 @@
 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}.
+.. (lib-old is empty as of Python 2.5)
 
-.. % XXX need Windows instructions!
+   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).
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 7d9c588..5a79cfa 100644
--- a/Doc/library/weakref.rst
+++ b/Doc/library/weakref.rst
@@ -15,8 +15,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.
@@ -312,7 +312,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 ab4cec0..91f5e87 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -29,7 +29,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 54c5f3d..3f1d2a4 100644
--- a/Doc/library/xml.dom.minidom.rst
+++ b/Doc/library/xml.dom.minidom.rst
@@ -214,11 +214,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
@@ -229,7 +229,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 5f0a9aa..1fbca03 100644
--- a/Doc/library/xml.dom.rst
+++ b/Doc/library/xml.dom.rst
@@ -40,13 +40,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
@@ -157,7 +157,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:
@@ -906,7 +906,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
@@ -919,7 +919,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
@@ -1001,8 +1001,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:
@@ -1011,7 +1011,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;
@@ -1030,13 +1030,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 0ea914b..3f85b3b 100644
--- a/Doc/library/xml.etree.rst
+++ b/Doc/library/xml.etree.rst
@@ -14,7 +14,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 bc287d1..832f1dc 100644
--- a/Doc/library/xml.sax.handler.rst
+++ b/Doc/library/xml.sax.handler.rst
@@ -207,7 +207,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 d64a4fc..75c7d5b 100644
--- a/Doc/library/xml.sax.reader.rst
+++ b/Doc/library/xml.sax.reader.rst
@@ -349,8 +349,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 4322fd0..a0cbff9 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.
 
 .. versionadded:: 2.2
 
@@ -544,11 +543,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 f2551d7..e904a37 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>
-
 .. versionadded:: 1.6
 
 The ZIP file format is a common archive and compression standard. This module
diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst
index edf5240..94e429e 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]])
 
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index 9c6135c..e37618a 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -70,6 +70,8 @@
 
 
 .. _if:
+.. _elif:
+.. _else:
 
 The :keyword:`if` statement
 ===========================
@@ -206,6 +208,8 @@
 
 
 .. _try:
+.. _except:
+.. _finally:
 
 The :keyword:`try` statement
 ============================
@@ -320,6 +324,7 @@
 
 
 .. _with:
+.. _as:
 
 The :keyword:`with` statement
 =============================
@@ -386,6 +391,7 @@
 
 
 .. _function:
+.. _def:
 
 Function definitions
 ====================
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index dc2fbd8..b45044d 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -214,8 +214,6 @@
       without causing overflow, will yield the same result in the long integer domain
       or when using mixed operands.
 
-      .. % Integers
-
    Floating point numbers
       .. index::
          object: floating point
@@ -241,8 +239,6 @@
       The real and imaginary parts of a complex number ``z`` can be retrieved through
       the read-only attributes ``z.real`` and ``z.imag``.
 
-   .. % Numbers
-
 Sequences
    .. index::
       builtin: len
@@ -346,8 +342,6 @@
          by itself does not create a tuple, since parentheses must be usable for grouping
          of expressions).  An empty tuple can be formed by an empty pair of parentheses.
 
-      .. % Immutable sequences
-
    Mutable sequences
       .. index::
          object: mutable sequence
@@ -376,10 +370,6 @@
       The extension module :mod:`array` provides an additional example of a mutable
       sequence type.
 
-      .. % Mutable sequences
-
-   .. % Sequences
-
 Set types
    .. index::
       builtin: len
@@ -414,8 +404,6 @@
       :term:`hashable`, it can be used again as an element of another set, or as
       a dictionary key.
 
-   .. % Set types
-
 Mappings
    .. index::
       builtin: len
@@ -453,8 +441,6 @@
       The extension modules :mod:`dbm`, :mod:`gdbm`, and :mod:`bsddb` provide
       additional examples of mapping types.
 
-   .. % Mapping types
-
 Callable types
    .. index::
       object: callable
@@ -726,8 +712,6 @@
    object used to initialize the module (since it isn't needed once the
    initialization is done).
 
-   .. % 
-
    Attribute assignment updates the module's namespace dictionary, e.g., ``m.x =
    1`` is equivalent to ``m.__dict__["x"] = 1``.
 
@@ -1078,10 +1062,6 @@
       described above, under "User-defined methods". Class method objects are created
       by the built-in :func:`classmethod` constructor.
 
-   .. % Internal types
-
-.. % Types
-.. % =========================================================================
 
 .. _newstyle:
 
@@ -1128,8 +1108,6 @@
 new-style classes.  This change will probably only be feasible in Python 3.0.
 new-style classic old-style
 
-.. % =========================================================================
-
 
 .. _specialnames:
 
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index 0f45f94..ea2bb1a 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -105,8 +105,6 @@
 defined truncation may happen.  If the class name consists only of underscores,
 no transformation is done.
 
-.. % 
-.. % 
 
 
 .. _atom-literals:
@@ -979,6 +977,10 @@
 
 
 .. _comparisons:
+.. _is:
+.. _isnot:
+.. _in:
+.. _notin:
 
 Comparisons
 ===========
@@ -1108,6 +1110,9 @@
 
 
 .. _booleans:
+.. _and:
+.. _or:
+.. _not:
 
 Boolean operations
 ==================
diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst
index 09b8288..7857887 100644
--- a/Doc/reference/lexical_analysis.rst
+++ b/Doc/reference/lexical_analysis.rst
@@ -131,7 +131,7 @@
 original encoding before interpretation starts. The encoding declaration must
 appear on a line of its own.
 
-.. % XXX there should be a list of supported encodings.
+.. XXX there should be a list of supported encodings.
 
 
 .. _explicit-joining:
@@ -149,11 +149,7 @@
 characters (``\``), as follows: when a physical line ends in a backslash that is
 not part of a string literal or comment, it is joined with the following forming
 a single logical line, deleting the backslash and the following end-of-line
-character.  For example:
-
-.. % 
-
-::
+character.  For example::
 
    if 1900 < year < 2100 and 1 <= month <= 12 \
       and 1 <= day <= 31 and 0 <= hour < 24 \
diff --git a/Doc/reference/simple_stmts.rst b/Doc/reference/simple_stmts.rst
index 69bcd9d..513543b 100644
--- a/Doc/reference/simple_stmts.rst
+++ b/Doc/reference/simple_stmts.rst
@@ -142,8 +142,6 @@
   for the object previously bound to the name to reach zero, causing the object to
   be deallocated and its destructor (if it has one) to be called.
 
-  .. % nested
-
 * If the target is a target list enclosed in parentheses or in square brackets:
   The object must be a sequence with the same number of items as there are targets
   in the target list, and its items are assigned, from left to right, to the
@@ -295,16 +293,16 @@
    single: __debug__
    exception: AssertionError
 
-These equivalences assume that ``__debug__`` and :exc:`AssertionError` refer to
+These equivalences assume that :const:`__debug__` and :exc:`AssertionError` refer to
 the built-in variables with those names.  In the current implementation, the
-built-in variable ``__debug__`` is ``True`` under normal circumstances,
+built-in variable :const:`__debug__` is ``True`` under normal circumstances,
 ``False`` when optimization is requested (command line option -O).  The current
 code generator emits no code for an assert statement when optimization is
 requested at compile time.  Note that it is unnecessary to include the source
 code for the expression that failed in the error message; it will be displayed
 as part of the stack trace.
 
-Assignments to ``__debug__`` are illegal.  The value for the built-in variable
+Assignments to :const:`__debug__` are illegal.  The value for the built-in variable
 is determined when the interpreter starts.
 
 
@@ -634,6 +632,7 @@
 
 
 .. _import:
+.. _from:
 
 The :keyword:`import` statement
 ===============================
@@ -755,8 +754,6 @@
 http://www.python.org/doc/essays/packages.html for more details, also about how
 the module search works from inside a package.]
 
-.. % 
-
 .. index:: builtin: __import__
 
 The built-in function :func:`__import__` is provided to support applications
diff --git a/Doc/tutorial/appetite.rst b/Doc/tutorial/appetite.rst
index f1c80e9..120955e 100644
--- a/Doc/tutorial/appetite.rst
+++ b/Doc/tutorial/appetite.rst
@@ -75,8 +75,6 @@
 more detail.  Since the best way to learn a language is to use it, the tutorial
 invites you to play with the Python interpreter as you read.
 
-.. % \section{Where From Here \label{where}}
-
 In the next chapter, the mechanics of using the interpreter are explained.  This
 is rather mundane information, but essential for trying out the examples shown
 later.
diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst
index e4e8451..7761095 100644
--- a/Doc/tutorial/classes.rst
+++ b/Doc/tutorial/classes.rst
@@ -341,7 +341,7 @@
 Random Remarks
 ==============
 
-.. % [These should perhaps be placed more carefully...]
+.. These should perhaps be placed more carefully...
 
 Data attributes override method attributes with the same name; to avoid
 accidental name conflicts, which may cause hard-to-find bugs in large programs,
@@ -457,7 +457,7 @@
 have no special privileges when calling other methods of the same object, a
 method of a base class that calls another method defined in the same base class
 may end up calling a method of a derived class that overrides it.  (For C++
-programmers: all methods in Python are effectively :keyword:`virtual`.)
+programmers: all methods in Python are effectively ``virtual``.)
 
 An overriding method in a derived class may in fact want to extend rather than
 simply replace the base class method of the same name. There is a simple way to
@@ -574,12 +574,10 @@
 can define a class with methods :meth:`read` and :meth:`readline` that get the
 data from a string buffer instead, and pass it as an argument.
 
-.. % (Unfortunately, this
-.. % technique has its limitations: a class can't define operations that
-.. % are accessed by special syntax such as sequence subscripting or
-.. % arithmetic operators, and assigning such a ``pseudo-file'' to
-.. % \code{sys.stdin} will not cause the interpreter to read further input
-.. % from it.)
+.. (Unfortunately, this technique has its limitations: a class can't define
+   operations that are accessed by special syntax such as sequence subscripting
+   or arithmetic operators, and assigning such a "pseudo-file" to sys.stdin will
+   not cause the interpreter to read further input from it.)
 
 Instance method objects have attributes, too: ``m.im_self`` is the instance
 object with the method :meth:`m`, and ``m.im_func`` is the function object
diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst
index 0f72d3d..4869496 100644
--- a/Doc/tutorial/controlflow.rst
+++ b/Doc/tutorial/controlflow.rst
@@ -31,11 +31,8 @@
 There can be zero or more :keyword:`elif` parts, and the :keyword:`else` part is
 optional.  The keyword ':keyword:`elif`' is short for 'else if', and is useful
 to avoid excessive indentation.  An  :keyword:`if` ... :keyword:`elif` ...
-:keyword:`elif` ... sequence is a substitute for the :keyword:`switch` or
-:keyword:`case` statements found in other languages.
-
-.. % Weird spacings happen here if the wrapping of the source text
-.. % gets changed in the wrong way.
+:keyword:`elif` ... sequence is a substitute for the ``switch`` or
+``case`` statements found in other languages.
 
 
 .. _tut-for:
@@ -54,8 +51,8 @@
 iterates over the items of any sequence (a list or a string), in the order that
 they appear in the sequence.  For example (no pun intended):
 
-.. % One suggestion was to give a real C example here, but that may only
-.. % serve to confuse non-C programmers.
+.. One suggestion was to give a real C example here, but that may only serve to
+   confuse non-C programmers.
 
 ::
 
diff --git a/Doc/tutorial/datastructures.rst b/Doc/tutorial/datastructures.rst
index c243fe3..9f3320f 100644
--- a/Doc/tutorial/datastructures.rst
+++ b/Doc/tutorial/datastructures.rst
@@ -400,7 +400,7 @@
 There is a small bit of asymmetry here:  packing multiple values always creates
 a tuple, and unpacking works for any sequence.
 
-.. % XXX Add a bit on the difference between tuples and lists.
+.. XXX Add a bit on the difference between tuples and lists.
 
 
 .. _tut-sets:
diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst
index beca1be..d3b912a 100644
--- a/Doc/tutorial/inputoutput.rst
+++ b/Doc/tutorial/inputoutput.rst
@@ -178,11 +178,9 @@
 :func:`open` returns a file object, and is most commonly used with two
 arguments: ``open(filename, mode)``.
 
-.. % Opening files
-
 ::
 
-   >>> f=open('/tmp/workfile', 'w')
+   >>> f = open('/tmp/workfile', 'w')
    >>> print f
    <open file '/tmp/workfile', mode 'w' at 80a0960>
 
diff --git a/Doc/tutorial/interpreter.rst b/Doc/tutorial/interpreter.rst
index 987835b..1ba14d9 100644
--- a/Doc/tutorial/interpreter.rst
+++ b/Doc/tutorial/interpreter.rst
@@ -219,8 +219,8 @@
 file containing your start-up commands.  This is similar to the :file:`.profile`
 feature of the Unix shells.
 
-.. % XXX This should probably be dumped in an appendix, since most people
-.. % don't use Python interactively in non-trivial ways.
+.. XXX This should probably be dumped in an appendix, since most people
+   don't use Python interactively in non-trivial ways.
 
 This file is only read in interactive sessions, not when Python reads commands
 from a script, and not when :file:`/dev/tty` is given as the explicit source of
diff --git a/Doc/tutorial/introduction.rst b/Doc/tutorial/introduction.rst
index 7b663cc..3bbe53a 100644
--- a/Doc/tutorial/introduction.rst
+++ b/Doc/tutorial/introduction.rst
@@ -11,18 +11,11 @@
 line by itself in an example means you must type a blank line; this is used to
 end a multi-line command.
 
-.. % 
-.. % \footnote{
-.. % I'd prefer to use different fonts to distinguish input
-.. % from output, but the amount of LaTeX hacking that would require
-.. % is currently beyond my ability.
-.. % }
-
 Many of the examples in this manual, even those entered at the interactive
 prompt, include comments.  Comments in Python start with the hash character,
-``'#'``, and extend to the end of the physical line.  A comment may appear at
+``#``, and extend to the end of the physical line.  A comment may appear at
 the start of a line or following whitespace or code, but not within a string
-literal.  A hash  character within a string literal is just a hash character.
+literal.  A hash character within a string literal is just a hash character.
 
 Some examples::
 
@@ -642,5 +635,3 @@
 
   Note that the interpreter inserts a newline before it prints the next prompt if
   the last line was not completed.
-
-
diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst
index fbe931e..6e45f64 100644
--- a/Doc/tutorial/modules.rst
+++ b/Doc/tutorial/modules.rst
@@ -218,8 +218,6 @@
 * The module :mod:`compileall` can create :file:`.pyc` files (or :file:`.pyo`
   files when :option:`-O` is used) for all modules in a directory.
 
-  .. % 
-
 
 .. _tut-standardmodules:
 
@@ -238,11 +236,7 @@
 provided on Windows systems. One particular module deserves some attention:
 :mod:`sys`, which is built into every Python interpreter.  The variables
 ``sys.ps1`` and ``sys.ps2`` define the strings used as primary and secondary
-prompts:
-
-.. % 
-
-::
+prompts::
 
    >>> import sys
    >>> sys.ps1
@@ -451,8 +445,6 @@
 file names with a capitalized first letter.)  The DOS 8+3 filename restriction
 adds another interesting problem for long module names.
 
-.. % The \code{__all__} Attribute
-
 The only solution is for the package author to provide an explicit index of the
 package.  The import statement uses the following convention: if a package's
 :file:`__init__.py` code defines a list named ``__all__``, it is taken to be the
diff --git a/Doc/tutorial/whatnow.rst b/Doc/tutorial/whatnow.rst
index 599fcbd..5f332ae 100644
--- a/Doc/tutorial/whatnow.rst
+++ b/Doc/tutorial/whatnow.rst
@@ -61,8 +61,8 @@
 many of the questions that come up again and again, and may already contain the
 solution for your problem.
 
-.. % Postings figure based on average of last six months activity as
-.. % reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182
-.. % days = 116.9 msgs / day and steadily increasing.
+.. Postings figure based on average of last six months activity as
+   reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182
+   days = 116.9 msgs / day and steadily increasing. (XXX up to date figures?) 
 
 
diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst
index 035f405..2b52544 100644
--- a/Doc/using/windows.rst
+++ b/Doc/using/windows.rst
@@ -158,8 +158,7 @@
 :file:`C:\\Python\\Lib\\` and third-party modules should be stored in
 :file:`C:\\Python\\Lib\\site-packages\\`.
 
-.. % `` this fixes syntax highlighting errors in some editors
-   due to the \\ hackery
+.. `` this fixes syntax highlighting errors in some editors due to the \\ hackery
 
 You can add folders to your search path to make Python's import mechanism search
 in these directories as well.  Use :envvar:`PYTHONPATH`, as described in
@@ -167,7 +166,7 @@
 separated by semicolons, though, to distinguish them from drive identifiers
 (:file:`C:\\` etc.).
 
-.. % ``
+.. ``
 
 Modifying the module search path can also be done through the Windows registry:
 Edit
diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst
index ccb36f6..9ea5dc1 100644
--- a/Doc/whatsnew/2.0.rst
+++ b/Doc/whatsnew/2.0.rst
@@ -6,7 +6,7 @@
 
 .. |release| replace:: 1.02
 
-.. % $Id: whatsnew20.tex 50964 2006-07-30 03:03:43Z fred.drake $
+.. $Id: whatsnew20.tex 50964 2006-07-30 03:03:43Z fred.drake $
 
 
 Introduction
@@ -26,7 +26,7 @@
 paid to spend their days fixing bugs, and also due to the improved communication
 resulting  from moving to SourceForge.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 What About Python 1.6?
@@ -50,7 +50,7 @@
 features described in this document are only in 2.0, because a lot of work was
 done between May and September.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New Development Process
@@ -134,7 +134,7 @@
 from PEP 201, "Lockstep Iteration", to PEP 225, "Elementwise/Objectwise
 Operators".
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Unicode
@@ -255,7 +255,7 @@
 used in testing and future-proofing your Python code, since some future version
 of Python may drop support for 8-bit strings and provide only Unicode strings.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 List Comprehensions
@@ -342,7 +342,7 @@
 was then discussed for a seemingly endless time on the python-dev mailing list
 and kept up-to-date by Skip Montanaro.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Augmented Assignment
@@ -360,7 +360,7 @@
 :class:`Number` class stores a number and supports using += to create a new
 instance with an incremented value.
 
-.. % The empty groups below prevent conversion to guillemets.
+.. The empty groups below prevent conversion to guillemets.
 
 ::
 
@@ -383,7 +383,7 @@
 and PHP also support them.  The augmented assignment patch was implemented by
 Thomas Wouters.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 String Methods
@@ -426,7 +426,7 @@
 module, with the arguments reversed. In other words, ``s.join(seq)`` is
 equivalent to the old ``string.join(seq, s)``.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Garbage Collection of Cycles
@@ -488,7 +488,7 @@
 the relevant discussion, especially in the threads titled "Reference cycle
 collection for Python" and "Finalization again".
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Other Core Changes
@@ -565,8 +565,8 @@
 :meth:`__cmp__` method encountered an error, since the resulting exception would
 simply be silently swallowed.
 
-.. % Starting URL:
-.. % http://www.python.org/pipermail/python-dev/2000-April/004834.html
+.. Starting URL:
+.. http://www.python.org/pipermail/python-dev/2000-April/004834.html
 
 Work has been done on porting Python to 64-bit Windows on the Itanium processor,
 mostly by Trent Mick of ActiveState.  (Confusingly, ``sys.platform`` is still
@@ -641,7 +641,7 @@
 value for a given platform can be found by running a new script,
 :file:`Misc/find_recursionlimit.py`.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Porting to 2.0
@@ -728,13 +728,13 @@
 exceptions was translated from Python to a built-in C module, written by Barry
 Warsaw and Fredrik Lundh.
 
-.. % Commented out for now -- I don't think anyone will care.
-.. % The pattern and match objects provided by SRE are C types, not Python
-.. % class instances as in 1.5.  This means you can no longer inherit from
-.. % \class{RegexObject} or \class{MatchObject}, but that shouldn't be much
-.. % of a problem since no one should have been doing that in the first
-.. % place.
-.. % ======================================================================
+.. Commented out for now -- I don't think anyone will care.
+   The pattern and match objects provided by SRE are C types, not Python
+   class instances as in 1.5.  This means you can no longer inherit from
+   \class{RegexObject} or \class{MatchObject}, but that shouldn't be much
+   of a problem since no one should have been doing that in the first
+   place.
+.. ======================================================================
 
 
 Extending/Embedding Changes
@@ -805,7 +805,7 @@
 A wrapper API was added for Unix-style signal handlers. :func:`PyOS_getsig` gets
 a signal handler and :func:`PyOS_setsig` will set a new handler.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Distutils: Making Modules Easy to Install
@@ -875,7 +875,7 @@
 All this is documented in a new manual, *Distributing Python Modules*, that
 joins the basic set of Python documentation.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 XML Modules
@@ -1024,7 +1024,7 @@
 
 * The :mod:`sgmlop` parser accelerator module, written by Fredrik Lundh.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Module changes
@@ -1069,7 +1069,7 @@
 partially funded by Hewlett Packard, supports matching against both 8-bit
 strings and Unicode strings.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New modules
@@ -1145,7 +1145,7 @@
   import hooks, in comparison to the existing :mod:`ihooks` module.  (Implemented
   by Greg Stein, with much discussion on python-dev along the way.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 IDLE Improvements
@@ -1179,7 +1179,7 @@
 * Three new keystroke commands: Check module (Alt-F5), Import module (F5) and
   Run script (Ctrl-F5).
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Deleted and Deprecated Modules
diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst
index b87ef5b..c3f1280 100644
--- a/Doc/whatsnew/2.1.rst
+++ b/Doc/whatsnew/2.1.rst
@@ -6,7 +6,7 @@
 
 .. |release| replace:: 1.01
 
-.. % $Id: whatsnew21.tex 50964 2006-07-30 03:03:43Z fred.drake $
+.. $Id: whatsnew21.tex 50964 2006-07-30 03:03:43Z fred.drake $
 
 
 Introduction
@@ -29,7 +29,7 @@
 
 The final release of Python 2.1 was made on April 17, 2001.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 227: Nested Scopes
@@ -123,7 +123,7 @@
    :pep:`227` - Statically Nested Scopes
       Written and implemented by Jeremy Hylton.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 236: __future__ Directives
@@ -153,7 +153,7 @@
    :pep:`236` - Back to the :mod:`__future__`
       Written by Tim Peters, and primarily implemented by Jeremy Hylton.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 207: Rich Comparisons
@@ -223,7 +223,7 @@
       Written by Guido van Rossum, heavily based on earlier work by David Ascher, and
       implemented by Guido van Rossum.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 230: Warning Framework
@@ -295,7 +295,7 @@
    :pep:`230` - Warning Framework
       Written and implemented by Guido van Rossum.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 229: New Build System
@@ -335,7 +335,7 @@
    :pep:`229` - Using Distutils to Build Python
       Written and implemented by A.M. Kuchling.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 205: Weak References
@@ -416,7 +416,7 @@
    :pep:`205` - Weak References
       Written and implemented by Fred L. Drake, Jr.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 232: Function Attributes
@@ -454,7 +454,7 @@
    :pep:`232` - Function Attributes
       Written and implemented by Barry Warsaw.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 235: Importing Modules on Case-Insensitive Platforms
@@ -472,7 +472,7 @@
 insensitive matching can be requested by setting the :envvar:`PYTHONCASEOK`
 environment variable before starting the Python interpreter.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 217: Interactive Display Hook
@@ -502,7 +502,7 @@
    :pep:`217` - Display Hook for Interactive Use
       Written and implemented by Moshe Zadka.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 208: New Coercion Model
@@ -534,7 +534,7 @@
       Marc-André Lemburg.  Read this to understand the fine points of how numeric
       operations will now be processed at the C level.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 241: Metadata in Python Packages
@@ -574,7 +574,7 @@
       Written by Sean Reifschneider, this draft PEP describes a proposed mechanism for
       uploading  Python packages to a central server.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New and Improved Modules
@@ -677,7 +677,7 @@
   implementation.  Use it for debugging, and resist the temptation to put it into
   production code.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Other Changes and Fixes
@@ -782,7 +782,7 @@
 edits, and other tweaks, too lengthy to be worth itemizing; see the CVS logs for
 the full details if you want them.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Acknowledgements
diff --git a/Doc/whatsnew/2.2.rst b/Doc/whatsnew/2.2.rst
index 6a7e0e8..4cf1438 100644
--- a/Doc/whatsnew/2.2.rst
+++ b/Doc/whatsnew/2.2.rst
@@ -6,7 +6,7 @@
 
 .. |release| replace:: 1.02
 
-.. % $Id: whatsnew22.tex 37315 2004-09-10 19:33:00Z akuchling $
+.. $Id: whatsnew22.tex 37315 2004-09-10 19:33:00Z akuchling $
 
 
 Introduction
@@ -36,7 +36,7 @@
       "What's So Special About Python 2.2?" is also about the new 2.2 features, and
       was written by Cameron Laird and Kathryn Soraiz.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEPs 252 and 253: Type and Class Changes
@@ -414,7 +414,7 @@
 resort to it after all other avenues have been exhausted, including posting a
 question to python-list or python-dev.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 234: Iterators
@@ -535,7 +535,7 @@
       Written by Ka-Ping Yee and GvR; implemented  by the Python Labs crew, mostly by
       GvR and Tim Peters.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 255: Simple Generators
@@ -662,7 +662,7 @@
       Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland.  Implemented mostly
       by Neil Schemenauer and Tim Peters, with other fixes from the Python Labs crew.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 237: Unifying Long Integers and Integers
@@ -702,7 +702,7 @@
       Written by Moshe Zadka and Guido van Rossum.  Implemented mostly by Guido van
       Rossum.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 238: Changing the Division Operator
@@ -770,7 +770,7 @@
    :pep:`238` - Changing the Division Operator
       Written by Moshe Zadka and  Guido van Rossum.  Implemented by Guido van Rossum..
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Unicode Changes
@@ -832,7 +832,7 @@
    :pep:`261` - Support for 'wide' Unicode characters
       Written by Paul Prescod.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 227: Nested Scopes
@@ -927,7 +927,7 @@
    :pep:`227` - Statically Nested Scopes
       Written and implemented by Jeremy Hylton.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New and Improved Modules
@@ -1042,7 +1042,7 @@
   scheduling an activity to happen at some future time.  (Contributed by Itamar
   Shtull-Trauring.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Interpreter Changes and Fixes
@@ -1122,7 +1122,7 @@
   takes 2 parameters instead of 3.  The third argument was never used, and can
   simply be discarded when porting code from earlier versions to Python 2.2.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Other Changes and Fixes
@@ -1155,23 +1155,23 @@
   left commented out in :file:`setup.py`.  People who want to experiment with
   these modules can uncomment them manually.
 
-  .. % Jack's original comments:
-  .. % The main change is the possibility to build Python as a
-  .. % framework. This installs a self-contained Python installation plus the
-  .. % OSX framework "glue" into /Library/Frameworks/Python.framework (or
-  .. % another location of choice). For now there is little immedeate added
-  .. % benefit to this (actually, there is the disadvantage that you have to
-  .. % change your PATH to be able to find Python), but it is the basis for
-  .. % creating a fullblown Python application, porting the MacPython IDE,
-  .. % possibly using Python as a standard OSA scripting language and much
-  .. % more. You enable this with "configure --enable-framework".
-  .. % The other change is that most MacPython toolbox modules, which
-  .. % interface to all the MacOS APIs such as windowing, quicktime,
-  .. % scripting, etc. have been ported. Again, most of these are not of
-  .. % immedeate use, as they need a full application to be really useful, so
-  .. % they have been commented out in setup.py. People wanting to experiment
-  .. % can uncomment them. Gestalt and Internet Config modules are enabled by
-  .. % default.
+  .. Jack's original comments:
+     The main change is the possibility to build Python as a
+     framework. This installs a self-contained Python installation plus the
+     OSX framework "glue" into /Library/Frameworks/Python.framework (or
+     another location of choice). For now there is little immedeate added
+     benefit to this (actually, there is the disadvantage that you have to
+     change your PATH to be able to find Python), but it is the basis for
+     creating a fullblown Python application, porting the MacPython IDE,
+     possibly using Python as a standard OSA scripting language and much
+     more. You enable this with "configure --enable-framework".
+     The other change is that most MacPython toolbox modules, which
+     interface to all the MacOS APIs such as windowing, quicktime,
+     scripting, etc. have been ported. Again, most of these are not of
+     immedeate use, as they need a full application to be really useful, so
+     they have been commented out in setup.py. People wanting to experiment
+     can uncomment them. Gestalt and Internet Config modules are enabled by
+     default.
 
 * Keyword arguments passed to builtin functions that don't take them now cause a
   :exc:`TypeError` exception to be raised, with the message "*function* takes no
@@ -1253,7 +1253,7 @@
   unpredictably depending on the platform.  A call such as ``pow(2.0, 8.0, 7.0)``
   will now raise a :exc:`TypeError` exception.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Acknowledgements
diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst
index 6e69ada..f5c53c0 100644
--- a/Doc/whatsnew/2.3.rst
+++ b/Doc/whatsnew/2.3.rst
@@ -6,7 +6,7 @@
 
 .. |release| replace:: 1.01
 
-.. % $Id: whatsnew23.tex 54631 2007-03-31 11:58:36Z georg.brandl $
+.. $Id: whatsnew23.tex 54631 2007-03-31 11:58:36Z georg.brandl $
 
 This article explains the new features in Python 2.3.  Python 2.3 was released
 on July 29, 2003.
@@ -34,7 +34,7 @@
 complete implementation and design rationale, refer to the PEP for a particular
 new feature.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 218: A Standard Set Datatype
@@ -117,7 +117,7 @@
       PEP written by Greg V. Wilson. Implemented by Greg V. Wilson, Alex Martelli, and
       GvR.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-generators:
@@ -248,7 +248,7 @@
       Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland.  Implemented mostly
       by Neil Schemenauer and Tim Peters, with other fixes from the Python Labs crew.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-encodings:
@@ -282,7 +282,7 @@
       Written by Marc-André Lemburg and Martin von Löwis; implemented by Suzuki Hisao
       and Martin von Löwis.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 273: Importing Modules from ZIP Archives
@@ -329,7 +329,7 @@
       Just van Rossum  that uses the import hooks described in :pep:`302`. See section
       :ref:`section-pep302` for a description of the new import hooks.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 277: Unicode file name support for Windows NT
@@ -363,7 +363,7 @@
       Written by Neil Hodgson; implemented by Neil Hodgson, Martin von Löwis, and Mark
       Hammond.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 278: Universal Newline Support
@@ -398,7 +398,7 @@
    :pep:`278` - Universal Newline Support
       Written and implemented by Jack Jansen.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-enumerate:
@@ -430,7 +430,7 @@
    :pep:`279` - The enumerate() built-in function
       Written and implemented by Raymond D. Hettinger.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 282: The logging Package
@@ -536,7 +536,7 @@
    :pep:`282` - A Logging System
       Written by Vinay Sajip and Trent Mick; implemented by Vinay Sajip.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-bool:
@@ -608,7 +608,7 @@
    :pep:`285` - Adding a bool type
       Written and implemented by GvR.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 293: Codec Error Handling Callbacks
@@ -640,7 +640,7 @@
    :pep:`293` - Codec Error Handling Callbacks
       Written and implemented by Walter Dörwald.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-pep301:
@@ -689,7 +689,7 @@
    :pep:`301` - Package Index and Metadata for Distutils
       Written and implemented by Richard Jones.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-pep302:
@@ -755,7 +755,7 @@
    :pep:`302` - New Import Hooks
       Written by Just van Rossum and Paul Moore. Implemented by Just van Rossum.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-pep305:
@@ -801,7 +801,7 @@
       Written and implemented  by Kevin Altis, Dave Cole, Andrew McNamara, Skip
       Montanaro, Cliff Wells.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-pep307:
@@ -844,7 +844,7 @@
    :pep:`307` - Extensions to the pickle protocol
       Written and implemented  by Guido van Rossum and Tim Peters.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-slices:
@@ -954,7 +954,7 @@
 consistent with Python 2.2, where :class:`int`, :class:`str`, etc., underwent
 the same change.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Other Language Changes
@@ -1042,8 +1042,6 @@
   objects available in the :mod:`types` module.) For example, you can create a new
   module object with the following code:
 
-  .. % XXX should new.py use PendingDeprecationWarning?
-
   ::
 
      >>> import types
@@ -1115,7 +1113,7 @@
   assigned to :attr:`__bases__` along the lines of those relating to assigning to
   an instance's :attr:`__class__` attribute.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 String Changes
@@ -1179,7 +1177,7 @@
   the usual way when the only reference to them is from the internal dictionary of
   interned strings.  (Implemented by Oren Tirosh.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Optimizations
@@ -1211,7 +1209,7 @@
 The net result of the 2.3 optimizations is that Python 2.3 runs the  pystone
 benchmark around 25% faster than Python 2.2.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New, Improved, and Deprecated Modules
@@ -1566,8 +1564,6 @@
   http://mail.python.org/pipermail/python-dev/2002-December/031107.html for a more
   detailed explanation of this change.  (Implemented by Martin von Löwis.)
 
-  .. % 
-
 * Calling Tcl methods through :mod:`_tkinter` no longer  returns only strings.
   Instead, if Tcl returns other objects those objects are converted to their
   Python equivalent, if one exists, or wrapped with a :class:`_tkinter.Tcl_Obj`
@@ -1671,7 +1667,7 @@
   To implement this change, the :mod:`stringprep` module, the  ``mkstringprep``
   tool and the ``punycode`` encoding have been added.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Date/Time Type
@@ -1726,7 +1722,7 @@
 For more information, refer to the module's reference documentation.
 (Contributed by Tim Peters.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 The optparse Module
@@ -1791,7 +1787,7 @@
 Optik was written by Greg Ward, with suggestions from the readers of the Getopt
 SIG.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-pymalloc:
@@ -1864,7 +1860,7 @@
       of the file :file:`Objects/obmalloc.c` in the Python source code.  The above
       link points to the file within the SourceForge CVS browser.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Build and C API Changes
@@ -1926,7 +1922,7 @@
   the type name leading up to the final period will no longer have the desired
   effect.  For more detail, read the API reference documentation or the  source.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Port-Specific Changes
@@ -1952,7 +1948,7 @@
 Other new platforms now supported by Python include AtheOS
 (http://www.atheos.cx/), GNU/Hurd, and OpenVMS.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-other:
@@ -2003,7 +1999,7 @@
   executed next.  A ``jump`` command has been added to the :mod:`pdb` debugger
   taking advantage of this new feature. (Implemented by Richie Hindle.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Porting to Python 2.3
@@ -2042,8 +2038,6 @@
   desired upper bits. For example, to clear just the top bit (bit 31), you could
   write ``0xffffffffL &~(1L<<31)``.
 
-  .. % The empty groups below prevent conversion to guillemets.
-
 * You can no longer disable assertions by assigning to ``__debug__``.
 
 * The Distutils :func:`setup` function has gained various new keyword arguments
@@ -2065,7 +2059,7 @@
 * Names of extension types defined by the modules included with Python now
   contain the module and a ``'.'`` in front of the type name.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _acks:
diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst
index ec56865..bf30ac1 100644
--- a/Doc/whatsnew/2.4.rst
+++ b/Doc/whatsnew/2.4.rst
@@ -6,10 +6,10 @@
 
 .. |release| replace:: 1.02
 
-.. % $Id: whatsnew24.tex 54632 2007-03-31 11:59:54Z georg.brandl $
-.. % Don't write extensive text for new sections; I'll do that.
-.. % Feel free to add commented-out reminders of things that need
-.. % to be covered.  --amk
+.. $Id: whatsnew24.tex 54632 2007-03-31 11:59:54Z georg.brandl $
+.. Don't write extensive text for new sections; I'll do that.
+.. Feel free to add commented-out reminders of things that need
+.. to be covered.  --amk
 
 This article explains the new features in Python 2.4.1, released on March 30,
 2005.
@@ -29,7 +29,7 @@
 referred to the PEP for a particular new feature for explanations of the
 implementation and design rationale.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 218: Built-In Set Objects
@@ -83,7 +83,7 @@
       Originally proposed by Greg Wilson and ultimately implemented by Raymond
       Hettinger.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 237: Unifying Long Integers and Integers
@@ -108,7 +108,7 @@
       Original PEP written by Moshe Zadka and GvR.  The changes for 2.4 were
       implemented by  Kalle Svensson.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 289: Generator Expressions
@@ -165,7 +165,7 @@
       Proposed by Raymond Hettinger and implemented by Jiwon Seo with early efforts
       steered by Hye-Shik Chang.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 292: Simpler String Substitutions
@@ -199,25 +199,19 @@
 
 If a key is missing from the dictionary, the :meth:`substitute` method will
 raise a :exc:`KeyError`.  There's also a :meth:`safe_substitute` method that
-ignores missing keys:
-
-.. % $ Terminate $-mode for Emacs
-
-::
+ignores missing keys::
 
    >>> t = string.Template('$page: $title')
    >>> t.safe_substitute({'page':3})
    '3: $title'
 
-.. % $ Terminate math-mode for Emacs
-
 
 .. seealso::
 
    :pep:`292` - Simpler String Substitutions
       Written and implemented  by Barry Warsaw.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 318: Decorators for Functions and Methods
@@ -346,7 +340,7 @@
    http://www.python.org/moin/PythonDecoratorLibrary
       This Wiki page contains several examples of decorators.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 322: Reverse Iteration
@@ -382,7 +376,7 @@
    :pep:`322` - Reverse Iteration
       Written and implemented by Raymond Hettinger.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 324: New subprocess Module
@@ -468,7 +462,7 @@
       Written and implemented by Peter Åstrand, with assistance from Fredrik Lundh and
       others.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 327: Decimal Data Type
@@ -698,7 +692,7 @@
       proposed as a standard, and underlies the new Python decimal type.  Much of this
       material was written by Mike Cowlishaw, designer of the Rexx language.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 328: Multi-line Imports
@@ -734,7 +728,7 @@
    :pep:`328` - Imports: Multi-Line and Absolute/Relative
       Written by Aahz.  Multi-line imports were implemented by Dima Dorfman.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 PEP 331: Locale-Independent Float/String Conversions
@@ -773,7 +767,7 @@
    :pep:`331` - Locale-Independent Float/String Conversions
       Written by Christian R. Reis, and implemented by Gustavo Carneiro.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Other Language Changes
@@ -932,7 +926,7 @@
 * :const:`None` is now a constant; code that binds a new value to  the name
   ``None`` is now a syntax error. (Contributed by Raymond Hettinger.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Optimizations
@@ -983,15 +977,13 @@
 measurement of Python's performance.  Your own applications may show greater or
 smaller benefits from Python 2.4.)
 
-.. % pystone is almost useless for comparing different versions of Python;
-.. % instead, it excels at predicting relative Python performance on
-.. % different machines.
-.. % So, this section would be more informative if it used other tools
-.. % such as pybench and parrotbench.  For a more application oriented
-.. % benchmark, try comparing the timings of test_decimal.py under 2.3
-.. % and 2.4.
+.. pystone is almost useless for comparing different versions of Python;
+   instead, it excels at predicting relative Python performance on different
+   machines.  So, this section would be more informative if it used other tools
+   such as pybench and parrotbench.  For a more application oriented benchmark,
+   try comparing the timings of test_decimal.py under 2.3 and 2.4.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New, Improved, and Deprecated Modules
@@ -1322,9 +1314,9 @@
 * The :mod:`mpz`, :mod:`rotor`, and :mod:`xreadlines` modules have  been
   removed.
 
-.. % ======================================================================
-.. % whole new modules get described in subsections here
-.. % =====================
+.. ======================================================================
+.. whole new modules get described in subsections here
+.. =====================
 
 
 cookielib
@@ -1348,7 +1340,7 @@
 
 This module was contributed by John J. Lee.
 
-.. % ==================
+.. ==================
 
 
 doctest
@@ -1447,7 +1439,7 @@
        +rather
    **********************************************************************
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Build and C API Changes
@@ -1500,7 +1492,7 @@
 * The :ctype:`tracebackobject` type has been renamed to
   :ctype:`PyTracebackObject`.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Port-Specific Changes
@@ -1509,7 +1501,7 @@
 * The Windows port now builds under MSVC++ 7.1 as well as version 6.
   (Contributed by Martin von Löwis.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Porting to Python 2.4
@@ -1556,7 +1548,7 @@
   for certain illegal values; previously these errors would pass silently.  For
   example, you can no longer set a handler on the :const:`SIGKILL` signal.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _acks:
diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst
index 497c612..a5169f3 100644
--- a/Doc/whatsnew/2.5.rst
+++ b/Doc/whatsnew/2.5.rst
@@ -6,8 +6,8 @@
 
 .. |release| replace:: 1.01
 
-.. % $Id: whatsnew25.tex 56611 2007-07-29 08:26:10Z georg.brandl $
-.. % Fix XXX comments
+.. $Id: whatsnew25.tex 56611 2007-07-29 08:26:10Z georg.brandl $
+.. Fix XXX comments
 
 This article explains the new features in Python 2.5.  The final release of
 Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned
@@ -45,7 +45,7 @@
 Comments, suggestions, and error reports for this document are welcome; please
 e-mail them to the author or open a bug in the Python bug tracker.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-308:
@@ -123,7 +123,7 @@
       PEP written by Guido van Rossum and Raymond D. Hettinger; implemented by Thomas
       Wouters.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-309:
@@ -201,7 +201,7 @@
       PEP proposed and written by Peter Harris; implemented by Hye-Shik Chang and Nick
       Coghlan, with adaptations by Raymond Hettinger.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-314:
@@ -248,7 +248,7 @@
       PEP proposed and written by A.M. Kuchling, Richard Jones, and Fred Drake;
       implemented by Richard Jones and Fred Drake.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-328:
@@ -333,7 +333,7 @@
    http://codespeak.net/py/current/doc/index.html
       The py library by Holger Krekel, which contains the :mod:`py.std` package.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-338:
@@ -359,7 +359,7 @@
    :pep:`338` - Executing modules as scripts
       PEP written and  implemented by Nick Coghlan.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-341:
@@ -407,7 +407,7 @@
    :pep:`341` - Unifying try-except and try-finally
       PEP written by Georg Brandl;  implementation by Thomas Lee.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-342:
@@ -553,7 +553,7 @@
    http://www.sidhe.org/~dan/blog/archives/000178.html
       An explanation of coroutines from a Perl point of view, written by Dan Sugalski.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-343:
@@ -803,7 +803,7 @@
 
    The documentation  for the :mod:`contextlib` module.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-352:
@@ -862,7 +862,7 @@
    :pep:`352` - Required Superclass for Exceptions
       PEP written by  Brett Cannon and Guido van Rossum; implemented by Brett Cannon.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-353:
@@ -921,7 +921,7 @@
    :pep:`353` - Using ssize_t as the index type
       PEP written and implemented by Martin von Löwis.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _pep-357:
@@ -964,7 +964,7 @@
    :pep:`357` - Allowing Any Object to be Used for Slicing
       PEP written  and implemented by Travis Oliphant.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _other-lang:
@@ -1024,7 +1024,7 @@
 
   (Implemented by Georg Brandl following a suggestion by Tom Lynn.)
 
-  .. % RFE #1491485
+  .. RFE #1491485
 
 * The :func:`min` and :func:`max` built-in functions gained a ``key`` keyword
   parameter analogous to the ``key`` argument for :meth:`sort`.  This parameter
@@ -1055,7 +1055,7 @@
   return non-negative numbers, and users often seem to use ``id(self)`` in
   :meth:`__hash__` methods (though this is discouraged).
 
-  .. % Bug #1536021
+  .. Bug #1536021
 
 * ASCII is now the default encoding for modules.  It's now  a syntax error if a
   module contains string literals with 8-bit characters but doesn't have an
@@ -1106,7 +1106,7 @@
 
   (Implemented by Brett Cannon.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _interactive:
@@ -1129,7 +1129,7 @@
 and :option:`--version`; on Windows,  it also accepts the :option:`/?` option
 for displaying a help message. (Implemented by Georg Brandl.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _opts:
@@ -1155,14 +1155,14 @@
   Andrew Dalke at the NeedForSpeed sprint. Character maps were improved by Walter
   Dörwald and Martin von Löwis.)
 
-  .. % Patch 1313939, 1359618
+  .. Patch 1313939, 1359618
 
 * The :func:`long(str, base)` function is now faster on long digit strings
   because fewer intermediate results are calculated.  The peak is for strings of
   around 800--1000 digits where  the function is 6 times faster. (Contributed by
   Alan McIntyre and committed at the NeedForSpeed sprint.)
 
-  .. % Patch 1442927
+  .. Patch 1442927
 
 * It's now illegal to mix iterating over a file  with ``for line in file`` and
   calling  the file object's :meth:`read`/:meth:`readline`/:meth:`readlines`
@@ -1172,7 +1172,7 @@
   methods will now trigger a :exc:`ValueError` from the :meth:`read\*` method.
   (Implemented by Thomas Wouters.)
 
-  .. % Patch 1397960
+  .. Patch 1397960
 
 * The :mod:`struct` module now compiles structure format  strings into an
   internal representation and caches this representation, yielding a 20% speedup.
@@ -1194,8 +1194,8 @@
   sprint.)  Frame objects are also slightly smaller, which may improve cache
   locality and reduce memory usage a bit.  (Contributed by Neal Norwitz.)
 
-  .. % Patch 876206
-  .. % Patch 1337051
+  .. Patch 876206
+  .. Patch 1337051
 
 * Python's built-in exceptions are now new-style classes, a change that speeds
   up instantiation considerably.  Exception handling in Python 2.5 is therefore
@@ -1206,9 +1206,9 @@
   that the interpreter makes fewer  :cfunc:`open` and :cfunc:`stat` calls on
   startup. (Contributed by Martin von Löwis and Georg Brandl.)
 
-  .. % Patch 921466
+  .. Patch 921466
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _modules:
@@ -1234,7 +1234,7 @@
   entire input was fed to the non-incremental codec. See the :mod:`codecs` module
   documentation for details. (Designed and implemented by Walter Dörwald.)
 
-  .. % Patch  1436130
+  .. Patch  1436130
 
 * The :mod:`collections` module gained a new type, :class:`defaultdict`, that
   subclasses the standard :class:`dict` type.  The new type mostly behaves like a
@@ -1331,12 +1331,12 @@
   easier to use non-ASCII characters in  tests contained within a docstring.
   (Contributed by Bjorn Tillenius.)
 
-  .. % Patch 1080727
+  .. Patch 1080727
 
 * The :mod:`email` package has been updated to version 4.0. (Contributed by
   Barry Warsaw.)
 
-  .. % XXX need to provide some more detail here
+  .. XXX need to provide some more detail here
 
 * The :mod:`fileinput` module was made more flexible. Unicode filenames are now
   supported, and a *mode* parameter that defaults to ``"r"`` was added to the
@@ -1394,7 +1394,7 @@
 
   (Contributed by Georg Brandl.)
 
-  .. % Patch 1180296
+  .. Patch 1180296
 
 * The :mod:`mailbox` module underwent a massive rewrite to add the capability to
   modify mailboxes in addition to reading them.  A new set of classes that include
@@ -1462,7 +1462,7 @@
   :attr:`st_birthtime`. The :attr:`st_flags` member is also available, if the
   platform supports it. (Contributed by Antti Louko and  Diego Pettenò.)
 
-  .. % (Patch 1180695, 1212117)
+  .. (Patch 1180695, 1212117)
 
 * The Python debugger provided by the :mod:`pdb` module can now store lists of
   commands to execute when a breakpoint is reached and execution stops.  Once
@@ -1471,7 +1471,7 @@
   include commands that resume execution, such as ``continue`` or ``next``.
   (Contributed by Grégoire Dooms.)
 
-  .. % Patch 790710
+  .. Patch 790710
 
 * The :mod:`pickle` and :mod:`cPickle` modules no longer accept a return value
   of ``None`` from the :meth:`__reduce__` method; the method must return a tuple
@@ -1512,14 +1512,14 @@
   :mod:`readline` module and therefore now works on non-Unix platforms. (Patch
   from Robert Kiendl.)
 
-  .. % Patch #1472854
+  .. Patch #1472854
 
 * The :mod:`SimpleXMLRPCServer` and :mod:`DocXMLRPCServer`  classes now have a
   :attr:`rpc_paths` attribute that constrains XML-RPC operations to a limited set
   of URL paths; the default is to allow only ``'/'`` and ``'/RPC2'``.  Setting
   :attr:`rpc_paths` to ``None`` or an empty tuple disables  this path checking.
 
-  .. % Bug #1473048
+  .. Bug #1473048
 
 * The :mod:`socket` module now supports :const:`AF_NETLINK` sockets on Linux,
   thanks to a patch from Philippe Biondi.   Netlink sockets are a Linux-specific
@@ -1585,7 +1585,7 @@
   The compression used for a tarfile opened in stream mode can now be autodetected
   using the mode ``'r|*'``. (Contributed by Lars Gustäbel.)
 
-  .. % patch 918101
+  .. patch 918101
 
 * The :mod:`threading` module now lets you set the stack size used when new
   threads are created. The :func:`stack_size([*size*])` function returns the
@@ -1593,7 +1593,7 @@
   sets a new value.  Not all platforms support changing the stack size, but
   Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.)
 
-  .. % Patch 1454481
+  .. Patch 1454481
 
 * The :mod:`unicodedata` module has been updated to use version 4.1.0 of the
   Unicode character database.  Version 3.2.0 is required  by some specifications,
@@ -1643,29 +1643,29 @@
   of additional browsers were added to the supported list such as Firefox, Opera,
   Konqueror, and elinks.  (Contributed by Oleg Broytmann and Georg Brandl.)
 
-  .. % Patch #754022
+  .. Patch #754022
 
 * The :mod:`xmlrpclib` module now supports returning  :class:`datetime` objects
   for the XML-RPC date type.  Supply  ``use_datetime=True`` to the :func:`loads`
   function or the :class:`Unmarshaller` class to enable this feature. (Contributed
   by Skip Montanaro.)
 
-  .. % Patch 1120353
+  .. Patch 1120353
 
 * The :mod:`zipfile` module now supports the ZIP64 version of the  format,
   meaning that a .zip archive can now be larger than 4 GiB and can contain
   individual files larger than 4 GiB.  (Contributed by Ronald Oussoren.)
 
-  .. % Patch 1446489
+  .. Patch 1446489
 
 * The :mod:`zlib` module's :class:`Compress` and :class:`Decompress` objects now
   support a :meth:`copy` method that makes a copy of the  object's internal state
   and returns a new  :class:`Compress` or :class:`Decompress` object.
   (Contributed by Chris AtLee.)
 
-  .. % Patch 1435422
+  .. Patch 1435422
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _module-ctypes:
@@ -1746,7 +1746,7 @@
 
    The documentation  for the :mod:`ctypes` module.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _module-etree:
@@ -1863,7 +1863,7 @@
    http://effbot.org/zone/element-index.htm
       Official documentation for ElementTree.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _module-hashlib:
@@ -1917,7 +1917,7 @@
 
    The documentation  for the :mod:`hashlib` module.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _module-sqlite:
@@ -2026,7 +2026,7 @@
    :pep:`249` - Database API Specification 2.0
       PEP written by Marc-André Lemburg.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _module-wsgiref:
@@ -2039,7 +2039,7 @@
 The :mod:`wsgiref` package is a reference implementation of the WSGI
 specification.
 
-.. % XXX should this be in a PEP 333 section instead?
+.. XXX should this be in a PEP 333 section instead?
 
 The package includes a basic HTTP server that will run a WSGI application; this
 server is useful for debugging but isn't intended for  production use.  Setting
@@ -2054,8 +2054,8 @@
    httpd = simple_server.make_server(host, port, wsgi_app)
    httpd.serve_forever()
 
-.. % XXX discuss structure of WSGI applications?
-.. % XXX provide an example using Django or some other framework?
+.. XXX discuss structure of WSGI applications?
+.. XXX provide an example using Django or some other framework?
 
 
 .. seealso::
@@ -2066,7 +2066,7 @@
    :pep:`333` - Python Web Server Gateway Interface v1.0
       PEP written by Phillip J. Eby.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _build-api:
@@ -2125,8 +2125,8 @@
   Schemenauer, plus the participants in a number of AST sprints at conferences
   such as PyCon.
 
-  .. % List of names taken from Jeremy's python-dev post at
-  .. % http://mail.python.org/pipermail/python-dev/2005-October/057500.html
+  .. List of names taken from Jeremy's python-dev post at
+  .. http://mail.python.org/pipermail/python-dev/2005-October/057500.html
 
 * Evan Jones's patch to obmalloc, first described in a talk at PyCon DC 2005,
   was applied.  Python 2.4 allocated small objects in 256K-sized arenas, but never
@@ -2194,7 +2194,7 @@
      range = PyObject_CallFunction((PyObject*) &PyRange_Type, "lll", 
                                    start, stop, step);
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _ports:
@@ -2214,7 +2214,7 @@
   extension modules.  :file:`.pyd` is now the only filename extension that will be
   searched for.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _porting:
@@ -2269,7 +2269,7 @@
   allocated with  one family's :cfunc:`\*_Malloc` must be  freed with the
   corresponding family's :cfunc:`\*_Free` function.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _acks:
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index da89a50..4a8eb76 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -2,54 +2,53 @@
   What's New in Python 2.6  
 ****************************
 
-.. % XXX mention switch to reST for documentation
-.. % XXX mention switch to Roundup for bug tracking
+.. XXX mention switch to Roundup for bug tracking
 
 :Author: A.M. Kuchling
 :Release: |release|
 :Date: |today|
 
-.. % $Id: whatsnew26.tex 55746 2007-06-02 18:33:53Z neal.norwitz $
-.. % Rules for maintenance:
-.. % 
-.. % * Anyone can add text to this document.  Do not spend very much time
-.. % on the wording of your changes, because your text will probably
-.. % get rewritten to some degree.
-.. % 
-.. % * The maintainer will go through Misc/NEWS periodically and add
-.. % changes; it's therefore more important to add your changes to
-.. % Misc/NEWS than to this file.
-.. % 
-.. % * This is not a complete list of every single change; completeness
-.. % is the purpose of Misc/NEWS.  Some changes I consider too small
-.. % or esoteric to include.  If such a change is added to the text,
-.. % I'll just remove it.  (This is another reason you shouldn't spend
-.. % too much time on writing your addition.)
-.. % 
-.. % * If you want to draw your new text to the attention of the
-.. % maintainer, add 'XXX' to the beginning of the paragraph or
-.. % section.
-.. % 
-.. % * It's OK to just add a fragmentary note about a change.  For
-.. % example: "XXX Describe the transmogrify() function added to the
-.. % socket module."  The maintainer will research the change and
-.. % write the necessary text.
-.. % 
-.. % * You can comment out your additions if you like, but it's not
-.. % necessary (especially when a final release is some months away).
-.. % 
-.. % * Credit the author of a patch or bugfix.   Just the name is
-.. % sufficient; the e-mail address isn't necessary.
-.. % 
-.. % * It's helpful to add the bug/patch number as a comment:
-.. % 
-.. % % Patch 12345
-.. % XXX Describe the transmogrify() function added to the socket
-.. % module.
-.. % (Contributed by P.Y. Developer.)
-.. % 
-.. % This saves the maintainer the effort of going through the SVN log
-.. % when researching a change.
+.. $Id: whatsnew26.tex 55746 2007-06-02 18:33:53Z neal.norwitz $
+   Rules for maintenance:
+   
+   * Anyone can add text to this document.  Do not spend very much time
+   on the wording of your changes, because your text will probably
+   get rewritten to some degree.
+   
+   * The maintainer will go through Misc/NEWS periodically and add
+   changes; it's therefore more important to add your changes to
+   Misc/NEWS than to this file.
+   
+   * This is not a complete list of every single change; completeness
+   is the purpose of Misc/NEWS.  Some changes I consider too small
+   or esoteric to include.  If such a change is added to the text,
+   I'll just remove it.  (This is another reason you shouldn't spend
+   too much time on writing your addition.)
+   
+   * If you want to draw your new text to the attention of the
+   maintainer, add 'XXX' to the beginning of the paragraph or
+   section.
+   
+   * It's OK to just add a fragmentary note about a change.  For
+   example: "XXX Describe the transmogrify() function added to the
+   socket module."  The maintainer will research the change and
+   write the necessary text.
+   
+   * You can comment out your additions if you like, but it's not
+   necessary (especially when a final release is some months away).
+   
+   * Credit the author of a patch or bugfix.   Just the name is
+   sufficient; the e-mail address isn't necessary.
+   
+   * It's helpful to add the bug/patch number as a comment:
+   
+   % Patch 12345
+   XXX Describe the transmogrify() function added to the socket
+   module.
+   (Contributed by P.Y. Developer.)
+   
+   This saves the maintainer the effort of going through the SVN log
+   when researching a change.
 
 This article explains the new features in Python 2.6.  No release date for
 Python 2.6 has been set; it will probably be released in mid 2008.
@@ -60,14 +59,14 @@
 complete implementation and design rationale, refer to the PEP for a particular
 new feature.
 
-.. % Compare with previous release in 2 - 3 sentences here.
-.. % add hyperlink when the documentation becomes available online.
+.. Compare with previous release in 2 - 3 sentences here.
+   add hyperlink when the documentation becomes available online.
 
-.. % ======================================================================
-.. % Large, PEP-level features and changes should be described here.
-.. % Should there be a new section here for 3k migration?
-.. % Or perhaps a more general section describing module changes/deprecation?
-.. % ======================================================================
+.. ========================================================================
+.. Large, PEP-level features and changes should be described here.
+.. Should there be a new section here for 3k migration?
+.. Or perhaps a more general section describing module changes/deprecation?
+.. ========================================================================
 
 Python 3.0
 ================
@@ -156,7 +155,7 @@
    `Docutils <http://docutils.sf.net>`__: The fundamental
    reStructured Text parser and toolset.
 
-   `Documenting Python <http://docs.python.org/dev/documenting/>`__: Describes how to write for 
+   :ref:`documenting-index`: Describes how to write for 
    Python's documentation.
 
 
@@ -407,7 +406,7 @@
 
    The documentation  for the :mod:`contextlib` module.
 
-.. % ======================================================================
+.. ======================================================================
 
 .. _pep-0366:
 
@@ -425,7 +424,7 @@
 that implements the :option:`-m` switch now does this, so relative imports
 can now be used in scripts running from inside a package.
 
-.. % ======================================================================
+.. ======================================================================
 
 .. _pep-3110:
 
@@ -475,7 +474,7 @@
    :pep:`3110` - Catching Exceptions in Python 3000
       PEP written and implemented by Collin Winter.
 
-.. % ======================================================================
+.. ======================================================================
 
 .. _pep-3119:
 
@@ -509,14 +508,14 @@
     >>> f(**ud)
     ['a', 'b']
 
-  .. % Patch 1686487
+  .. Patch 1686487
 
 * The built-in types now have improved support for extended slicing syntax,
   where various combinations of ``(start, stop, step)`` are supplied.
   Previously, the support was partial and certain corner cases wouldn't work.
   (Implemented by Thomas Wouters.)
 
-  .. % Revision 57619
+  .. Revision 57619
 
 * Properties now have two attributes, 
   :attr:`setter` and :attr:`deleter`, that are useful shortcuts for
@@ -544,14 +543,14 @@
   This is a backport of a Python 3.0 change.
   (Contributed by Mark Dickinson.)
 
-  .. % Patch #1675423
+  .. Patch #1675423
 
   A numerical nicety: when creating a complex number from two floats
   on systems that support signed zeros (-0 and +0), the 
   :func:`complex()` constructor will now preserve the sign 
   of the zero.
 
-  .. % Patch 1507
+  .. Patch 1507
 
 * Changes to the :class:`Exception` interface
   as dictated by :pep:`352` continue to be made.  For 2.6, 
@@ -564,26 +563,26 @@
   will not inadvertently catch :exc:`GeneratorExit`. 
   (Contributed by Chad Austin.)
 
-  .. % Patch #1537
+  .. Patch #1537
 
 * The :func:`compile` built-in function now accepts keyword arguments
   as well as positional parameters.  (Contributed by Thomas Wouters.)
 
-  .. % Patch 1444529
+  .. Patch 1444529
 
 * The :func:`complex` constructor now accepts strings containing 
   parenthesized complex numbers, letting ``complex(repr(cmplx))``
   will now round-trip values.  For example, ``complex('(3+4j)')``
   now returns the value (3+4j).
 
-  .. % Patch 1491866
+  .. Patch 1491866
 
 * The string :meth:`translate` method now accepts ``None`` as the 
   translation table parameter, which is treated as the identity 
   transformation.   This makes it easier to carry out operations
   that only delete characters.  (Contributed by Bengt Richter.)
 
-  .. % Patch 1193128
+  .. Patch 1193128
 
 * The built-in :func:`dir` function now checks for a :meth:`__dir__`
   method on the objects it receives.  This method must return a list
@@ -592,14 +591,14 @@
   Objects that have :meth:`__getattr__` or :meth:`__getattribute__` 
   methods can use this to advertise pseudo-attributes they will honor.
 
-  .. % Patch 1591665
+  .. Patch 1591665
 
 * An obscure change: when you use the the :func:`locals` function inside a
   :keyword:`class` statement, the resulting dictionary no longer returns free
   variables.  (Free variables, in this case, are variables referred to in the
   :keyword:`class` statement  that aren't attributes of the class.)
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Optimizations
@@ -612,7 +611,7 @@
 The net result of the 2.6 optimizations is that Python 2.6 runs the pystone
 benchmark around XX% faster than Python 2.5.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 New, Improved, and Deprecated Modules
@@ -627,7 +626,7 @@
   available, instead of restricting itself to protocol 1.
   (Contributed by W. Barnes.)
 
-  .. % Patch 1551443
+  .. Patch 1551443
 
 * A new data type in the :mod:`collections` module: :class:`namedtuple(typename,
   fieldnames)` is a factory function that creates subclasses of the standard tuple
@@ -677,14 +676,14 @@
 * The :mod:`ctypes` module now supports a :class:`c_bool` datatype 
   that represents the C99 ``bool`` type.  (Contributed by David Remahl.)
 
-  .. % Patch 1649190
+  .. Patch 1649190
 
   The :mod:`ctypes` string, buffer and array types also have improved
   support for extended slicing syntax,
   where various combinations of ``(start, stop, step)`` are supplied.
   (Implemented by Thomas Wouters.)
 
-  .. % Revision 57769
+  .. Revision 57769
 
 
 * A new method in the :mod:`curses` module: for a window, :meth:`chgat` changes
@@ -722,12 +721,12 @@
   to drop the built-in in the 2.x series.  (Patched by 
   Christian Heimes.)
 
-  .. % Patch 1739906
+  .. Patch 1739906
 
 * The :func:`glob.glob` function can now return Unicode filenames if 
   a Unicode path was used and Unicode filenames are matched within the directory.
 
-  .. % Patch #1001604
+  .. Patch #1001604
 
 * The :mod:`gopherlib` module has been removed.
 
@@ -760,7 +759,7 @@
   :func:`macostools.touched` function to be removed because it depended on the
   :mod:`macfs` module.
 
-  .. % Patch #1490190
+  .. Patch #1490190
 
 * The :mod:`new` module has been removed from Python 3.0.
   Importing it therefore
@@ -783,13 +782,13 @@
   into an infinite recursion if there's a symlink that points to a
   parent directory.
        
-  .. % Patch 1273829
+  .. Patch 1273829
 
 * The ``os.environ`` object's :meth:`clear` method will now unset the 
   environment variables using :func:`os.unsetenv` in addition to clearing
   the object's keys.  (Contributed by Martin Horcicka.)
 
-  .. % Patch #1181 
+  .. Patch #1181 
 
 * In the :mod:`os.path` module, the :func:`splitext` function
   has been changed to not split on leading period characters.
@@ -797,27 +796,27 @@
   For example, ``os.path.splitext('.ipython')``
   now returns ``('.ipython', '')`` instead of ``('', '.ipython')``.
 
-  .. % Bug #115886
+  .. Bug #115886
 
   A new function, :func:`relpath(path, start)` returns a relative path
   from the ``start`` path, if it's supplied, or from the current
   working directory to the destination ``path``.  (Contributed by
   Richard Barran.)
 
-  .. % Patch 1339796
+  .. Patch 1339796
 
   On Windows, :func:`os.path.expandvars` will now expand environment variables 
   in the form "%var%", and "~user" will be expanded into the 
   user's home directory path.  (Contributed by Josiah Carlson.)
 
-  .. % Patch 957650
+  .. Patch 957650
 
 * The Python debugger provided by the :mod:`pdb` module 
   gained a new command: "run" restarts the Python program being debugged,
   and can optionally take new command-line arguments for the program.
   (Contributed by Rocky Bernstein.)
 
-  .. % Patch #1393667
+  .. Patch #1393667
 
 * New functions in the :mod:`posix` module: :func:`chflags` and :func:`lchflags`
   are wrappers for the corresponding system calls (where they're available).
@@ -833,7 +832,7 @@
   on earlier versions of Python.
   (Contributed by Shawn Ligocki.)
 
-  .. % Issue 1727780
+  .. Issue 1727780
 
 * The :mod:`rgbimg` module has been removed.
 
@@ -876,7 +875,7 @@
   added by Facundo Batista; LMTP implemented by Leif
   Hedstrom.)
 
-  .. % Patch #957003
+  .. Patch #957003
 
 * A new variable in the :mod:`sys` module,
   :attr:`float_info`, is a dictionary 
@@ -887,7 +886,7 @@
   (smallest difference between 1.0 and the next largest value
   representable), and several others.  (Contributed by Christian Heimes.)
 
-  .. % Patch 1534
+  .. Patch 1534
 
 * The :mod:`tarfile` module now supports POSIX.1-2001 (pax) and
   POSIX.1-1988 (ustar) format tarfiles, in addition to the GNU tar
@@ -923,7 +922,7 @@
   behaviour can now be changed by passing ``delete=False`` to the 
   constructor.  (Contributed by Damien Miller.)
 
-  .. % Patch #1537850
+  .. Patch #1537850
 
 * The :mod:`test.test_support` module now contains a
   :func:`EnvironmentVarGuard`
@@ -960,7 +959,7 @@
        whitespace.
     >>> 
 
-  .. % Patch #1581073
+  .. Patch #1581073
 
 * The :mod:`timeit` module now accepts callables as well as strings 
   for the statement being timed and for the setup code.
@@ -970,7 +969,7 @@
   ``timeit(stmt, setup, time, number)`` create an instance and call
   the corresponding method. (Contributed by Erik Demaine.)
 
-  .. % Patch #1533909
+  .. Patch #1533909
 
 * An optional ``timeout`` parameter was added to the
   :func:`urllib.urlopen` function and the
@@ -995,7 +994,7 @@
   open the socket and begin listening for connections.
   (Contributed by Peter Parente.)
 
-  .. % Patch 1599845
+  .. Patch 1599845
 
   :class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header`
   attribute; if true, the exception and formatted traceback are returned 
@@ -1005,8 +1004,8 @@
   information.  (Contributed by Alan McIntyre as part of his 
   project for Google's Summer of Code 2007.)
 
-.. % ======================================================================
-.. % whole new modules get described in subsections here
+.. ======================================================================
+.. whole new modules get described in subsections here
 
 Improved SSL Support
 --------------------------------------------------
@@ -1028,7 +1027,7 @@
 
    SSL module documentation.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Build and C API Changes
@@ -1045,7 +1044,7 @@
   that wish to use the :mod:`bsddb` module for their own purposes.
   (Contributed by Duncan Grisby.)
 
-  .. % Patch 1551895
+  .. Patch 1551895
 
 * Several functions return information about the platform's 
   floating-point support.  :cfunc:`PyFloat_GetMax` returns
@@ -1057,9 +1056,9 @@
   (smallest difference between 1.0 and the next largest value
   representable), and several others.
 
-  .. % Issue 1534
+  .. Issue 1534
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Port-Specific Changes
@@ -1067,7 +1066,7 @@
 
 Platform-specific changes go here.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _section-other:
@@ -1084,7 +1083,7 @@
 
 * Details will go here.
 
-.. % ======================================================================
+.. ======================================================================
 
 
 Porting to Python 2.6
@@ -1098,9 +1097,9 @@
   :exc:`StandardError` but now it is, through :exc:`IOError`.
   (Implemented by Gregory P. Smith.)
 
-  .. % http://bugs.python.org/issue1706815
+  .. Issue 1706815
 
-.. % ======================================================================
+.. ======================================================================
 
 
 .. _acks:
