diff --git a/Doc/lib/libselect.tex b/Doc/lib/libselect.tex
index 5a800f5..ba234ab 100644
--- a/Doc/lib/libselect.tex
+++ b/Doc/lib/libselect.tex
@@ -2,22 +2,21 @@
 \label{module-select}
 \bimodindex{select}
 
-This module provides access to the function \code{select} available in
-most \UNIX{} versions.  It defines the following:
+This module provides access to the function \cfunction{select()}
+available in most \UNIX{} versions.  It defines the following:
 
-\setindexsubitem{(in module select)}
 \begin{excdesc}{error}
 The exception raised when an error occurs.  The accompanying value is
-a pair containing the numeric error code from \code{errno} and the
-corresponding string, as would be printed by the C function
-\code{perror()}.
+a pair containing the numeric error code from \cdata{errno} and the
+corresponding string, as would be printed by the \C{} function
+\cfunction{perror()}.
 \end{excdesc}
 
 \begin{funcdesc}{select}{iwtd, owtd, ewtd\optional{, timeout}}
-This is a straightforward interface to the \UNIX{} \code{select()}
+This is a straightforward interface to the \UNIX{} \cfunction{select()}
 system call.  The first three arguments are lists of `waitable
 objects': either integers representing \UNIX{} file descriptors or
-objects with a parameterless method named \code{fileno()} returning
+objects with a parameterless method named \method{fileno()} returning
 such an integer.  The three lists of waitable objects are for input,
 output and `exceptional conditions', respectively.  Empty lists are
 allowed.  The optional \var{timeout} argument specifies a time-out as a
@@ -31,13 +30,17 @@
 returned.
 
 Amongst the acceptable object types in the lists are Python file
-objects (e.g. \code{sys.stdin}, or objects returned by \code{open()}
-or \code{posix.popen()}), socket objects returned by
-\code{socket.socket()}, and the module \code{stdwin} which happens to
-define a function \code{fileno()} for just this purpose.  You may
+objects (e.g. \code{sys.stdin}, or objects returned by
+\function{open()} or \function{os.popen()}), socket objects
+returned by \function{socket.socket()},%
+\withsubitem{(in module socket)}{\ttindex{socket()}}
+\withsubitem{(in module posix)}{\ttindex{popen()}}
+\withsubitem{(in module os)}{\ttindex{popen()}}
+and the module \module{stdwin}\refbimodindex{stdwin} which happens to
+define a function \function{fileno()}%
+\withsubitem{(in module stdwin)}{\ttindex{fileno()}}
+for just this purpose.  You may
 also define a \dfn{wrapper} class yourself, as long as it has an
-appropriate \code{fileno()} method (that really returns a \UNIX{} file
-descriptor, not just a random integer).
+appropriate \method{fileno()} method (that really returns a \UNIX{}
+file descriptor, not just a random integer).
 \end{funcdesc}
-\ttindex{socket}
-\ttindex{stdwin}
diff --git a/Doc/libselect.tex b/Doc/libselect.tex
index 5a800f5..ba234ab 100644
--- a/Doc/libselect.tex
+++ b/Doc/libselect.tex
@@ -2,22 +2,21 @@
 \label{module-select}
 \bimodindex{select}
 
-This module provides access to the function \code{select} available in
-most \UNIX{} versions.  It defines the following:
+This module provides access to the function \cfunction{select()}
+available in most \UNIX{} versions.  It defines the following:
 
-\setindexsubitem{(in module select)}
 \begin{excdesc}{error}
 The exception raised when an error occurs.  The accompanying value is
-a pair containing the numeric error code from \code{errno} and the
-corresponding string, as would be printed by the C function
-\code{perror()}.
+a pair containing the numeric error code from \cdata{errno} and the
+corresponding string, as would be printed by the \C{} function
+\cfunction{perror()}.
 \end{excdesc}
 
 \begin{funcdesc}{select}{iwtd, owtd, ewtd\optional{, timeout}}
-This is a straightforward interface to the \UNIX{} \code{select()}
+This is a straightforward interface to the \UNIX{} \cfunction{select()}
 system call.  The first three arguments are lists of `waitable
 objects': either integers representing \UNIX{} file descriptors or
-objects with a parameterless method named \code{fileno()} returning
+objects with a parameterless method named \method{fileno()} returning
 such an integer.  The three lists of waitable objects are for input,
 output and `exceptional conditions', respectively.  Empty lists are
 allowed.  The optional \var{timeout} argument specifies a time-out as a
@@ -31,13 +30,17 @@
 returned.
 
 Amongst the acceptable object types in the lists are Python file
-objects (e.g. \code{sys.stdin}, or objects returned by \code{open()}
-or \code{posix.popen()}), socket objects returned by
-\code{socket.socket()}, and the module \code{stdwin} which happens to
-define a function \code{fileno()} for just this purpose.  You may
+objects (e.g. \code{sys.stdin}, or objects returned by
+\function{open()} or \function{os.popen()}), socket objects
+returned by \function{socket.socket()},%
+\withsubitem{(in module socket)}{\ttindex{socket()}}
+\withsubitem{(in module posix)}{\ttindex{popen()}}
+\withsubitem{(in module os)}{\ttindex{popen()}}
+and the module \module{stdwin}\refbimodindex{stdwin} which happens to
+define a function \function{fileno()}%
+\withsubitem{(in module stdwin)}{\ttindex{fileno()}}
+for just this purpose.  You may
 also define a \dfn{wrapper} class yourself, as long as it has an
-appropriate \code{fileno()} method (that really returns a \UNIX{} file
-descriptor, not just a random integer).
+appropriate \method{fileno()} method (that really returns a \UNIX{}
+file descriptor, not just a random integer).
 \end{funcdesc}
-\ttindex{socket}
-\ttindex{stdwin}
