diff --git a/Doc/lib/libcopy.tex b/Doc/lib/libcopy.tex
index 8f5e03c..d07121e 100644
--- a/Doc/lib/libcopy.tex
+++ b/Doc/lib/libcopy.tex
@@ -75,7 +75,7 @@
 \code{__getinitargs__()}, \code{__getstate__()} and
 \code{__setstate__()}.  See the description of module \code{pickle}
 for information on these methods.
-\stmodindex{pickle}
+\refstmodindex{pickle}
 \renewcommand{\indexsubitem}{(copy protocol)}
 \ttindex{__getinitargs__}
 \ttindex{__getstate__}
diff --git a/Doc/lib/libhtmllib.tex b/Doc/lib/libhtmllib.tex
index edae551..8405ad1 100644
--- a/Doc/lib/libhtmllib.tex
+++ b/Doc/lib/libhtmllib.tex
@@ -19,10 +19,10 @@
 provided in the \code{formatter} module; refer to the documentation
 for that module for information on the formatter interface.
 \index{SGML}
-\stmodindex{sgmllib}
+\refstmodindex{sgmllib}
 \ttindex{SGMLParser}
 \index{formatter}
-\stmodindex{formatter}
+\refstmodindex{formatter}
 
 The following is a summary of the interface defined by
 \code{sgmllib.SGMLParser}:
diff --git a/Doc/lib/libhttplib.tex b/Doc/lib/libhttplib.tex
index ca5c673..5b2cf85 100644
--- a/Doc/lib/libhttplib.tex
+++ b/Doc/lib/libhttplib.tex
@@ -8,7 +8,7 @@
 This module defines a class which implements the client side of the
 HTTP protocol.  It is normally not used directly --- the module
 \code{urllib} uses it to handle URLs that use HTTP.
-\stmodindex{urllib}
+\refstmodindex{urllib}
 
 The module defines one class, \code{HTTP}.  An \code{HTTP} instance
 represents one transaction with an HTTP server.  It should be
@@ -98,7 +98,7 @@
 to the reply code; and \var{headers} is an instance of the class
 \code{mimetools.Message} containing the headers received from the server.
 See the description of the \code{mimetools} module.
-\stmodindex{mimetools}
+\refstmodindex{mimetools}
 \end{funcdesc}
 
 \begin{funcdesc}{getfile}{}
diff --git a/Doc/lib/libmarshal.tex b/Doc/lib/libmarshal.tex
index 16472db..fa86c03 100644
--- a/Doc/lib/libmarshal.tex
+++ b/Doc/lib/libmarshal.tex
@@ -20,8 +20,8 @@
 \code{pickle} and \code{shelve}.  The \code{marshal} module exists
 mainly to support reading and writing the ``pseudo-compiled'' code for
 Python modules of \samp{.pyc} files.
-\stmodindex{pickle}
-\stmodindex{shelve}
+\refstmodindex{pickle}
+\refstmodindex{shelve}
 \obindex{code}
 
 Not all Python object types are supported; in general, only objects
diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex
index 110a074..508e50d 100644
--- a/Doc/lib/libpickle.tex
+++ b/Doc/lib/libpickle.tex
@@ -25,7 +25,7 @@
 to send them across a network or store them in a database.  The module
 \code{shelve} provides a simple interface to pickle and unpickle
 objects on ``dbm''-style database files.
-\stmodindex{shelve}
+\refstmodindex{shelve}
 
 \strong{Note:} The \code{pickle} module is rather slow.  A
 reimplementation of the same algorithm in C, which is up to 1000 times
@@ -36,7 +36,7 @@
 
 Unlike the built-in module \code{marshal}, \code{pickle} handles the
 following correctly:
-\stmodindex{marshal}
+\refbimodindex{marshal}
 
 \begin{itemize}
 
@@ -74,7 +74,7 @@
 long as \code{marshal} continues to be used for reading and writing
 code objects), and at least this avoids the possibility of smuggling
 Trojan horses into a program.
-\stmodindex{marshal}
+\refbimodindex{marshal}
 
 For the benefit of persistency modules written using \code{pickle}, it
 supports the notion of a reference to an object outside the pickled
diff --git a/Doc/lib/libppath.tex b/Doc/lib/libppath.tex
index 6bd8a20..01f05a1 100644
--- a/Doc/lib/libppath.tex
+++ b/Doc/lib/libppath.tex
@@ -6,7 +6,7 @@
 
 \strong{Do not import this module directly.}  Instead, import the
 module \code{os} and use \code{os.path}.
-\stmodindex{os}
+\refstmodindex{os}
 
 \renewcommand{\indexsubitem}{(in module posixpath)}
 
@@ -38,6 +38,7 @@
 an initial \samp{\~\var{user}} is looked up in the password directory through
 the built-in module \code{pwd}.  If the expansion fails, or if the
 path does not begin with a tilde, the path is returned unchanged.
+\refbimodindex{pwd}
 \end{funcdesc}
 
 \begin{funcdesc}{expandvars}{p}
@@ -54,14 +55,14 @@
 
 \begin{funcdesc}{isfile}{p}
 Return true if \var{p} is an existing regular file.  This follows
-symbolic links, so both \code{islink()} and \code{isfile()} can be true for the same
-path.
+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 \code{islink()} and \code{isdir()} can be true for the same
-path.
+symbolic links, so both \code{islink()} and \code{isdir()} can be true
+for the same path.
 \end{funcdesc}
 
 \begin{funcdesc}{islink}{p}
@@ -97,7 +98,7 @@
 \begin{funcdesc}{samefile}{p\, q}
 Return true if both pathname arguments refer to the same file or directory
 (as indicated by device number and i-node number).
-Raise an exception if a stat call on either pathname fails.
+Raise an exception if a \code{stat()} call on either pathname fails.
 \end{funcdesc}
 
 \begin{funcdesc}{split}{p}
diff --git a/Doc/lib/libsys.tex b/Doc/lib/libsys.tex
index 46c0186..8d36dc0 100644
--- a/Doc/lib/libsys.tex
+++ b/Doc/lib/libsys.tex
@@ -83,7 +83,7 @@
 (e.g. the \code{config.h} header file) are installed in the directory
 \code{sys.exec_prefix+"/lib/python\emph{VER}/config"}, and shared library
 modules are installed in
-\code{sys.exec_prefix+"/lib/python\emph{VER}/sharedmodules"},
+\code{sys.exec_prefix+"/lib/python\emph{VER}/lib-dynload"},
 where \emph{VER} is equal to \code{sys.version[:3]}.
 \end{datadesc}
 
@@ -115,7 +115,7 @@
 (Typical use is \code{import pdb; pdb.pm()} to enter the post-mortem
 debugger; see the chapter ``The Python Debugger'' for more
 information.)
-\stmodindex{pdb}
+\refstmodindex{pdb}
 
 The meaning of the variables is the same
 as that of the return values from \code{sys.exc_info()} above.
@@ -139,7 +139,7 @@
 interpreter is invoked interactively or if the script is read from 
 standard input), \code{sys.path[0]} is the empty string, which directs 
 Python to search modules in the current directory first.  Notice that 
-the script directory is inserted {\em before} the entries inserted as 
+the script directory is inserted \emph{before} the entries inserted as 
 a result of \code{\$PYTHONPATH}.  
 \end{datadesc}
 
@@ -215,11 +215,11 @@
   own prompts and (almost all of) its error messages go to
   \code{sys.stderr}.  \code{sys.stdout} and \code{sys.stderr} needn't
   be built-in file objects: any object is acceptable as long as it has
-  a \code{write} method that takes a string argument.  (Changing these
+  a \code{write()} method that takes a string argument.  (Changing these
   objects doesn't affect the standard I/O streams of processes
   executed by \code{popen()}, \code{system()} or the \code{exec*()}
   family of functions in the \code{os} module.)
-\stmodindex{os}
+\refstmodindex{os}
 \end{datadesc}
 
 \begin{datadesc}{tracebacklimit}
