diff --git a/Doc/lib/libdis.tex b/Doc/lib/libdis.tex
index 2dd74bd..7fc831a 100644
--- a/Doc/lib/libdis.tex
+++ b/Doc/lib/libdis.tex
@@ -2,8 +2,7 @@
          Disassembler for Python byte code}
 
 \declaremodule{standard}{dis}
-\modulesynopsis{Disassembler for Python byte code, as stored in code
-                objects and \file{.pyc}/\file{.pyo} files.}
+\modulesynopsis{Disassembler for Python byte code.}
 
 
 The \module{dis} module supports the analysis of Python byte code by
@@ -35,7 +34,7 @@
          19 RETURN_VALUE   
 \end{verbatim}
 
-The \module{dis} module defines the following functions:
+The \module{dis} module defines the following functions and constants:
 
 \begin{funcdesc}{dis}{\optional{bytesource}}
 Disassemble the \var{bytesource} object. \var{bytesource} can denote
@@ -75,7 +74,7 @@
 \end{funcdesc}
 
 \begin{datadesc}{opname}
-Sequence of a operation names, indexable using the byte code.
+Sequence of operation names, indexable using the byte code.
 \end{datadesc}
 
 \begin{datadesc}{cmp_op}
@@ -87,7 +86,7 @@
 \end{datadesc}
 
 \begin{datadesc}{hasname}
-Sequence of byte codes that access a attribute by name.
+Sequence of byte codes that access an attribute by name.
 \end{datadesc}
 
 \begin{datadesc}{hasjrel}
@@ -99,7 +98,7 @@
 \end{datadesc}
 
 \begin{datadesc}{haslocal}
-Sequence of byte codes that access a a local variable.
+Sequence of byte codes that access a local variable.
 \end{datadesc}
 
 \begin{datadesc}{hascompare}
@@ -196,11 +195,11 @@
 \end{opcodedesc}
 
 \begin{opcodedesc}{BINARY_LSHIFT}{}
-Implements \code{TOS = TOS1 << TOS}.
+Implements \code{TOS = TOS1 <\code{}< TOS}.
 \end{opcodedesc}
 
 \begin{opcodedesc}{BINARY_RSHIFT}{}
-Implements \code{TOS = TOS1 >> TOS}.
+Implements \code{TOS = TOS1 >\code{}> TOS}.
 \end{opcodedesc}
 
 \begin{opcodedesc}{BINARY_AND}{}
@@ -245,11 +244,11 @@
 \end{opcodedesc}
 
 \begin{opcodedesc}{INPLACE_LSHIFT}{}
-Implements in-place \code{TOS = TOS1 << TOS}.
+Implements in-place \code{TOS = TOS1 <\code{}< TOS}.
 \end{opcodedesc}
 
 \begin{opcodedesc}{INPLACE_RSHIFT}{}
-Implements in-place \code{TOS = TOS1 >> TOS}.
+Implements in-place \code{TOS = TOS1 >\code{}> TOS}.
 \end{opcodedesc}
 
 \begin{opcodedesc}{INPLACE_AND}{}
diff --git a/Doc/lib/libimp.tex b/Doc/lib/libimp.tex
index 4c66736..10b6253 100644
--- a/Doc/lib/libimp.tex
+++ b/Doc/lib/libimp.tex
@@ -70,14 +70,14 @@
 an otherwise conducted search yielding compatible results).  This
 function does more than importing the module: if the module was
 already imported, it is equivalent to a
-\function{reload()}\bifuncindex{reload}!  The
-\var{name} argument indicates the full module name (including the
-package name, if this is a submodule of a package).  The \var{file}
-argument is an open file, and \var{filename} is the corresponding
-file name; these can be \code{None} and \code{''}, respectively, when
-the module is not being loaded from a file.  The \var{description}
-argument is a tuple as returned by \function{find_module()} describing
-what kind of module must be loaded.
+\function{reload()}\bifuncindex{reload}!  The \var{name} argument
+indicates the full module name (including the package name, if this is
+a submodule of a package).  The \var{file} argument is an open file,
+and \var{filename} is the corresponding file name; these can be
+\code{None} and \code{''}, respectively, when the module is not being
+loaded from a file.  The \var{description} argument is a tuple, as
+would be returned by \function{get_suffixes()}, describing what kind
+of module must be loaded.
 
 If the load is successful, the return value is the module object;
 otherwise, an exception (usually \exception{ImportError}) is raised.
diff --git a/Doc/lib/libmailbox.tex b/Doc/lib/libmailbox.tex
index 8beab4c..082c061 100644
--- a/Doc/lib/libmailbox.tex
+++ b/Doc/lib/libmailbox.tex
@@ -49,5 +49,6 @@
 implementation the \var{fp} attribute of this object may be a true
 file object or a class instance simulating a file object, taking care
 of things like message boundaries if multiple mail messages are
-contained in a single file, etc.
+contained in a single file, etc.  If no more messages are available,
+this method returns \code{None}.
 \end{methoddesc}
diff --git a/Doc/lib/libmimetools.tex b/Doc/lib/libmimetools.tex
index fdf292c..f0e8e4a 100644
--- a/Doc/lib/libmimetools.tex
+++ b/Doc/lib/libmimetools.tex
@@ -61,15 +61,15 @@
 \end{seealso}
 
 
-\subsection{Additional Methods of Message objects}
-\nodename{mimetools.Message Methods}
+\subsection{Additional Methods of Message Objects
+            \label{mimetools-message-objects}}
 
 The \class{Message} class defines the following methods in
 addition to the \class{rfc822.Message} methods:
 
 \begin{methoddesc}{getplist}{}
 Return the parameter list of the \code{content-type} header.  This is
-a list if strings.  For parameters of the form
+a list of strings.  For parameters of the form
 \samp{\var{key}=\var{value}}, \var{key} is converted to lower case but
 \var{value} is not.  For example, if the message contains the header
 \samp{Content-type: text/html; spam=1; Spam=2; Spam} then
diff --git a/Doc/lib/libnew.tex b/Doc/lib/libnew.tex
index df7adfb..e96415c 100644
--- a/Doc/lib/libnew.tex
+++ b/Doc/lib/libnew.tex
@@ -27,12 +27,12 @@
 \code{None}.
 \end{funcdesc}
 
-\begin{funcdesc}{function}{code, globals\optional{, name\optional{argdefs}}}
+\begin{funcdesc}{function}{code, globals\optional{, name\optional{, argdefs}}}
 Returns a (Python) function with the given code and globals. If
 \var{name} is given, it must be a string or \code{None}.  If it is a
 string, the function will have the given name, otherwise the function
 name will be taken from \code{\var{code}.co_name}.  If
-\var{argdefs} is given, it must be a tuple and will be used to the
+\var{argdefs} is given, it must be a tuple and will be used to
 determine the default values of parameters.
 \end{funcdesc}
 
diff --git a/Doc/lib/libre.tex b/Doc/lib/libre.tex
index 37b4ee8..9e027e7 100644
--- a/Doc/lib/libre.tex
+++ b/Doc/lib/libre.tex
@@ -180,7 +180,7 @@
 of a group can be retrieved after a match has been performed, and can
 be matched later in the string with the \regexp{\e \var{number}} special
 sequence, described below.  To match the literals \character{(} or
-\character{')}, use \regexp{\e(} or \regexp{\e)}, or enclose them
+\character{)}, use \regexp{\e(} or \regexp{\e)}, or enclose them
 inside a character class: \regexp{[(] [)]}.
 
 \item[\code{(?...)}] This is an extension notation (a \character{?}
diff --git a/Doc/lib/libsite.tex b/Doc/lib/libsite.tex
index b895a73..b370db6 100644
--- a/Doc/lib/libsite.tex
+++ b/Doc/lib/libsite.tex
@@ -22,7 +22,7 @@
 it uses first \file{lib/python\shortversion/site-packages} and then
 \file{lib/site-python} (on \UNIX{}).  For each of the distinct
 head-tail combinations, it sees if it refers to an existing directory,
-and if so, adds to \code{sys.path}, and also inspected for path
+and if so, adds to \code{sys.path}, and also inspects the path for
 configuration files.
 \indexii{site-python}{directory}
 \indexii{site-packages}{directory}
diff --git a/Doc/lib/libuserdict.tex b/Doc/lib/libuserdict.tex
index 50d52fa..0285380 100644
--- a/Doc/lib/libuserdict.tex
+++ b/Doc/lib/libuserdict.tex
@@ -13,7 +13,7 @@
 The \module{UserDict} module defines the \class{UserDict} class:
 
 \begin{classdesc}{UserDict}{\optional{initialdata}}
-Return a class instance that simulates a dictionary.  The instance's
+Class that simulates a dictionary.  The instance's
 contents are kept in a regular dictionary, which is accessible via the
 \member{data} attribute of \class{UserDict} instances.  If
 \var{initialdata} is provided, \member{data} is initialized with its
@@ -47,7 +47,7 @@
 The \module{UserList} module defines the \class{UserList} class:
 
 \begin{classdesc}{UserList}{\optional{list}}
-Return a class instance that simulates a list.  The instance's
+Class that simulates a list.  The instance's
 contents are kept in a regular list, which is accessible via the
 \member{data} attribute of \class{UserList} instances.  The instance's
 contents are initially set to a copy of \var{list}, defaulting to the
@@ -104,7 +104,7 @@
 The \module{UserString} module defines the following classes:
 
 \begin{classdesc}{UserString}{\optional{sequence}}
-Return a class instance that simulates a string or a Unicode string
+Class that simulates a string or a Unicode string
 object.  The instance's content is kept in a regular string or Unicode
 string object, which is accessible via the \member{data} attribute of
 \class{UserString} instances.  The instance's contents are initially
diff --git a/Doc/lib/libxmllib.tex b/Doc/lib/libxmllib.tex
index f60cecf..e80201b 100644
--- a/Doc/lib/libxmllib.tex
+++ b/Doc/lib/libxmllib.tex
@@ -274,7 +274,7 @@
 the tag \code{<html:a href='http://frob.com'>} inside the above
 mentioned element is treated as if the tag name were
 \code{'http://www.w3.org/TR/REC-html40 a'} and the attribute name as
-if it were \code{'http://www.w3.org/TR/REC-html40 src'}.
+if it were \code{'http://www.w3.org/TR/REC-html40 href'}.
 
 An older draft of the XML Namespaces proposal is also recognized, but
 triggers a warning.
