- add several links into the library reference
- update a couple of URLs to point to more recent portions of
  python.org
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex
index a730860..50ba5e9 100644
--- a/Doc/tut/tut.tex
+++ b/Doc/tut/tut.tex
@@ -329,19 +329,19 @@
 possible to directly write Unicode string literals in the selected
 encoding.  The list of possible encodings can be found in the
 \citetitle[../lib/lib.html]{Python Library Reference}, in the section
-on \module{codecs}.
+on \ulink{\module{codecs}}{../lib/module-codecs.html}.
 
-If your editor supports saving files as \code{UTF-8} with an UTF-8
-signature (aka BOM -- Byte Order Mark), you can use that instead of an
+If your editor supports saving files as \code{UTF-8} with a UTF-8
+\emph{byte order mark} (aka BOM), you can use that instead of an
 encoding declaration. IDLE supports this capability if
 \code{Options/General/Default Source Encoding/UTF-8} is set. Notice
 that this signature is not understood in older Python releases (2.2
 and earlier), and also not understood by the operating system for
-\code{\#!} files. 
+\code{\#!} files.
 
 By using UTF-8 (either through the signature or an encoding
 declaration), characters of most languages in the world can be used
-simultaneously in string literals and comments. Using non-ASCII
+simultaneously in string literals and comments. Using non-\ASCII
 characters in identifiers is not supported. To display all these
 characters properly, your editor must recognize that the file is
 UTF-8, and it must use a font that supports all the characters in the
@@ -879,7 +879,7 @@
 \emph{Latin-1}, \emph{ASCII}, \emph{UTF-8}, and \emph{UTF-16}.
 The latter two are variable-length encodings that store each Unicode
 character in one or more bytes. The default encoding is
-normally set to ASCII, which passes through characters in the range
+normally set to \ASCII, which passes through characters in the range
 0 to 127 and rejects any other characters with an error.
 When a Unicode string is printed, written to a file, or converted
 with \function{str()}, conversion takes place using this default encoding.
@@ -2393,7 +2393,7 @@
 script not have the same name as a standard module, or Python will
 attempt to load the script as a module when that module is imported.
 This will generally be an error.  See section~\ref{standardModules},
-``Standard Modules.'' for more information.
+``Standard Modules,'' for more information.
 
 
 \subsection{``Compiled'' Python files}
@@ -2459,9 +2459,10 @@
 engineer.
 
 \item
-The module \module{compileall}\refstmodindex{compileall} can create
-\file{.pyc} files (or \file{.pyo} files when \programopt{-O} is used) for
-all modules in a directory.
+The module \ulink{\module{compileall}}{../lib/module-compileall.html}%
+{} \refstmodindex{compileall} can create \file{.pyc} files (or
+\file{.pyo} files when \programopt{-O} is used) for all modules in a
+directory.
 
 \end{itemize}
 
@@ -2478,7 +2479,8 @@
 also dependson the underlying platform  For example,
 the \module{amoeba} module is only provided on systems that somehow
 support Amoeba primitives.  One particular module deserves some
-attention: \module{sys}\refstmodindex{sys}, which is built into every
+attention: \ulink{\module{sys}}{../lib/module-sys.html}%
+\refstmodindex{sys}, which is built into every 
 Python interpreter.  The variables \code{sys.ps1} and
 \code{sys.ps2} define the strings used as primary and secondary
 prompts:
@@ -2761,14 +2763,15 @@
 \subsection{Intra-package References}
 
 The submodules often need to refer to each other.  For example, the
-\module{surround} module might use the \module{echo} module.  In fact, such references
-are so common that the \code{import} statement first looks in the
+\module{surround} module might use the \module{echo} module.  In fact,
+such references
+are so common that the \keyword{import} statement first looks in the
 containing package before looking in the standard module search path.
 Thus, the surround module can simply use \code{import echo} or
 \code{from echo import echofilter}.  If the imported module is not
 found in the current package (the package of which the current module
-is a submodule), the \code{import} statement looks for a top-level module
-with the given name.
+is a submodule), the \keyword{import} statement looks for a top-level
+module with the given name.
 
 When packages are structured into subpackages (as with the
 \module{Sound} package in the example), there's no shortcut to refer
@@ -2778,15 +2781,6 @@
 in the \module{Sound.Effects} package, it can use \code{from
 Sound.Effects import echo}.
 
-%(One could design a notation to refer to parent packages, similar to
-%the use of ".." to refer to the parent directory in \UNIX{} and Windows
-%filesystems.  In fact, the \module{ni} module, which was the
-%ancestor of this package system, supported this using \code{__} for
-%the package containing the current module,
-%\code{__.__} for the parent package, and so on.  This feature was dropped
-%because of its awkwardness; since most packages will have a relative
-%shallow substructure, this is no big loss.)
-
 \subsection{Packages in Multiple Directories}
 
 Packages support one more special attribute, \member{__path__}.  This
@@ -3123,7 +3117,8 @@
 
 Rather than have users be constantly writing and debugging code to
 save complicated data types, Python provides a standard module called
-\module{pickle}.  This is an amazing module that can take almost
+\ulink{\module{pickle}}{../lib/module-pickle.html}.  This is an
+amazing module that can take almost
 any Python object (even some forms of Python code!), and convert it to
 a string representation; this process is called \dfn{pickling}.  
 Reconstructing the object from the string representation is called
@@ -3148,12 +3143,15 @@
 
 (There are other variants of this, used when pickling many objects or
 when you don't want to write the pickled data to a file; consult the
-complete documentation for \module{pickle} in the Library Reference.)
+complete documentation for
+\ulink{\module{pickle}}{../lib/module-pickle.html} in the
+\citetitle[../lib/]{Python Library Reference}.)
 
-\module{pickle} is the standard way to make Python objects which can
-be stored and reused by other programs or by a future invocation of
-the same program; the technical term for this is a
-\dfn{persistent} object.  Because \module{pickle} is so widely used,
+\ulink{\module{pickle}}{../lib/module-pickle.html} is the standard way
+to make Python objects which can be stored and reused by other
+programs or by a future invocation of the same program; the technical
+term for this is a \dfn{persistent} object.  Because
+\ulink{\module{pickle}}{../lib/module-pickle.html} is so widely used,
 many authors who write Python extensions take care to ensure that new
 data types such as matrices can be properly pickled and unpickled.
 
@@ -4356,8 +4354,8 @@
 informal site is \url{http://starship.python.net/}, which contains a
 bunch of Python-related personal home pages; many people have
 downloadable software there. Many more user-created Python modules
-can be found in a third-party repository at
-\url{http://www.vex.net/parnassus}.
+can be found in the \ulink{Python Package
+Index}{http://www.python.org/pypi} (PyPI).
 
 For Python-related questions and problem reports, you can post to the
 newsgroup \newsgroup{comp.lang.python}, or send them to the mailing
@@ -4370,8 +4368,7 @@
 % days = 116.9 msgs / day and steadily increasing.
 asking (and answering) questions, suggesting new features, and
 announcing new modules.  Before posting, be sure to check the list of
-Frequently Asked Questions (also called the FAQ), at
-\url{http://www.python.org/doc/FAQ.html}, or look for it in the
+\ulink{Frequently Asked Questions}{http://www.python.org/doc/faq/} (also called the FAQ), or look for it in the
 \file{Misc/} directory of the Python source distribution.  Mailing
 list archives are available at \url{http://www.python.org/pipermail/}.
 The FAQ answers many of the questions that come up again and again,
@@ -4498,7 +4495,8 @@
 is done since the startup file is executed in the same namespace as
 the interactive commands, and removing the names avoids creating side
 effects in the interactive environments.  You may find it convenient
-to keep some of the imported modules, such as \module{os}, which turn
+to keep some of the imported modules, such as
+\ulink{\module{os}}{../lib/module-os.html}, which turn
 out to be needed in most sessions with the interpreter.
 
 \begin{verbatim}