diff --git a/Doc/lib/libaifc.tex b/Doc/lib/libaifc.tex
index 0a56ca6..7b4e4c8 100644
--- a/Doc/lib/libaifc.tex
+++ b/Doc/lib/libaifc.tex
@@ -11,14 +11,14 @@
 sound is sampled.  The number of channels indicate if the audio is
 mono, stereo, or quadro.  Each frame consists of one sample per
 channel.  The sample size is the size in bytes of each sample.  Thus a
-frame consists of nchannels*framesize bytes, and a second's worth of
-audio consists of nchannels*framesize*framerate bytes.
+frame consists of \var{nchannels}*\var{framesize} bytes, and a second's worth of
+audio consists of \var{nchannels}*\var{framesize}*\var{framerate} bytes.
 
 Module \code{aifc} defines the following function:
 
 \renewcommand{\indexsubitem}{(in module aifc)}
 \begin{funcdesc}{open}{file\, mode}
-Opens an AIFF or AIFF-C file and returns an object instance with
+Open an AIFF or AIFF-C file and return an object instance with
 methods that are described below.  The argument file is either a
 string naming a file or a file object.  The mode is either the string
 'r' when the file must be opened for reading, or 'w' when the file
@@ -75,7 +75,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{readframes}{nframes}
-Read and return the next nframes frames from the audio file.  The
+Read and return the next \var{nframes} frames from the audio file.  The
 returned data is a string containing for each frame the uncompressed
 samples of all channels.
 \end{funcdesc}
@@ -175,6 +175,6 @@
 
 \begin{funcdesc}{close}{}
 Close the AIFF file.  The header of the file is updated to reflect the
-actual size of the audio data After calling this method, the object
+actual size of the audio data. After calling this method, the object
 can no longer be used.
 \end{funcdesc}
diff --git a/Doc/lib/libaudioop.tex b/Doc/lib/libaudioop.tex
index 61ab7fc..03e074d 100644
--- a/Doc/lib/libaudioop.tex
+++ b/Doc/lib/libaudioop.tex
@@ -1,8 +1,8 @@
 \section{Built-in module \sectcode{audioop}}
 \bimodindex{audioop}
 
-The audioop module contains some useful operations on sound fragments.
-It operates on sound fragments consisting of signed integer samples of
+The \code{audioop} module contains some useful operations on sound fragments.
+It operates on sound fragments consisting of signed integer samples
 8, 16 or 32 bits wide, stored in Python strings.  This is the same
 format as used by the \code{al} and \code{sunaudiodev} modules.  All
 scalar items are integers, unless specified otherwise.
@@ -19,7 +19,7 @@
 \end{excdesc}
 
 \begin{funcdesc}{add}{fragment1\, fragment2\, width}
-This function returns a fragment that is the addition of the two samples
+This function returns a fragment which is the addition of the two samples
 passed as parameters. \var{width} is the sample width in bytes, either
 \code{1}, \code{2} or \code{4}. Both fragments should have the same length.
 \end{funcdesc}
@@ -60,8 +60,8 @@
 \begin{funcdesc}{findfactor}{fragment\, reference}
 This routine (which only accepts 2-byte sample fragments) calculates a
 factor \var{F} such that \code{rms(add(fragment, mul(reference, -F)))}
-is minimal, i.e. it calculates the factor with which you should
-multiply \var{reference} to make it match as good as possible to
+is minimal, i.e.\ it calculates the factor with which you should
+multiply \var{reference} to make it match as well as possible to
 \var{fragment}. The fragments should be the same size.
 
 The time taken by this routine is proportional to \code{len(fragment)}. 
@@ -69,7 +69,7 @@
 
 \begin{funcdesc}{findfit}{fragment\, reference}
 This routine (which only accepts 2-byte sample fragments) tries to
-match \var{reference} as good as possible to a portion of
+match \var{reference} as well as possible to a portion of
 \var{fragment} (which should be the longer fragment). It
 (conceptually) does this by taking slices out of \var{fragment}, using
 \code{findfactor} to compute the best match, and minimizing the
@@ -81,8 +81,8 @@
 
 \begin{funcdesc}{findmax}{fragment\, length}
 This routine (which only accepts 2-byte sample fragments) searches
-\var{fragment} for a slice of length \var{length} samples (not bytes!)
-with maximum energy, i.e. it returns \var{i} for which
+\var{fragment} for a slice of length \var{length} samples (not bytes!)\
+with maximum energy, i.e.\ it returns \var{i} for which
 \code{rms(fragment[i*2:(i+length)*2])} is maximal.
 
 The routine takes time proportional to \code{len(fragment)}.
@@ -140,7 +140,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{mul}{fragment\, width\, factor}
-Mul returns a fragment that has all samples in the original framgent
+Return a fragment that has all samples in the original framgent
 multiplied by the floating-point value \var{factor}. Overflow is
 silently ignored.
 \end{funcdesc}
@@ -150,25 +150,6 @@
 modified fragment.
 \end{funcdesc}
 
-\begin{funcdesc}{tomono}{fragment\, width\, lfactor\, rfactor} 
-This function converts a stereo fragment to a mono fragment. The left
-channel is multiplied by \var{lfactor} and the right channel by
-\var{rfactor} before adding the two channels to give a mono signal.
-\end{funcdesc}
-
-\begin{funcdesc}{tostereo}{fragment\, width\, lfactor\, rfactor}
-This function generates a stereo fragment from a mono fragment. Each
-pair of samples in the stereo fragment are computed from the mono
-sample, whereby left channel samples are multiplied by \var{lfactor}
-and right channel samples by \var{rfactor}.
-\end{funcdesc}
-
-\begin{funcdesc}{mul}{fragment\, width\, factor}
-Mul returns a fragment that has all samples in the original framgent
-multiplied by the floating-point value \var{factor}. Overflow is
-silently ignored.
-\end{funcdesc}
-
 \begin{funcdesc}{rms}{fragment\, width\, factor}
 Returns the root-mean-square of the fragment, i.e.
 \iftexi
@@ -184,6 +165,19 @@
 This is a measure of the power in an audio signal.
 \end{funcdesc}
 
+\begin{funcdesc}{tomono}{fragment\, width\, lfactor\, rfactor} 
+This function converts a stereo fragment to a mono fragment. The left
+channel is multiplied by \var{lfactor} and the right channel by
+\var{rfactor} before adding the two channels to give a mono signal.
+\end{funcdesc}
+
+\begin{funcdesc}{tostereo}{fragment\, width\, lfactor\, rfactor}
+This function generates a stereo fragment from a mono fragment. Each
+pair of samples in the stereo fragment are computed from the mono
+sample, whereby left channel samples are multiplied by \var{lfactor}
+and right channel samples by \var{rfactor}.
+\end{funcdesc}
+
 \begin{funcdesc}{ulaw2lin}{fragment\, width}
 This function converts sound fragments in ULAW encoding to linearly
 encoded sound fragments. ULAW encoding always uses 8 bits samples, so
@@ -191,7 +185,7 @@
 \end{funcdesc}
 
 Note that operations such as \code{mul} or \code{max} make no
-distinction between mono and stereo fragments, i.e. all samples are
+distinction between mono and stereo fragments, i.e.\ all samples are
 treated equal.  If this is a problem the stereo fragment should be split
 into two mono fragments first and recombined later.  Here is an example
 of how to do that:
@@ -207,10 +201,10 @@
 \end{verbatim}\ecode
 
 If you use the ADPCM coder to build network packets and you want your
-protocol to be stateless (i.e. to be able to tolerate packet loss)
+protocol to be stateless (i.e.\ to be able to tolerate packet loss)
 you should not only transmit the data but also the state. Note that
 you should send the \var{initial} state (the one you passed to
-lin2adpcm) along to the decoder, not the final state (as returned by
+\code{lin2adpcm}) along to the decoder, not the final state (as returned by
 the coder). If you want to use \code{struct} to store the state in
 binary you can code the first element (the predicted value) in 16 bits
 and the second (the delta index) in 8.
diff --git a/Doc/lib/libcopy.tex b/Doc/lib/libcopy.tex
index f7f9744..c141e05 100644
--- a/Doc/lib/libcopy.tex
+++ b/Doc/lib/libcopy.tex
@@ -10,8 +10,8 @@
 \begin{verbatim}
 import copy
 
-x = copy.copy(y)	# make a shallow copy of y
-x = copy.deepcopy(y)	# make a deep copy of y
+x = copy.copy(y)        # make a shallow copy of y
+x = copy.deepcopy(y)    # make a deep copy of y
 \end{verbatim}
 
 For module specific errors, \code{copy.Error} is raised.
@@ -44,7 +44,7 @@
 contain a reference to themselves) may cause a recursive loop.
 
 \item
-Because deep copy copies {\em everything} it may copy too much, e.g.
+Because deep copy copies {\em everything} it may copy too much, e.g.\
 administrative data structures that should be shared even between
 copies.
 
diff --git a/Doc/lib/libdbm.tex b/Doc/lib/libdbm.tex
index 7ff4ee5..6e72567 100644
--- a/Doc/lib/libdbm.tex
+++ b/Doc/lib/libdbm.tex
@@ -19,6 +19,6 @@
 Open a dbm database and return a mapping object.  \var{filename} is
 the name of the database file (without the \file{.dir} or \file{.pag}
 extensions), \var{rwmode} is \code{'r'}, \code{'w'} or \code{'rw'} as for
-\code{open}, and \var{filemode} is the unix mode of the file, used only
+\code{open}, and \var{filemode} is the \UNIX{} mode of the file, used only
 when the database has to be created.
 \end{funcdesc}
diff --git a/Doc/lib/libfcntl.tex b/Doc/lib/libfcntl.tex
index e361d5e..46b41a5 100644
--- a/Doc/lib/libfcntl.tex
+++ b/Doc/lib/libfcntl.tex
@@ -1,11 +1,11 @@
 % Manual text by Jaap Vermeulen
 \section{Built-in module \sectcode{fcntl}}
 \bimodindex{fcntl}
-\indexii{UNIX}{file control}
-\indexii{UNIX}{IO control}
+\indexii{\UNIX{}}{file control}
+\indexii{\UNIX{}}{I/O control}
 
-This module performs file control and IO control on file descriptors.
-It is an interface to the \dfn{fcntl()} and \dfn{ioctl()} \UNIX routines.
+This module performs file control and I/O control on file descriptors.
+It is an interface to the \dfn{fcntl()} and \dfn{ioctl()} \UNIX{} routines.
 File descriptors can be obtained with the \dfn{fileno()} method of a
 file or socket object.
 
@@ -23,10 +23,10 @@
   the argument missing or an integer value, the return value of this
   function is the integer return value of the real \code{fcntl()}
   call.  When the argument is a string it represents a binary
-  structure, e.g.  created by \code{struct.pack()}. The binary data is
+  structure, e.g.\ created by \code{struct.pack()}. The binary data is
   copied to a buffer whose address is passed to the real \code{fcntl()}
   call.  The return value after a successful call is the contents of
-  the buffer, converted to a string object.  In the case the
+  the buffer, converted to a string object.  In case the
   \code{fcntl()} fails, an \code{IOError} will be raised.
 \end{funcdesc}
 
diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index 9ebe210..0eb6857 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -405,7 +405,7 @@
 \end{verbatim}\ecode
 \end{funcdesc}
 
-\begin{funcdesc}{vars}{}
+\begin{funcdesc}{vars}{\optional{object}}
 Without arguments, return a dictionary corresponding to the current
 local symbol table.  With a module, class or class instance object as
 argument (or anything else that has a \code{__dict__} attribute),
diff --git a/Doc/lib/libgdbm.tex b/Doc/lib/libgdbm.tex
index 40facad..177627f 100644
--- a/Doc/lib/libgdbm.tex
+++ b/Doc/lib/libgdbm.tex
@@ -21,10 +21,10 @@
 Open a gdbm database and return a mapping object. \var{filename} is
 the name of the database file, \var{rwmode} is \code{'r'}, \code{'w'},
 \code{'c'}, or \code{'n'} for reader, writer (this also gives read
-access), create (writer, but create the database if it doesnt already
+access), create (writer, but create the database if it doesn't already
 exist) and newdb (which will always create a new database). Only one
 writer may open a gdbm file and many readers may open the file. Readers
-and writers can not open the gdbm file at the same time. Note that the
+and writers cannot open the gdbm file at the same time. Note that the
 \code{GDBM_FAST} mode of opening the database is not supported. \var{filemode} 
-is the unix mode of the file, used only when a database is created.
+is the \UNIX\ mode of the file, used only when a database is created.
 \end{funcdesc}
diff --git a/Doc/lib/libgrp.tex b/Doc/lib/libgrp.tex
index 1c4dd15..6310498 100644
--- a/Doc/lib/libgrp.tex
+++ b/Doc/lib/libgrp.tex
@@ -28,5 +28,5 @@
 \end{funcdesc}
 
 \begin{funcdesc}{getgrall}{}
-Return a list of all available group entries entries, in arbitrary order.
+Return a list of all available group entries, in arbitrary order.
 \end{funcdesc}
diff --git a/Doc/lib/libimageop.tex b/Doc/lib/libimageop.tex
index 4481e61..836ae76 100644
--- a/Doc/lib/libimageop.tex
+++ b/Doc/lib/libimageop.tex
@@ -1,9 +1,9 @@
 \section{Built-in module \sectcode{imageop}}
 \bimodindex{imageop}
 
-The imageop module contains some useful operations on images.
+The \code{imageop} module contains some useful operations on images.
 It operates on images consisting of 8 or 32 bit pixels
-stored in python strings. This is the same format as used
+stored in Python strings. This is the same format as used
 by \code{gl.lrectwrite} and the \code{imgfile} module.
 
 The module defines the following variables and functions:
@@ -17,20 +17,20 @@
 
 
 \begin{funcdesc}{crop}{image\, psize\, width\, height\, x0\, y0\, x1\, y1}
-This function takes the image in \code{image}, which should by
-\code{width} by \code{height} in size and consist of pixels of
-\code{psize} bytes, and returns the selected part of that image. \code{x0},
-\code{y0}, \code{x1} and \code{y1} are like the \code{lrectread}
+This function takes the image in \var{image}, which should by
+\var{width} by \var{height} in size and consist of pixels of
+\var{psize} bytes, and returns the selected part of that image. \var{x0},
+\var{y0}, \var{x1} and \var{y1} are like the \code{lrectread}
 parameters, i.e. the boundary is included in the new image.
 The new boundaries need not be inside the picture. Pixels that fall
 outside the old image will have their value set to zero.
-If \code{x0} is bigger than \code{x1} the new image is mirrored. The
+If \var{x0} is bigger than \var{x1} the new image is mirrored. The
 same holds for the y coordinates.
 \end{funcdesc}
 
 \begin{funcdesc}{scale}{image\, psize\, width\, height\, newwidth\, newheight}
-This function returns a \code{image} scaled to size \code{newwidth} by
-\code{newheight}. No interpolation is done, scaling is done by
+This function returns an \var{image} scaled to size \var{newwidth} by
+\var{newheight}. No interpolation is done, scaling is done by
 simple-minded pixel duplication or removal. Therefore, computer-generated
 images or dithered images will not look nice after scaling.
 \end{funcdesc}
@@ -57,7 +57,7 @@
 \begin{funcdesc}{mono2grey}{image\, width\, height\, p0\, p1}
 This function converts a 1-bit monochrome image to an 8 bit greyscale
 or color image. All pixels that are zero-valued on input get value
-\code{p0} on output and all one-value input pixels get value \code{p1}
+\var{p0} on output and all one-value input pixels get value \var{p1}
 on output. To convert a monochrome black-and-white image to greyscale
 pass the values \code{0} and \code{255} respectively.
 \end{funcdesc}
diff --git a/Doc/lib/libimp.tex b/Doc/lib/libimp.tex
index 72f71a2..9ead176 100644
--- a/Doc/lib/libimp.tex
+++ b/Doc/lib/libimp.tex
@@ -39,7 +39,8 @@
 Initialize the built-in module called \var{name} and return its module
 object.  If the module was already initialized, it will be initialized
 {\em again}.  A few modules cannot be initialized twice --- attempting
-to initialize these again will raise an exception.  If there is no
+to initialize these again will raise an \code{ImportError} exception.
+If there is no
 built-in module called \var{name}, \code{None} is returned.
 \end{funcdesc}
 
diff --git a/Doc/lib/libjpeg.tex b/Doc/lib/libjpeg.tex
index a4e931f..b5c14a4 100644
--- a/Doc/lib/libjpeg.tex
+++ b/Doc/lib/libjpeg.tex
@@ -1,19 +1,19 @@
 \section{Built-in Module \sectcode{jpeg}}
 \bimodindex{jpeg}
 
-The module jpeg provides access to the jpeg compressor and
-decompressor written by the Independent JPEG Group. JPEG is a (draft?)
+The module \code{jpeg} provides access to the jpeg compressor and
+decompressor written by the Independent JPEG Group. JPEG is a (draft?)\
 standard for compressing pictures.  For details on jpeg or the
 Independent JPEG Group software refer to the JPEG standard or the
 documentation provided with the software.
 
-The jpeg module defines these functions:
+The \code{jpeg} module defines these functions:
 
 \renewcommand{\indexsubitem}{(in module jpeg)}
 \begin{funcdesc}{compress}{data\, w\, h\, b}
-Treat data as a pixmap of width w and height h, with b bytes per
+Treat data as a pixmap of width \var{w} and height \var{h}, with \var{b} bytes per
 pixel.  The data is in SGI GL order, so the first pixel is in the
-lower-left corner. This means that lrectread return data can
+lower-left corner. This means that \code{lrectread} return data can
 immedeately be passed to compress.  Currently only 1 byte and 4 byte
 pixels are allowed, the former being treated as greyscale and the
 latter as RGB color.  Compress returns a string that contains the
@@ -24,28 +24,28 @@
 Data is a string containing a picture in JFIF format. It returns a
 tuple
 \code{(\var{data}, \var{width}, \var{height}, \var{bytesperpixel})}.
-Again, the data is suitable to pass to lrectwrite.
+Again, the data is suitable to pass to \code{lrectwrite}.
 \end{funcdesc}
 
 \begin{funcdesc}{setoption}{name\, value}
 Set various options.  Subsequent compress and decompress calls
 will use these options.  The following options are available:
 \begin{description}
-\item[\code{'forcegray'}]
+\item[\code{'forcegray' }]
 Force output to be grayscale, even if input is RGB.
 
-\item[\code{'quality'}]
+\item[\code{'quality' }]
 Set the quality of the compressed image to a
 value between \code{0} and \code{100} (default is \code{75}).  Compress only.
 
-\item[\code{'optimize'}]
+\item[\code{'optimize' }]
 Perform Huffman table optimization.  Takes longer, but results in
 smaller compressed image.  Compress only.
 
-\item[\code{'smooth'}]
+\item[\code{'smooth' }]
 Perform inter-block smoothing on uncompressed image.  Only useful for
 low-quality images.  Decompress only.
 \end{description}
 \end{funcdesc}
 
-Compress and uncompress raise the error jpeg.error in case of errors.
+Compress and uncompress raise the error \code{jpeg.error} in case of errors.
diff --git a/Doc/lib/libmd5.tex b/Doc/lib/libmd5.tex
index 3e22820..0dfa65e 100644
--- a/Doc/lib/libmd5.tex
+++ b/Doc/lib/libmd5.tex
@@ -3,7 +3,7 @@
 
 This module implements the interface to RSA's MD5 message digest
 algorithm (see also the file \file{md5.doc}). Its use is quite
-straightforward: use the function \code{md5} to create an
+straightforward:\ use the function \code{new} to create an
 \dfn{md5}-object. You can now ``feed'' this object with arbitrary
 strings.
 
diff --git a/Doc/lib/libmpz.tex b/Doc/lib/libmpz.tex
index ea0d1b7..1fd03f7 100644
--- a/Doc/lib/libmpz.tex
+++ b/Doc/lib/libmpz.tex
@@ -8,15 +8,15 @@
 otherwise, the description in the GNU MP documentation can be applied.
 
 In general, \dfn{mpz}-numbers can be used just like other standard
-Python numbers, e.g. you can use the built-in operators like \code{+},
+Python numbers, e.g.\ you can use the built-in operators like \code{+},
 \code{*}, etc., as well as the standard built-in functions like
 \code{abs}, \code{int}, \ldots, \code{divmod}, \code{pow}.
 \strong{Please note:} the {\it bitwise-xor} operation has been implemented as
 a bunch of {\it and}s, {\it invert}s and {\it or}s, because the library
 lacks an \code{mpz_xor} function, and I didn't need one.
 
-You create an mpz-number, by calling the function called \code{mpz} (see
-below for an excact description). An mpz-number is printed like this:
+You create an mpz-number by calling the function called \code{mpz} (see
+below for an exact description). An mpz-number is printed like this:
 \code{mpz(\var{value})}.
 
 \renewcommand{\indexsubitem}{(in module mpz)}
@@ -59,7 +59,7 @@
 \begin{funcdesc}{divm}{numerator\, denominator\, modulus}
   Returns a number \var{q}. such that
   \code{\var{q} * \var{denominator} \%{} \var{modulus} == \var{numerator}}.
-  One could also implement this function in python, using \code{gcdext}.
+  One could also implement this function in Python, using \code{gcdext}.
 \end{funcdesc}
 
 An mpz-number has one method:
@@ -69,6 +69,6 @@
   Convert this mpz-number to a binary string, where the number has been
   stored as an array of radix-256 digits, least significant digit first.
 
-  The mpz-number must have a value greater than- or equal to zero,
+  The mpz-number must have a value greater than or equal to zero,
   otherwise a \code{ValueError}-exception will be raised.
 \end{funcdesc}
diff --git a/Doc/lib/libos.tex b/Doc/lib/libos.tex
index 6763ed4..5109f5d 100644
--- a/Doc/lib/libos.tex
+++ b/Doc/lib/libos.tex
@@ -9,7 +9,7 @@
 module exports the same functions and data as \code{posix}; otherwise,
 it searches for an OS dependent built-in module like \code{mac} and
 exports the same functions and data as found there.  The design of all
-Python's built-in OS dependen modules is such that as long as the same
+Python's built-in OS dependent modules is such that as long as the same
 functionality is available, it uses the same interface; e.g., the
 function \code{os.stat(\var{file})} returns stat info about a \var{file} in a
 format compatible with the POSIX interface.
diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex
index a9d5fa4..5c01d36 100644
--- a/Doc/lib/libpickle.tex
+++ b/Doc/lib/libpickle.tex
@@ -8,7 +8,7 @@
 \indexii{pickling}{objects}
 
 The \code{pickle} module implements a basic but powerful algorithm for
-``pickling'' (a.k.a. serializing, marshalling or flattening) nearly
+``pickling'' (a.k.a.\ serializing, marshalling or flattening) nearly
 arbitrary Python objects.  This is a more primitive notion than
 persistency --- although \code{pickle} reads and writes file objects,
 it does not handle the issue of naming persistent objects, nor the
@@ -32,7 +32,7 @@
 
 \item pointer sharing
 
-\item instances uf user-defined classes
+\item instances of user-defined classes
 
 \end{itemize}
 
@@ -105,11 +105,11 @@
 \ttindex{__dict__}
 
 Note that when class instances are pickled, their class's code and
-data is not pickled along with them.  Only the instance data is
+data are not pickled along with them.  Only the instance data are
 pickled.  This is done on purpose, so you can fix bugs in a class or
 add methods and still load objects that were created with an earlier
 version of the class.  If you plan to have long-lived objects that
-will see many versions of a class, it may be worth to put a version
+will see many versions of a class, it may be worthwhile to put a version
 number in the objects so that suitable conversions can be made by the
 class's \code{__setstate__()} method.
 
@@ -157,7 +157,7 @@
 
 It is possible to make multiple calls to \code{Pickler.dump()} or to
 \code{Unpickler.load()}, as long as there is a one-to-one
-correspondence between pickler and \code{Unpickler} objects and
+correspondence between \code{Pickler} and \code{Unpickler} objects and
 between \code{dump} and \code{load} calls for any pair of
 corresponding \code{Pickler} and \code{Unpicklers}.  {\em Warning}:
 this is intended for pickling multiple objects without intervening
diff --git a/Doc/lib/libposix.tex b/Doc/lib/libposix.tex
index 1a05d47..c749d74 100644
--- a/Doc/lib/libposix.tex
+++ b/Doc/lib/libposix.tex
@@ -3,7 +3,7 @@
 \bimodindex{posix}
 
 This module provides access to operating system functionality that is
-standardized by the C Standard and the POSIX standard (a thinly diguised
+standardized by the C Standard and the POSIX standard (a thinly disguised
 \UNIX{} interface).
 It is available in all Python versions except on the Macintosh;
 the MS-DOS version does not support certain functions.
@@ -31,7 +31,7 @@
 
 \renewcommand{\indexsubitem}{(exception in module posix)}
 \begin{excdesc}{error}
-This exception is raised when an POSIX function returns a
+This exception is raised when a POSIX function returns a
 POSIX-related error (e.g., not for illegal argument types).  Its
 string value is \code{'posix.error'}.  The accompanying value is a
 pair containing the numeric error code from \code{errno} and the
@@ -279,7 +279,7 @@
 \begin{funcdesc}{system}{command}
 Execute the command (a string) in a subshell.  This is implemented by
 calling the Standard C function \code{system()}, and has the same
-limitations.  Changes to \code{posix.environ}, \code{sys.stdin} etc. are
+limitations.  Changes to \code{posix.environ}, \code{sys.stdin} etc.\ are
 not reflected in the environment of the executed command.  The return
 value is the exit status of the process as returned by Standard C
 \code{system()}.
@@ -302,7 +302,7 @@
 operating system.  The tuple contains 5 strings:
 \code{(\var{sysname}, \var{nodename}, \var{release}, \var{version}, \var{machine})}.
 Some systems truncate the nodename to 8
-characters or to the leading component; an better way to get the
+characters or to the leading component; a better way to get the
 hostname is \code{socket.gethostname()}.  (Not on MS-DOS, nor on older
 \UNIX{} systems.)
 \end{funcdesc}
diff --git a/Doc/lib/libppath.tex b/Doc/lib/libppath.tex
index 731d344..c7c2b63 100644
--- a/Doc/lib/libppath.tex
+++ b/Doc/lib/libppath.tex
@@ -48,13 +48,13 @@
 
 \begin{funcdesc}{isfile}{p}
 Return true if \var{p} is an existing regular file.  This follows
-symbolic links, so both islink() and isfile() can be true for the same
+symbolic links, so both \code{islink()} and \code{isfile()} can be true for the same
 path.
 \end{funcdesc}
 
 \begin{funcdesc}{isdir}{p}
 Return true if \var{p} is an existing directory.  This follows
-symbolic links, so both islink() and isdir() can be true for the same
+symbolic links, so both \code{islink()} and \code{isdir()} can be true for the same
 path.
 \end{funcdesc}
 
@@ -109,7 +109,7 @@
 it is the root), the trailing slash is removed and the operation
 applied to the result; otherwise, \code{join(\var{head}, \var{tail})} equals
 \var{p}.  The \var{tail} part never contains a slash.  Some boundary
-cases: if \var{p} is the root, \var{head} equals \var{p} and
+cases:\ if \var{p} is the root, \var{head} equals \var{p} and
 \var{tail} is empty; if \var{p} is empty, both \var{head} and
 \var{tail} are empty; if \var{p} contains no slash, \var{head} is
 empty and \var{tail} equals \var{p}.
diff --git a/Doc/lib/librand.tex b/Doc/lib/librand.tex
index b03ac41..4991e59 100644
--- a/Doc/lib/librand.tex
+++ b/Doc/lib/librand.tex
@@ -1,7 +1,7 @@
 \section{Standard Module \sectcode{rand}}
 
 \stmodindex{rand} This module implements a pseudo-random number
-generator with an interface similar to \code{rand()} in C.  It defines
+generator with an interface similar to \code{rand()} in C\@.  It defines
 the following functions:
 
 \renewcommand{\indexsubitem}{(in module rand)}
diff --git a/Doc/lib/librgbimg.tex b/Doc/lib/librgbimg.tex
index 367851b..f25921e 100644
--- a/Doc/lib/librgbimg.tex
+++ b/Doc/lib/librgbimg.tex
@@ -22,7 +22,7 @@
 
 \begin{funcdesc}{longimagedata}{file}
 This function reads and decodes the image on the specified file, and
-returns it as a python string. The string has 4 byte RGBA pixels.
+returns it as a Python string. The string has 4 byte RGBA pixels.
 The bottom left pixel is the first in
 the string. This format is suitable to pass to \code{gl.lrectwrite},
 for instance.
@@ -41,5 +41,5 @@
 This function sets a global flag which defines whether the scan lines
 of the image are read or written from bottom to top (flag is zero,
 compatible with SGI GL) or from top to bottom(flag is one,
-compatible with X).  The default is zero.
+compatible with X)\@.  The default is zero.
 \end{funcdesc}
diff --git a/Doc/lib/librotor.tex b/Doc/lib/librotor.tex
index b931333..f2ea074 100644
--- a/Doc/lib/librotor.tex
+++ b/Doc/lib/librotor.tex
@@ -25,7 +25,7 @@
 
 \renewcommand{\indexsubitem}{(in module rotor)}
 \begin{funcdesc}{newrotor}{key\optional{\, numrotors}}
-Returns a rotor object. \var{key} is a string containing the encryption key
+Return a rotor object. \var{key} is a string containing the encryption key
 for the object; it can contain arbitrary binary data. The key will be used
 to randomly generate the rotor permutations and their initial positions.
 \var{numrotors} is the number of rotor permutations in the returned object;
@@ -36,28 +36,28 @@
 
 \renewcommand{\indexsubitem}{(rotor method)}
 \begin{funcdesc}{setkey}{}
-Resets the rotor to its initial state.
+Reset the rotor to its initial state.
 \end{funcdesc}
 
 \begin{funcdesc}{encrypt}{plaintext}
-Resets the rotor object to its initial state and encrypts \var{plaintext},
+Reset the rotor object to its initial state and encrypt \var{plaintext},
 returning a string containing the ciphertext.  The ciphertext is always the
 same length as the original plaintext.
 \end{funcdesc}
 
 \begin{funcdesc}{encryptmore}{plaintext}
-Encrypts \var{plaintext} without resetting the rotor object, and returns a
+Encrypt \var{plaintext} without resetting the rotor object, and return a
 string containing the ciphertext.
 \end{funcdesc}
 
 \begin{funcdesc}{decrypt}{ciphertext}
-Resets the rotor object to its initial state and decrypts \var{ciphertext},
+Reset the rotor object to its initial state and decrypt \var{ciphertext},
 returning a string containing the ciphertext.  The plaintext string will
 always be the same length as the ciphertext.
 \end{funcdesc}
 
 \begin{funcdesc}{decryptmore}{ciphertext}
-Decrypts \var{ciphertext} without resetting the rotor object, and returns a
+Decrypt \var{ciphertext} without resetting the rotor object, and return a
 string containing the ciphertext.
 \end{funcdesc}
 
diff --git a/Doc/lib/libsignal.tex b/Doc/lib/libsignal.tex
index 88116d7..13139d7 100644
--- a/Doc/lib/libsignal.tex
+++ b/Doc/lib/libsignal.tex
@@ -12,20 +12,20 @@
 
 \item
 There is no way to ``block'' signals temporarily from critical
-sections (since this is not supported by all Unix flavors).
+sections (since this is not supported by all \UNIX{} flavors).
 
 \item
 Although Python signal handlers are called asynchronously as far as
 the Python user is concerned, they can only occur between the
 ``atomic'' instructions of the Python interpreter.  This means that
 signals arriving during long calculations implemented purely in C
-(e.g. regular expression matches on large bodies of text) may be
+(e.g.\ regular expression matches on large bodies of text) may be
 delayed for an arbitrary time.
 
 \item
 When a signal arrives during an I/O operation, it is possible that the
 I/O operation raises an exception after the signal handler returns.
-This is dependent on the underlying Unix system's semantics regarding
+This is dependent on the underlying \UNIX{} system's semantics regarding
 interrupted system calls.
 
 \item
@@ -44,8 +44,8 @@
 \item
 Some care must be taken if both signals and threads are used in the
 same program.  The fundamental thing to remember in using signals and
-threads simultaneously is: always perform \code{signal()} operations
-in the main thread of execution.  Any thread can perform a
+threads simultaneously is:\ always perform \code{signal()} operations
+in the main thread of execution.  Any thread can perform an
 \code{alarm()}, \code{getsignal()}, or \code{pause()}; only the main
 thread can set a new signal handler, and the main thread will be the
 only one to receive signals.  This means that signals can't be used as
@@ -73,7 +73,7 @@
   hangup signal is defined as \code{signal.SIGHUP}; the variable names
   are identical to the names used in C programs, as found in
   \file{signal.h}.
-  The UNIX man page for \file{signal} lists the existing signals (on
+  The \UNIX{} man page for \file{signal} lists the existing signals (on
   some systems this is \file{signal(2)}, on others the list is in
   \file{signal(7)}).
   Note that not all systems define the same set of signal names; only
@@ -89,18 +89,18 @@
 \begin{funcdesc}{alarm}{time}
   If \var{time} is non-zero, this function requests that a
   \code{SIGALRM} signal be sent to the process in \var{time} seconds.
-  Any previously scheduled alarm is canceled (i.e. only one alarm can
+  Any previously scheduled alarm is canceled (i.e.\ only one alarm can
   be scheduled at any time).  The returned value is then the number of
   seconds before any previously set alarm was to have been delivered.
   If \var{time} is zero, no alarm id scheduled, and any scheduled
   alarm is canceled.  The return value is the number of seconds
   remaining before a previously scheduled alarm.  If the return value
-  is zero, no alarm is currently scheduled.  (See the UNIX man page
+  is zero, no alarm is currently scheduled.  (See the \UNIX{} man page
   \code{alarm(2)}.)
 \end{funcdesc}
 
 \begin{funcdesc}{getsignal}{signalnum}
-  Returns the current signal handler for the signal \var{signalnum}.
+  Return the current signal handler for the signal \var{signalnum}.
   The returned value may be a callable Python object, or one of the
   special values \code{signal.SIG_IGN}, \code{signal.SIG_DFL} or
   \code{None}.  Here, \code{signal.SIG_IGN} means that the signal was
@@ -110,20 +110,20 @@
 \end{funcdesc}
 
 \begin{funcdesc}{pause}{}
-  Causes the process to sleep until a signal is received; the
+  Cause the process to sleep until a signal is received; the
   appropriate handler will then be called.  Returns nothing.  (See the
-  UNIX man page \code{signal(2)}.)
+  \UNIX{} man page \code{signal(2)}.)
 \end{funcdesc}
 
 \begin{funcdesc}{signal}{signalnum\, handler}
-  Sets the handler for signal \var{signalnum} to the function
+  Set the handler for signal \var{signalnum} to the function
   \var{handler}.  \var{handler} can be any callable Python object, or
   one of the special values \code{signal.SIG_IGN} or
   \code{signal.SIG_DFL}.  The previous signal handler will be returned
-  (see the description of \code{getsignal()} above).  (See the UNIX
+  (see the description of \code{getsignal()} above).  (See the \UNIX{}
   man page \code{signal(2)}.)
 
   When threads are enabled, this function can only be called from the
   main thread; attempting to call it from other threads will cause a
-  \code{ValueError} exception will be raised.
+  \code{ValueError} exception to be raised.
 \end{funcdesc}
diff --git a/Doc/lib/libsocket.tex b/Doc/lib/libsocket.tex
index 25658d9..b826601 100644
--- a/Doc/lib/libsocket.tex
+++ b/Doc/lib/libsocket.tex
@@ -10,7 +10,7 @@
 Communication Tutorial}, by Samuel J.  Leffler et al, both in the
 \UNIX{} Programmer's Manual, Supplementary Documents 1 (sections PS1:7
 and PS1:8).  The \UNIX{} manual pages for the various socket-related
-system calls also a valuable source of information on the details of
+system calls are also a valuable source of information on the details of
 socket semantics.
 
 The Python interface is a straightforward transliteration of the
@@ -77,11 +77,11 @@
 \dataline{IPPORT_*}
 \dataline{INADDR_*}
 \dataline{IP_*}
-Many constants of these forms, documented in the Unix documentation on
+Many constants of these forms, documented in the \UNIX{} documentation on
 sockets and/or the IP protocol, are also defined in the socket module.
 They are generally used in arguments to the \code{setsockopt} and
 \code{getsockopt} methods of socket objects.  In most cases, only
-those symbols that are defined in the Unix header files are defined;
+those symbols that are defined in the \UNIX{} header files are defined;
 for a few symbols, default values are provided.
 \end{datadesc}
 
@@ -113,7 +113,7 @@
 \code{'udp'}.
 \end{funcdesc}
 
-\begin{funcdesc}{socket}{family\, type\, proto}
+\begin{funcdesc}{socket}{family\, type\optional{\, proto}}
 Create a new socket using the given address family, socket type and
 protocol number.  The address family should be \code{AF_INET} or
 \code{AF_UNIX}.  The socket type should be \code{SOCK_STREAM},
@@ -121,7 +121,7 @@
 The protocol number is usually zero and may be omitted in that case.
 \end{funcdesc}
 
-\begin{funcdesc}{fromfd}{fd\, family\, type\, proto}
+\begin{funcdesc}{fromfd}{fd\, family\, type\optional{\, proto}}
 Build a socket object from an existing file descriptor (an integer as
 returned by a file object's \code{fileno} method).  Address family,
 socket type and protocol number are as for the \code{socket} function
@@ -129,7 +129,7 @@
 checked --- subsequent operations on the object may fail if the file
 descriptor is invalid.  This function is rarely needed, but can be
 used to get or set socket options on a socket passed to a program as
-standard input or output (e.g. a server started by the \UNIX{} inet
+standard input or output (e.g.\ a server started by the \UNIX{} inet
 daemon).
 \end{funcdesc}
 
@@ -185,7 +185,7 @@
 see above.)
 \end{funcdesc}
 
-\begin{funcdesc}{getsockopt}{level\, optname\, buflen}
+\begin{funcdesc}{getsockopt}{level\, optname\optional{\, buflen}}
 Return the value of the given socket option (see the \UNIX{} man page
 {\it getsockopt}(2)).  The needed symbolic constants are defined in
 the \code{socket} module (\code{SO_*} etc.).  If the optional third
@@ -211,7 +211,7 @@
 garbage-collected independently.
 \end{funcdesc}
 
-\begin{funcdesc}{recv}{bufsize\, flags}
+\begin{funcdesc}{recv}{bufsize\optional{\, flags}}
 Receive data from the socket.  The return value is a string representing
 the data received.  The maximum amount of data to be received
 at once is specified by \var{bufsize}.  See the \UNIX{} manual page
@@ -271,7 +271,7 @@
 \subsection{Example}
 \nodename{Socket Example}
 
-Here are two minimal example programs using the TCP/IP protocol: a
+Here are two minimal example programs using the TCP/IP protocol:\ a
 server that echoes all data that it receives back (servicing only one
 client), and a client using it.  Note that a server must perform the
 sequence \code{socket}, \code{bind}, \code{listen}, \code{accept}
diff --git a/Doc/lib/libstring.tex b/Doc/lib/libstring.tex
index 84d73e8..0c9ad7d 100644
--- a/Doc/lib/libstring.tex
+++ b/Doc/lib/libstring.tex
@@ -72,7 +72,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{expandtabs}{s\, tabsize}
-Expand tabs in a string, i.e. replace them by one or more spaces,
+Expand tabs in a string, i.e.\ replace them by one or more spaces,
 depending on the current column and the given tab size.  The column
 number is reset to zero after each newline occurring in the string.
 This doesn't understand other non-printing characters or escape
@@ -88,7 +88,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{rfind}{s\, sub\optional{\, start}}
-Like \code{find} but finds the highest index.
+Like \code{find} but find the highest index.
 \end{funcdesc}
 
 \begin{funcdesc}{index}{s\, sub\optional{\, start}}
@@ -101,7 +101,7 @@
 not found.
 \end{funcdesc}
 
-\begin{funcdesc}{count}{s\, sub\, i}
+\begin{funcdesc}{count}{s\, sub\optional{\, i}}
 Return the number of (non-overlapping) occurrences of substring
 \var{sub} in string \var{s} with index at least \var{i}.
 If \var{i} is omitted, it defaults to \code{0}.
@@ -112,12 +112,12 @@
 \end{funcdesc}
 
 \begin{funcdesc}{split}{s}
-Returns a list of the whitespace-delimited words of the string
+Return a list of the whitespace-delimited words of the string
 \var{s}.
 \end{funcdesc}
 
 \begin{funcdesc}{splitfields}{s\, sep}
-  Returns a list containing the fields of the string \var{s}, using
+  Return a list containing the fields of the string \var{s}, using
   the string \var{sep} as a separator.  The list will have one more
   items than the number of non-overlapping occurrences of the
   separator in the string.  Thus, \code{string.splitfields(\var{s}, '
@@ -139,12 +139,12 @@
 \end{funcdesc}
 
 \begin{funcdesc}{strip}{s}
-Removes leading and trailing whitespace from the string
+Remove leading and trailing whitespace from the string
 \var{s}.
 \end{funcdesc}
 
 \begin{funcdesc}{swapcase}{s}
-Converts lower case letters to upper case and vice versa.
+Convert lower case letters to upper case and vice versa.
 \end{funcdesc}
 
 \begin{funcdesc}{upper}{s}
diff --git a/Doc/lib/libtempfile.tex b/Doc/lib/libtempfile.tex
index 84bd641..f67821d 100644
--- a/Doc/lib/libtempfile.tex
+++ b/Doc/lib/libtempfile.tex
@@ -5,8 +5,8 @@
 
 \renewcommand{\indexsubitem}{(in module tempfile)}
 
-This module generates temporary file names.  It is not UNIX specific,
-but it may require some help on non-UNIX systems.
+This module generates temporary file names.  It is not \UNIX{} specific,
+but it may require some help on non-\UNIX{} systems.
 
 Note: the modules does not create temporary files, nor does it
 automatically remove them when the current process exits or dies.
@@ -27,7 +27,7 @@
 When set to a value other than \code{None}, this variable defines the
 directory in which filenames returned by \code{mktemp()} reside.  The
 default is taken from the environment variable \code{TMPDIR}; if this
-is not set, either \code{/usr/tmp} is used (on UNIX), or the current
+is not set, either \code{/usr/tmp} is used (on \UNIX{}), or the current
 working directory (all other systems).  No check is made to see
 whether its value is valid.
 \end{datadesc}
@@ -38,11 +38,11 @@
 prefix of the final component of the filenames returned by
 \code{mktemp()}.  A string of decimal digits is added to generate
 unique filenames.  The default is either ``\code{@\var{pid}.}'' where
-\var{pid} is the current process ID (on UNIX), or ``\code{tmp}'' (all
+\var{pid} is the current process ID (on \UNIX{}), or ``\code{tmp}'' (all
 other systems).
 \end{datadesc}
 
-Warning: if a UNIX process uses \code{mktemp()}, then calls
+Warning: if a \UNIX{} process uses \code{mktemp()}, then calls
 \code{fork()} and both parent and child continue to use
 \code{mktemp()}, the processes will generate conflicting temporary
 names.  To resolve this, the child process should assign \code{None}
diff --git a/Doc/lib/libthread.tex b/Doc/lib/libthread.tex
index 4208c2d..7147ebf 100644
--- a/Doc/lib/libthread.tex
+++ b/Doc/lib/libthread.tex
@@ -2,14 +2,14 @@
 \bimodindex{thread}
 
 This module provides low-level primitives for working with multiple
-threads (a.k.a. \dfn{light-weight processes} or \dfn{tasks}) --- multiple
+threads (a.k.a.\ \dfn{light-weight processes} or \dfn{tasks}) --- multiple
 threads of control sharing their global data space.  For
-synchronization, simple locks (a.k.a. \dfn{mutexes} or \dfn{binary
+synchronization, simple locks (a.k.a.\ \dfn{mutexes} or \dfn{binary
 semaphores}) are provided.
 
 The module is optional and supported on SGI IRIX 4.x and 5.x and Sun
 Solaris 2.x systems, as well as on systems that have a PTHREAD
-implementation (e.g. KSR).
+implementation (e.g.\ KSR).
 
 It defines the following constant and functions:
 
@@ -21,7 +21,7 @@
 \begin{funcdesc}{start_new_thread}{func\, arg}
 Start a new thread.  The thread executes the function \var{func}
 with the argument list \var{arg} (which must be a tuple).  When the
-function returns, the thread silently exits.  When the function raises
+function returns, the thread silently exits.  When the function
 terminates with an unhandled exception, a stack trace is printed and
 then the thread exits (but other threads continue to run).
 \end{funcdesc}
@@ -59,7 +59,7 @@
 unconditionally, if necessary waiting until it is released by another
 thread (only one thread at a time can acquire a lock --- that's their
 reason for existence), and returns \code{None}.  If the integer
-\var{waitflag} argument is present, the action depends on its value:
+\var{waitflag} argument is present, the action depends on its value:\
 if it is zero, the lock is only acquired if it can be acquired
 immediately without waiting, while if it is nonzero, the lock is
 acquired unconditionally as before.  If an argument is present, the
@@ -72,7 +72,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{locked}{}
-Return the status of the lock: 1 if it has been acquired by some
+Return the status of the lock:\ 1 if it has been acquired by some
 thread, 0 if not.
 \end{funcdesc}
 
diff --git a/Doc/lib/libunix.tex b/Doc/lib/libunix.tex
index ca4ec97..eca2371 100644
--- a/Doc/lib/libunix.tex
+++ b/Doc/lib/libunix.tex
@@ -1,5 +1,5 @@
 \chapter{UNIX ONLY}
 
 The modules described in this chapter provide interfaces to features
-that are unique to the UNIX operating system, or in some cases to
+that are unique to the \UNIX{} operating system, or in some cases to
 some or many variants of it.
