diff --git a/Doc/libglob.tex b/Doc/libglob.tex
index 58193c9..dbc6b6a 100644
--- a/Doc/libglob.tex
+++ b/Doc/libglob.tex
@@ -3,25 +3,25 @@
 \stmodindex{glob}
 \setindexsubitem{(in module glob)}
 
-The \code{glob} module finds all the pathnames matching a specified
+The \module{glob} module finds all the pathnames matching a specified
 pattern according to the rules used by the \UNIX{} shell.  No tilde
 expansion is done, but \code{*}, \code{?}, and character ranges
 expressed with \code{[]} will be correctly matched.  This is done by
-using the \code{os.listdir()} and \code{fnmatch.fnmatch()} functions
-in concert, and not by actually invoking a subshell.  (For tilde and
-shell variable expansion, use \code{os.path.expanduser(}) and
-\code{os.path.expandvars()}.)
+using the \function{os.listdir()} and \function{fnmatch.fnmatch()}
+functions in concert, and not by actually invoking a subshell.  (For
+tilde and shell variable expansion, use \function{os.path.expanduser()}
+and \function{os.path.expandvars()}.)
 
 \begin{funcdesc}{glob}{pathname}
 Returns a possibly-empty list of path names that match \var{pathname},
 which must be a string containing a path specification.
 \var{pathname} can be either absolute (like
-\file{/usr/src/Python1.4/Makefile}) or relative (like
+\file{/usr/src/Python\version/Makefile}) or relative (like
 \file{../../Tools/*.gif}), and can contain shell-style wildcards.
 \end{funcdesc}
 
 For example, consider a directory containing only the following files:
-\file{1.gif}, \file{2.txt}, and \file{card.gif}.  \code{glob.glob()}
+\file{1.gif}, \file{2.txt}, and \file{card.gif}.  \function{glob.glob()}
 will produce the following results.  Notice how any leading components
 of the path are preserved.
 
