diff --git a/Doc/lib/liballos.tex b/Doc/lib/liballos.tex
index b5a207e..c167109 100644
--- a/Doc/lib/liballos.tex
+++ b/Doc/lib/liballos.tex
@@ -20,4 +20,7 @@
 \item[tempfile]
 --- Generate temporary file names.
 
+\item[errno]
+--- Standard errno system symbols.
+
 \end{description}
diff --git a/Doc/lib/libcgi.tex b/Doc/lib/libcgi.tex
index 34c510e..d736f39 100644
--- a/Doc/lib/libcgi.tex
+++ b/Doc/lib/libcgi.tex
@@ -168,6 +168,7 @@
 
 
 \subsection{Functions}
+\nodename{Functions in cgi module}
 
 These are useful if you want more control, or if you want to employ
 some of the algorithms implemented in this module in other
diff --git a/Doc/lib/libcrypt.tex b/Doc/lib/libcrypt.tex
index e44f7b2..132ae51 100644
--- a/Doc/lib/libcrypt.tex
+++ b/Doc/lib/libcrypt.tex
@@ -8,6 +8,7 @@
 attempting to crack Unix passwords with a dictionary.
 \index{crypt(3)}
 
+\renewcommand{\indexsubitem}{(in module crypt)}
 \begin{funcdesc}{crypt}{word\, salt} 
 \var{word} will usually be a user's password.  \var{salt} is a
 2-character string which will be used to select one of 4096 variations
diff --git a/Doc/lib/libdbm.tex b/Doc/lib/libdbm.tex
index ee2d39f..bae388b 100644
--- a/Doc/lib/libdbm.tex
+++ b/Doc/lib/libdbm.tex
@@ -1,7 +1,7 @@
 \section{Built-in Module \sectcode{dbm}}
 \bimodindex{dbm}
 
-The \code{dbm} module provides an interface to the {\UNIX}
+The \code{dbm} module provides an interface to the \UNIX{}
 \code{(n)dbm} library.  Dbm objects behave like mappings
 (dictionaries), except that keys and values are always strings.
 Printing a dbm object doesn't print the keys and values, and the
diff --git a/Doc/lib/libftplib.tex b/Doc/lib/libftplib.tex
index 3fda77a..ba18119 100644
--- a/Doc/lib/libftplib.tex
+++ b/Doc/lib/libftplib.tex
@@ -136,7 +136,7 @@
 
 \begin{funcdesc}{retrlines}{command\optional{\, callback}}
 Retrieve a file or directory listing in \ASCII{} transfer mode.
-var{command} should be an appropriate \samp{RETR} command (see
+\var{command} should be an appropriate \samp{RETR} command (see
 \code{retrbinary()} or a \samp{LIST} command (usually just the string
 \code{"LIST"}).  The \var{callback} function is called for each line,
 with the trailing CRLF stripped.  The default \var{callback} prints
@@ -160,14 +160,14 @@
 
 \begin{funcdesc}{nlst}{argument\optional{\, \ldots}}
 Return a list of files as returned by the \samp{NLST} command.  The
-optional var{argument} is a directory to list (default is the current
+optional \var{argument} is a directory to list (default is the current
 server directory).  Multiple arguments can be used to pass
 non-standard options to the \samp{NLST} command.
 \end{funcdesc}
 
 \begin{funcdesc}{dir}{argument\optional{\, \ldots}}
 Return a directory listing as returned by the \samp{LIST} command, as
-a list of lines.  The optional var{argument} is a directory to list
+a list of lines.  The optional \var{argument} is a directory to list
 (default is the current server directory).  Multiple arguments can be
 used to pass non-standard options to the \samp{LIST} command.  If the
 last argument is a function, it is used as a \var{callback} function
diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index 39cb02b..9e7d4c1 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -397,7 +397,7 @@
 arbitrary ways when reloaded.
 
 If a module imports objects from another module using \code{from}
-{\ldots} \code{import} {\ldots}, calling \code{reload()} for the other
+\ldots{} \code{import} \ldots{}, calling \code{reload()} for the other
 module does not redefine the objects imported from it --- one way
 around this is to re-execute the \code{from} statement, another is to
 use \code{import} and qualified names (\var{module}.\var{name})
diff --git a/Doc/lib/libmimetools.tex b/Doc/lib/libmimetools.tex
index decb890..ecf50dc 100644
--- a/Doc/lib/libmimetools.tex
+++ b/Doc/lib/libmimetools.tex
@@ -77,7 +77,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{gettype}{}
-Return the message type (of the form \samp{\var{type}/var{subtype}})
+Return the message type (of the form \samp{\var{type}/\var{subtype}})
 as specified in the \samp{Content-type} header.  If no such header
 exists, return \code{"text/plain"}.  The type is converted to lower
 case.
diff --git a/Doc/lib/libmm.tex b/Doc/lib/libmm.tex
index d5abc6f..a36915f 100644
--- a/Doc/lib/libmm.tex
+++ b/Doc/lib/libmm.tex
@@ -22,4 +22,7 @@
 --- Read and write image files in ``SGI RGB'' format (the module is
 \emph{not} SGI specific though)!
 
+\item[imghdr]
+--- Determine the type of image contained in a file or byte stream.
+
 \end{description}
diff --git a/Doc/lib/libnntplib.tex b/Doc/lib/libnntplib.tex
index e17ea8b..feec27a 100644
--- a/Doc/lib/libnntplib.tex
+++ b/Doc/lib/libnntplib.tex
@@ -143,7 +143,7 @@
 \begin{funcdesc}{stat}{id}
 Send a \samp{STAT} command, where \var{id} is the message id (enclosed
 in \samp{<} and \samp{>}) or an article number (as a string).
-Return a triple \code{(var{response}, \var{number}, \var{id})} where
+Return a triple \code{(\var{response}, \var{number}, \var{id})} where
 \var{number} is the article number (as a string) and \var{id} is the
 article id  (enclosed in \samp{<} and \samp{>}).
 \end{funcdesc}
diff --git a/Doc/lib/libparser.tex b/Doc/lib/libparser.tex
index 5de9328..e85ca72 100644
--- a/Doc/lib/libparser.tex
+++ b/Doc/lib/libparser.tex
@@ -272,6 +272,7 @@
 
 
 \subsection{Examples}
+\nodename{AST Examples}
 
 The parser modules allows operations to be performed on the parse tree
 of Python source code before the bytecode is generated, and provides
diff --git a/Doc/lib/libposix.tex b/Doc/lib/libposix.tex
index a87f5c0..7cc4c0a 100644
--- a/Doc/lib/libposix.tex
+++ b/Doc/lib/libposix.tex
@@ -293,19 +293,19 @@
 
 \begin{funcdesc}{setpgrp}{}
 Calls the system call \code{setpgrp()} or \code{setpgrp(0, 0)}
-depending on which version is implemented (if any).  See the {\UNIX}
+depending on which version is implemented (if any).  See the \UNIX{}
 manual for the semantics.
 (Not on MS-DOS.)
 \end{funcdesc}
 
 \begin{funcdesc}{setpgid}{pid\, pgrp}
-Calls the system call \code{setpgid()}.  See the {\UNIX} manual for
+Calls the system call \code{setpgid()}.  See the \UNIX{} manual for
 the semantics.
 (Not on MS-DOS.)
 \end{funcdesc}
 
 \begin{funcdesc}{setsid}{}
-Calls the system call \code{setsid()}.  See the {\UNIX} manual for the
+Calls the system call \code{setsid()}.  See the \UNIX{} manual for the
 semantics.
 (Not on MS-DOS.)
 \end{funcdesc}
diff --git a/Doc/lib/libprofile.tex b/Doc/lib/libprofile.tex
index 4ba4cf9..da0c294 100644
--- a/Doc/lib/libprofile.tex
+++ b/Doc/lib/libprofile.tex
@@ -2,7 +2,7 @@
 \stmodindex{profile}
 \stmodindex{pstats}
 
-Copyright \copyright\ 1994, by InfoSeek Corporation, all rights reserved.
+Copyright \copyright{} 1994, by InfoSeek Corporation, all rights reserved.
 
 Written by James Roskind%
 \footnote{
diff --git a/Doc/lib/libregex.tex b/Doc/lib/libregex.tex
index f2e094a..91f3a03 100644
--- a/Doc/lib/libregex.tex
+++ b/Doc/lib/libregex.tex
@@ -67,11 +67,11 @@
 
 The special characters are:
 \begin{itemize}
-\item[\code{.}]{(Dot.)  Matches any character except a newline.}
-\item[\code{\^}]{(Caret.)  Matches the start of the string.}
-\item[\code{\$}]{Matches the end of the string.  
+\item[\code{.}] (Dot.)  Matches any character except a newline.
+\item[\code{\^}] (Caret.)  Matches the start of the string.
+\item[\code{\$}] Matches the end of the string.  
 \code{foo} matches both 'foo' and 'foobar', while the regular
-expression '\code{foo\$}' matches only 'foo'.}
+expression '\code{foo\$}' matches only 'foo'.
 \item[\code{*}] Causes the resulting RE to
 match 0 or more repetitions of the preceding RE.  \code{ab*} will
 match 'a', 'ab', or 'a' followed by any number of 'b's.
@@ -119,48 +119,48 @@
 creates a regular expression that will match either A or B.  This can
 be used inside groups (see below) as well.
 %
-\item[\code{\e( \e)}]{Indicates the start and end of a group; the
+\item[\code{\e( \e)}] Indicates the start and end of a group; the
 contents of a group can be matched later in the string with the
-\code{\e \[1-9]} special sequence, described next.}
+\code{\e [1-9]} special sequence, described next.
 %
 {\fulllineitems\item[\code{\e \e 1, ... \e \e 7, \e 8, \e 9}]
-{Matches the contents of the group of the same
+Matches the contents of the group of the same
 number.  For example, \code{\e (.+\e ) \e \e 1} matches 'the the' or
 '55 55', but not 'the end' (note the space after the group).  This
 special sequence can only be used to match one of the first 9 groups;
 groups with higher numbers can be matched using the \code{\e v}
 sequence.  (\code{\e 8} and \code{\e 9} don't need a double backslash
-because they are not octal digits.)}}
+because they are not octal digits.)}
 %
-\item[\code{\e \e b}]{Matches the empty string, but only at the
+\item[\code{\e \e b}] Matches the empty string, but only at the
 beginning or end of a word.  A word is defined as a sequence of
 alphanumeric characters, so the end of a word is indicated by
-whitespace or a non-alphanumeric character.}
+whitespace or a non-alphanumeric character.
 %
-\item[\code{\e B}]{Matches the empty string, but when it is \emph{not} at the
-beginning or end of a word.} 
+\item[\code{\e B}] Matches the empty string, but when it is \emph{not} at the
+beginning or end of a word.
 %
-\item[\code{\e v}]{Must be followed by a two digit decimal number, and
-matches the contents of the group of the same number.  The group number must be between 1 and 99, inclusive.}
+\item[\code{\e v}] Must be followed by a two digit decimal number, and
+matches the contents of the group of the same number.  The group number must be between 1 and 99, inclusive.
 %
 \item[\code{\e w}]Matches any alphanumeric character; this is
 equivalent to the set \code{[a-zA-Z0-9]}.
 %
-\item[\code{\e W}]{Matches any non-alphanumeric character; this is
-equivalent to the set \code{[\^a-zA-Z0-9]}.} 
-\item[\code{\e <}]{Matches the empty string, but only at the beginning of a
+\item[\code{\e W}] Matches any non-alphanumeric character; this is
+equivalent to the set \code{[\^a-zA-Z0-9]}.
+\item[\code{\e <}] Matches the empty string, but only at the beginning of a
 word.  A word is defined as a sequence of alphanumeric characters, so
 the end of a word is indicated by whitespace or a non-alphanumeric 
-character.}
-\item[\code{\e >}]{Matches the empty string, but only at the end of a
-word.}
+character.
+\item[\code{\e >}] Matches the empty string, but only at the end of a
+word.
 
-\item[\code{\e \e \e \e}]{Matches a literal backslash.}
+\item[\code{\e \e \e \e}] Matches a literal backslash.
 
 % In Emacs, the following two are start of buffer/end of buffer.  In
 % Python they seem to be synonyms for ^$.
-\item[\code{\e `}]{Like \code{\^}, this only matches at the start of the
-string.}
+\item[\code{\e `}] Like \code{\^}, this only matches at the start of the
+string.
 \item[\code{\e \e '}] Like \code{\$}, this only matches at the end of the
 string.
 % end of buffer
diff --git a/Doc/lib/libstdwin.tex b/Doc/lib/libstdwin.tex
index e009e3f..2f2bd42 100644
--- a/Doc/lib/libstdwin.tex
+++ b/Doc/lib/libstdwin.tex
@@ -310,6 +310,7 @@
 \end{funcdesc}
 
 \subsection{Window Objects}
+\nodename{STDWIN Window Objects}
 
 Window objects are created by \code{stdwin.open()}.  They are closed
 by their \code{close()} method or when they are garbage-collected.
diff --git a/Doc/lib/libtemplate.tex b/Doc/lib/libtemplate.tex
index 4afb56b..cd49a8f 100644
--- a/Doc/lib/libtemplate.tex
+++ b/Doc/lib/libtemplate.tex
@@ -24,8 +24,8 @@
 It knows the four generally available Spam varieties and understands
 both can sizes.
 
-Because spamification requires UNIX process management, the module is
-only available on genuine UNIX systems.
+Because spamification requires \UNIX{} process management, the module
+is only available on genuine \UNIX{} systems.
 
 
 % ==== 3. ====
diff --git a/Doc/lib/libtermios.tex b/Doc/lib/libtermios.tex
index e55aab4..3d007c3 100644
--- a/Doc/lib/libtermios.tex
+++ b/Doc/lib/libtermios.tex
@@ -73,7 +73,7 @@
 
 Here's a function that prompts for a password with echoing turned off.
 Note the technique using a separate \code{termios.tcgetattr()} call
-and a \code{try {\ldots} finally} statement to ensure that the old tty
+and a \code{try \ldots{} finally} statement to ensure that the old tty
 attributes are restored exactly no matter what happens:
 
 \begin{verbatim}
diff --git a/Doc/lib/libunix.tex b/Doc/lib/libunix.tex
index 895c6e5..47ed029 100644
--- a/Doc/lib/libunix.tex
+++ b/Doc/lib/libunix.tex
@@ -19,7 +19,7 @@
 --- The group database (\code{getgrnam()} and friends).
 
 \item[crypt]
---- The (\code{crypt()} function used to check Unix passwords).
+--- The \code{crypt()} function used to check Unix passwords.
 
 \item[dbm]
 --- The standard ``database'' interface, based on \code{ndbm}.
@@ -30,10 +30,16 @@
 \item[termios]
 --- Posix style tty control.
 
+\item[TERMIOS]
+--- The symbolic constants required to use the \code{termios} module.
+
 \item[fcntl]
 --- The \code{fcntl()} and \code{ioctl()} system calls.
 
 \item[posixfile]
 --- A file-like object with support for locking.
 
+\item[syslog]
+--- An interface to the Unix \code{syslog} library routines.
+
 \end{description}
diff --git a/Doc/lib/libwww.tex b/Doc/lib/libwww.tex
index c42494e..aebe931 100644
--- a/Doc/lib/libwww.tex
+++ b/Doc/lib/libwww.tex
@@ -51,4 +51,18 @@
 \item[mimetools]
 --- Tools for parsing MIME style message bodies.
 
+\item[binhex]
+--- Encode and decode files in binhex4 format.
+
+\item[uu]
+--- Encode and decode files in uuencode format.
+
+\item[binascii]
+--- Tools for converting between binary and various ascii-encoded binary 
+representation
+
+\item[xdrlib]
+--- The External Data Representation Standard as described in RFC 1014,
+written by Sun Microsystems, Inc. June 1987.
+
 \end{description}
diff --git a/Doc/lib/libxdrlib.tex b/Doc/lib/libxdrlib.tex
index e0ed029..1221fff 100644
--- a/Doc/lib/libxdrlib.tex
+++ b/Doc/lib/libxdrlib.tex
@@ -205,6 +205,7 @@
 \end{funcdesc}
 
 \subsection{Exceptions}
+\nodename{Exceptions in xdrlib module}
 
 Exceptions in this module are coded as class instances:
 
diff --git a/Doc/liballos.tex b/Doc/liballos.tex
index b5a207e..c167109 100644
--- a/Doc/liballos.tex
+++ b/Doc/liballos.tex
@@ -20,4 +20,7 @@
 \item[tempfile]
 --- Generate temporary file names.
 
+\item[errno]
+--- Standard errno system symbols.
+
 \end{description}
diff --git a/Doc/libcgi.tex b/Doc/libcgi.tex
index 34c510e..d736f39 100644
--- a/Doc/libcgi.tex
+++ b/Doc/libcgi.tex
@@ -168,6 +168,7 @@
 
 
 \subsection{Functions}
+\nodename{Functions in cgi module}
 
 These are useful if you want more control, or if you want to employ
 some of the algorithms implemented in this module in other
diff --git a/Doc/libcrypt.tex b/Doc/libcrypt.tex
index e44f7b2..132ae51 100644
--- a/Doc/libcrypt.tex
+++ b/Doc/libcrypt.tex
@@ -8,6 +8,7 @@
 attempting to crack Unix passwords with a dictionary.
 \index{crypt(3)}
 
+\renewcommand{\indexsubitem}{(in module crypt)}
 \begin{funcdesc}{crypt}{word\, salt} 
 \var{word} will usually be a user's password.  \var{salt} is a
 2-character string which will be used to select one of 4096 variations
diff --git a/Doc/libdbm.tex b/Doc/libdbm.tex
index ee2d39f..bae388b 100644
--- a/Doc/libdbm.tex
+++ b/Doc/libdbm.tex
@@ -1,7 +1,7 @@
 \section{Built-in Module \sectcode{dbm}}
 \bimodindex{dbm}
 
-The \code{dbm} module provides an interface to the {\UNIX}
+The \code{dbm} module provides an interface to the \UNIX{}
 \code{(n)dbm} library.  Dbm objects behave like mappings
 (dictionaries), except that keys and values are always strings.
 Printing a dbm object doesn't print the keys and values, and the
diff --git a/Doc/libftplib.tex b/Doc/libftplib.tex
index 3fda77a..ba18119 100644
--- a/Doc/libftplib.tex
+++ b/Doc/libftplib.tex
@@ -136,7 +136,7 @@
 
 \begin{funcdesc}{retrlines}{command\optional{\, callback}}
 Retrieve a file or directory listing in \ASCII{} transfer mode.
-var{command} should be an appropriate \samp{RETR} command (see
+\var{command} should be an appropriate \samp{RETR} command (see
 \code{retrbinary()} or a \samp{LIST} command (usually just the string
 \code{"LIST"}).  The \var{callback} function is called for each line,
 with the trailing CRLF stripped.  The default \var{callback} prints
@@ -160,14 +160,14 @@
 
 \begin{funcdesc}{nlst}{argument\optional{\, \ldots}}
 Return a list of files as returned by the \samp{NLST} command.  The
-optional var{argument} is a directory to list (default is the current
+optional \var{argument} is a directory to list (default is the current
 server directory).  Multiple arguments can be used to pass
 non-standard options to the \samp{NLST} command.
 \end{funcdesc}
 
 \begin{funcdesc}{dir}{argument\optional{\, \ldots}}
 Return a directory listing as returned by the \samp{LIST} command, as
-a list of lines.  The optional var{argument} is a directory to list
+a list of lines.  The optional \var{argument} is a directory to list
 (default is the current server directory).  Multiple arguments can be
 used to pass non-standard options to the \samp{LIST} command.  If the
 last argument is a function, it is used as a \var{callback} function
diff --git a/Doc/libfuncs.tex b/Doc/libfuncs.tex
index 39cb02b..9e7d4c1 100644
--- a/Doc/libfuncs.tex
+++ b/Doc/libfuncs.tex
@@ -397,7 +397,7 @@
 arbitrary ways when reloaded.
 
 If a module imports objects from another module using \code{from}
-{\ldots} \code{import} {\ldots}, calling \code{reload()} for the other
+\ldots{} \code{import} \ldots{}, calling \code{reload()} for the other
 module does not redefine the objects imported from it --- one way
 around this is to re-execute the \code{from} statement, another is to
 use \code{import} and qualified names (\var{module}.\var{name})
diff --git a/Doc/libmimetools.tex b/Doc/libmimetools.tex
index decb890..ecf50dc 100644
--- a/Doc/libmimetools.tex
+++ b/Doc/libmimetools.tex
@@ -77,7 +77,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{gettype}{}
-Return the message type (of the form \samp{\var{type}/var{subtype}})
+Return the message type (of the form \samp{\var{type}/\var{subtype}})
 as specified in the \samp{Content-type} header.  If no such header
 exists, return \code{"text/plain"}.  The type is converted to lower
 case.
diff --git a/Doc/libmm.tex b/Doc/libmm.tex
index d5abc6f..a36915f 100644
--- a/Doc/libmm.tex
+++ b/Doc/libmm.tex
@@ -22,4 +22,7 @@
 --- Read and write image files in ``SGI RGB'' format (the module is
 \emph{not} SGI specific though)!
 
+\item[imghdr]
+--- Determine the type of image contained in a file or byte stream.
+
 \end{description}
diff --git a/Doc/libnntplib.tex b/Doc/libnntplib.tex
index e17ea8b..feec27a 100644
--- a/Doc/libnntplib.tex
+++ b/Doc/libnntplib.tex
@@ -143,7 +143,7 @@
 \begin{funcdesc}{stat}{id}
 Send a \samp{STAT} command, where \var{id} is the message id (enclosed
 in \samp{<} and \samp{>}) or an article number (as a string).
-Return a triple \code{(var{response}, \var{number}, \var{id})} where
+Return a triple \code{(\var{response}, \var{number}, \var{id})} where
 \var{number} is the article number (as a string) and \var{id} is the
 article id  (enclosed in \samp{<} and \samp{>}).
 \end{funcdesc}
diff --git a/Doc/libparser.tex b/Doc/libparser.tex
index 5de9328..e85ca72 100644
--- a/Doc/libparser.tex
+++ b/Doc/libparser.tex
@@ -272,6 +272,7 @@
 
 
 \subsection{Examples}
+\nodename{AST Examples}
 
 The parser modules allows operations to be performed on the parse tree
 of Python source code before the bytecode is generated, and provides
diff --git a/Doc/libposix.tex b/Doc/libposix.tex
index a87f5c0..7cc4c0a 100644
--- a/Doc/libposix.tex
+++ b/Doc/libposix.tex
@@ -293,19 +293,19 @@
 
 \begin{funcdesc}{setpgrp}{}
 Calls the system call \code{setpgrp()} or \code{setpgrp(0, 0)}
-depending on which version is implemented (if any).  See the {\UNIX}
+depending on which version is implemented (if any).  See the \UNIX{}
 manual for the semantics.
 (Not on MS-DOS.)
 \end{funcdesc}
 
 \begin{funcdesc}{setpgid}{pid\, pgrp}
-Calls the system call \code{setpgid()}.  See the {\UNIX} manual for
+Calls the system call \code{setpgid()}.  See the \UNIX{} manual for
 the semantics.
 (Not on MS-DOS.)
 \end{funcdesc}
 
 \begin{funcdesc}{setsid}{}
-Calls the system call \code{setsid()}.  See the {\UNIX} manual for the
+Calls the system call \code{setsid()}.  See the \UNIX{} manual for the
 semantics.
 (Not on MS-DOS.)
 \end{funcdesc}
diff --git a/Doc/libprofile.tex b/Doc/libprofile.tex
index 4ba4cf9..da0c294 100644
--- a/Doc/libprofile.tex
+++ b/Doc/libprofile.tex
@@ -2,7 +2,7 @@
 \stmodindex{profile}
 \stmodindex{pstats}
 
-Copyright \copyright\ 1994, by InfoSeek Corporation, all rights reserved.
+Copyright \copyright{} 1994, by InfoSeek Corporation, all rights reserved.
 
 Written by James Roskind%
 \footnote{
diff --git a/Doc/libregex.tex b/Doc/libregex.tex
index f2e094a..91f3a03 100644
--- a/Doc/libregex.tex
+++ b/Doc/libregex.tex
@@ -67,11 +67,11 @@
 
 The special characters are:
 \begin{itemize}
-\item[\code{.}]{(Dot.)  Matches any character except a newline.}
-\item[\code{\^}]{(Caret.)  Matches the start of the string.}
-\item[\code{\$}]{Matches the end of the string.  
+\item[\code{.}] (Dot.)  Matches any character except a newline.
+\item[\code{\^}] (Caret.)  Matches the start of the string.
+\item[\code{\$}] Matches the end of the string.  
 \code{foo} matches both 'foo' and 'foobar', while the regular
-expression '\code{foo\$}' matches only 'foo'.}
+expression '\code{foo\$}' matches only 'foo'.
 \item[\code{*}] Causes the resulting RE to
 match 0 or more repetitions of the preceding RE.  \code{ab*} will
 match 'a', 'ab', or 'a' followed by any number of 'b's.
@@ -119,48 +119,48 @@
 creates a regular expression that will match either A or B.  This can
 be used inside groups (see below) as well.
 %
-\item[\code{\e( \e)}]{Indicates the start and end of a group; the
+\item[\code{\e( \e)}] Indicates the start and end of a group; the
 contents of a group can be matched later in the string with the
-\code{\e \[1-9]} special sequence, described next.}
+\code{\e [1-9]} special sequence, described next.
 %
 {\fulllineitems\item[\code{\e \e 1, ... \e \e 7, \e 8, \e 9}]
-{Matches the contents of the group of the same
+Matches the contents of the group of the same
 number.  For example, \code{\e (.+\e ) \e \e 1} matches 'the the' or
 '55 55', but not 'the end' (note the space after the group).  This
 special sequence can only be used to match one of the first 9 groups;
 groups with higher numbers can be matched using the \code{\e v}
 sequence.  (\code{\e 8} and \code{\e 9} don't need a double backslash
-because they are not octal digits.)}}
+because they are not octal digits.)}
 %
-\item[\code{\e \e b}]{Matches the empty string, but only at the
+\item[\code{\e \e b}] Matches the empty string, but only at the
 beginning or end of a word.  A word is defined as a sequence of
 alphanumeric characters, so the end of a word is indicated by
-whitespace or a non-alphanumeric character.}
+whitespace or a non-alphanumeric character.
 %
-\item[\code{\e B}]{Matches the empty string, but when it is \emph{not} at the
-beginning or end of a word.} 
+\item[\code{\e B}] Matches the empty string, but when it is \emph{not} at the
+beginning or end of a word.
 %
-\item[\code{\e v}]{Must be followed by a two digit decimal number, and
-matches the contents of the group of the same number.  The group number must be between 1 and 99, inclusive.}
+\item[\code{\e v}] Must be followed by a two digit decimal number, and
+matches the contents of the group of the same number.  The group number must be between 1 and 99, inclusive.
 %
 \item[\code{\e w}]Matches any alphanumeric character; this is
 equivalent to the set \code{[a-zA-Z0-9]}.
 %
-\item[\code{\e W}]{Matches any non-alphanumeric character; this is
-equivalent to the set \code{[\^a-zA-Z0-9]}.} 
-\item[\code{\e <}]{Matches the empty string, but only at the beginning of a
+\item[\code{\e W}] Matches any non-alphanumeric character; this is
+equivalent to the set \code{[\^a-zA-Z0-9]}.
+\item[\code{\e <}] Matches the empty string, but only at the beginning of a
 word.  A word is defined as a sequence of alphanumeric characters, so
 the end of a word is indicated by whitespace or a non-alphanumeric 
-character.}
-\item[\code{\e >}]{Matches the empty string, but only at the end of a
-word.}
+character.
+\item[\code{\e >}] Matches the empty string, but only at the end of a
+word.
 
-\item[\code{\e \e \e \e}]{Matches a literal backslash.}
+\item[\code{\e \e \e \e}] Matches a literal backslash.
 
 % In Emacs, the following two are start of buffer/end of buffer.  In
 % Python they seem to be synonyms for ^$.
-\item[\code{\e `}]{Like \code{\^}, this only matches at the start of the
-string.}
+\item[\code{\e `}] Like \code{\^}, this only matches at the start of the
+string.
 \item[\code{\e \e '}] Like \code{\$}, this only matches at the end of the
 string.
 % end of buffer
diff --git a/Doc/libstdwin.tex b/Doc/libstdwin.tex
index e009e3f..2f2bd42 100644
--- a/Doc/libstdwin.tex
+++ b/Doc/libstdwin.tex
@@ -310,6 +310,7 @@
 \end{funcdesc}
 
 \subsection{Window Objects}
+\nodename{STDWIN Window Objects}
 
 Window objects are created by \code{stdwin.open()}.  They are closed
 by their \code{close()} method or when they are garbage-collected.
diff --git a/Doc/libtemplate.tex b/Doc/libtemplate.tex
index 4afb56b..cd49a8f 100644
--- a/Doc/libtemplate.tex
+++ b/Doc/libtemplate.tex
@@ -24,8 +24,8 @@
 It knows the four generally available Spam varieties and understands
 both can sizes.
 
-Because spamification requires UNIX process management, the module is
-only available on genuine UNIX systems.
+Because spamification requires \UNIX{} process management, the module
+is only available on genuine \UNIX{} systems.
 
 
 % ==== 3. ====
diff --git a/Doc/libtermios.tex b/Doc/libtermios.tex
index e55aab4..3d007c3 100644
--- a/Doc/libtermios.tex
+++ b/Doc/libtermios.tex
@@ -73,7 +73,7 @@
 
 Here's a function that prompts for a password with echoing turned off.
 Note the technique using a separate \code{termios.tcgetattr()} call
-and a \code{try {\ldots} finally} statement to ensure that the old tty
+and a \code{try \ldots{} finally} statement to ensure that the old tty
 attributes are restored exactly no matter what happens:
 
 \begin{verbatim}
diff --git a/Doc/libunix.tex b/Doc/libunix.tex
index 895c6e5..47ed029 100644
--- a/Doc/libunix.tex
+++ b/Doc/libunix.tex
@@ -19,7 +19,7 @@
 --- The group database (\code{getgrnam()} and friends).
 
 \item[crypt]
---- The (\code{crypt()} function used to check Unix passwords).
+--- The \code{crypt()} function used to check Unix passwords.
 
 \item[dbm]
 --- The standard ``database'' interface, based on \code{ndbm}.
@@ -30,10 +30,16 @@
 \item[termios]
 --- Posix style tty control.
 
+\item[TERMIOS]
+--- The symbolic constants required to use the \code{termios} module.
+
 \item[fcntl]
 --- The \code{fcntl()} and \code{ioctl()} system calls.
 
 \item[posixfile]
 --- A file-like object with support for locking.
 
+\item[syslog]
+--- An interface to the Unix \code{syslog} library routines.
+
 \end{description}
diff --git a/Doc/libwww.tex b/Doc/libwww.tex
index c42494e..aebe931 100644
--- a/Doc/libwww.tex
+++ b/Doc/libwww.tex
@@ -51,4 +51,18 @@
 \item[mimetools]
 --- Tools for parsing MIME style message bodies.
 
+\item[binhex]
+--- Encode and decode files in binhex4 format.
+
+\item[uu]
+--- Encode and decode files in uuencode format.
+
+\item[binascii]
+--- Tools for converting between binary and various ascii-encoded binary 
+representation
+
+\item[xdrlib]
+--- The External Data Representation Standard as described in RFC 1014,
+written by Sun Microsystems, Inc. June 1987.
+
 \end{description}
diff --git a/Doc/libxdrlib.tex b/Doc/libxdrlib.tex
index e0ed029..1221fff 100644
--- a/Doc/libxdrlib.tex
+++ b/Doc/libxdrlib.tex
@@ -205,6 +205,7 @@
 \end{funcdesc}
 
 \subsection{Exceptions}
+\nodename{Exceptions in xdrlib module}
 
 Exceptions in this module are coded as class instances:
 
diff --git a/Doc/partparse.py b/Doc/partparse.py
index b83ad83..4a836f2 100644
--- a/Doc/partparse.py
+++ b/Doc/partparse.py
@@ -827,7 +827,7 @@
 	self.data = self.data + data
 
 # ignore these commands
-ignoredcommands = ('bcode', 'ecode')
+ignoredcommands = ('bcode', 'ecode', 'hline', 'fulllineitems', 'small')
 # map commands like these to themselves as plaintext
 wordsselves = ('UNIX', 'ABC', 'C', 'ASCII', 'EOF', 'LaTeX')
 # \{ --> {,  \} --> }, etc
@@ -1978,6 +1978,12 @@
 
 	if ch.chtype == chunk_type[CSNAME]:
 	    s_buf_data = s(buf, ch.data)
+            if s_buf_data == 'e':
+                wm('\\')
+                continue
+            if s_buf_data == '$':
+                wm('$')
+                continue
 	    wm('@' + s_buf_data)
 	    if s_buf_data == 'node' and \
 		      pp[i].chtype == chunk_type[PLAIN] and \
diff --git a/Doc/templates/module.tex b/Doc/templates/module.tex
index 4afb56b..cd49a8f 100644
--- a/Doc/templates/module.tex
+++ b/Doc/templates/module.tex
@@ -24,8 +24,8 @@
 It knows the four generally available Spam varieties and understands
 both can sizes.
 
-Because spamification requires UNIX process management, the module is
-only available on genuine UNIX systems.
+Because spamification requires \UNIX{} process management, the module
+is only available on genuine \UNIX{} systems.
 
 
 % ==== 3. ====
diff --git a/Doc/tools/partparse.py b/Doc/tools/partparse.py
index b83ad83..4a836f2 100644
--- a/Doc/tools/partparse.py
+++ b/Doc/tools/partparse.py
@@ -827,7 +827,7 @@
 	self.data = self.data + data
 
 # ignore these commands
-ignoredcommands = ('bcode', 'ecode')
+ignoredcommands = ('bcode', 'ecode', 'hline', 'fulllineitems', 'small')
 # map commands like these to themselves as plaintext
 wordsselves = ('UNIX', 'ABC', 'C', 'ASCII', 'EOF', 'LaTeX')
 # \{ --> {,  \} --> }, etc
@@ -1978,6 +1978,12 @@
 
 	if ch.chtype == chunk_type[CSNAME]:
 	    s_buf_data = s(buf, ch.data)
+            if s_buf_data == 'e':
+                wm('\\')
+                continue
+            if s_buf_data == '$':
+                wm('$')
+                continue
 	    wm('@' + s_buf_data)
 	    if s_buf_data == 'node' and \
 		      pp[i].chtype == chunk_type[PLAIN] and \
