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:
 
