diff --git a/Doc/lib/libfcntl.tex b/Doc/lib/libfcntl.tex
index e3a4ae0..3070f63 100644
--- a/Doc/lib/libfcntl.tex
+++ b/Doc/lib/libfcntl.tex
@@ -6,54 +6,55 @@
 \indexii{UNIX@\UNIX{}}{I/O control}
 
 This module performs file control and I/O control on file descriptors.
-It is an interface to the \dfn{fcntl()} and \dfn{ioctl()} \UNIX{} routines.
-File descriptors can be obtained with the \dfn{fileno()} method of a
-file or socket object.
+It is an interface to the \cfunction{fcntl()} and \cfunction{ioctl()}
+\UNIX{} routines.  File descriptors can be obtained with the
+\method{fileno()} method of a file or socket object.
 
 The module defines the following functions:
 
-\setindexsubitem{(in module struct)}
 
-\begin{funcdesc}{fcntl}{fd\, op\optional{\, arg}}
-  Perform the requested operation on file descriptor \code{\var{fd}}.
-  The operation is defined by \code{\var{op}} and is operating system
+\begin{funcdesc}{fcntl}{fd, op\optional{, arg}}
+  Perform the requested operation on file descriptor \var{fd}.
+  The operation is defined by \var{op} and is operating system
   dependent.  Typically these codes can be retrieved from the library
-  module \code{FCNTL}. The argument \code{\var{arg}} is optional, and
+  module \module{FCNTL}. The argument \var{arg} is optional, and
   defaults to the integer value \code{0}.  When
   it is present, it can either be an integer value, or a string.  With
   the argument missing or an integer value, the return value of this
-  function is the integer return value of the real \code{fcntl()}
+  function is the integer return value of the \C{} \cfunction{fcntl()}
   call.  When the argument is a string it represents a binary
-  structure, e.g.\ created by \code{struct.pack()}. The binary data is
-  copied to a buffer whose address is passed to the real \code{fcntl()}
-  call.  The return value after a successful call is the contents of
-  the buffer, converted to a string object.  In case the
-  \code{fcntl()} fails, an \code{IOError} will be raised.
+  structure, e.g.\ created by \function{struct.pack()}. The binary
+  data is copied to a buffer whose address is passed to the \C{}
+  \cfunction{fcntl()} call.  The return value after a successful call
+  is the contents of the buffer, converted to a string object.  In
+  case the \cfunction{fcntl()} fails, an \exception{IOError} is
+  raised.
 \end{funcdesc}
 
-\begin{funcdesc}{ioctl}{fd\, op\, arg}
-  This function is identical to the \code{fcntl()} function, except
+\begin{funcdesc}{ioctl}{fd, op, arg}
+  This function is identical to the \function{fcntl()} function, except
   that the operations are typically defined in the library module
-  \code{IOCTL}.
+  \module{IOCTL}.
 \end{funcdesc}
 
-\begin{funcdesc}{flock}{fd\, op}
+\begin{funcdesc}{flock}{fd, op}
 Perform the lock operation \var{op} on file descriptor \var{fd}.
 See the \UNIX{} manual for details.  (On some systems, this function is
-emulated using \code{fcntl()}.)
+emulated using \function{fcntl()}.)
 \end{funcdesc}
 
-\begin{funcdesc}{lockf}{fd\, code\, \optional{len\, \optional{start\, \optional{whence}}}}
-This is a wrapper around the \code{F_SETLK} and \code{F_SETLKW}
-\code{fcntl()} calls.  See the \UNIX{} manual for details.
+\begin{funcdesc}{lockf}{fd, code, \optional{len, \optional{start, \optional{whence}}}}
+This is a wrapper around the \constant{FCNTL.F_SETLK} and
+\constant{FCNTL.F_SETLKW} \function{fcntl()} calls.  See the \UNIX{}
+manual for details.
 \end{funcdesc}
 
-If the library modules \code{FCNTL} or \code{IOCTL} are missing, you
-can find the opcodes in the C include files \file{sys/fcntl.h} and
-\file{sys/ioctl.h}. You can create the modules yourself with the h2py
-script, found in the \file{Tools/scripts} directory.
-\refstmodindex{FCNTL}
-\refstmodindex{IOCTL}
+If the library modules \module{FCNTL}\refstmodindex{FCNTL} or
+\module{IOCTL}\refstmodindex{IOCTL} are missing, you can find the
+opcodes in the \C{} include files \code{<sys/fcntl.h>} and
+\code{<sys/ioctl.h>}.  You can create the modules yourself with the
+\program{h2py} script, found in the \file{Tools/scripts/} directory.
+
 
 Examples (all on a SVR4 compliant system):
 
@@ -66,9 +67,9 @@
 lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0)
 rv = fcntl(file.fileno(), FCNTL.F_SETLKW, lockdata)
 \end{verbatim}
-%
+
 Note that in the first example the return value variable \code{rv} will
 hold an integer value; in the second example it will hold a string
 value.  The structure lay-out for the \var{lockadata} variable is
-system dependent -- therefore using the \code{flock()} call may be
+system dependent --- therefore using the \function{flock()} call may be
 better.
diff --git a/Doc/libfcntl.tex b/Doc/libfcntl.tex
index e3a4ae0..3070f63 100644
--- a/Doc/libfcntl.tex
+++ b/Doc/libfcntl.tex
@@ -6,54 +6,55 @@
 \indexii{UNIX@\UNIX{}}{I/O control}
 
 This module performs file control and I/O control on file descriptors.
-It is an interface to the \dfn{fcntl()} and \dfn{ioctl()} \UNIX{} routines.
-File descriptors can be obtained with the \dfn{fileno()} method of a
-file or socket object.
+It is an interface to the \cfunction{fcntl()} and \cfunction{ioctl()}
+\UNIX{} routines.  File descriptors can be obtained with the
+\method{fileno()} method of a file or socket object.
 
 The module defines the following functions:
 
-\setindexsubitem{(in module struct)}
 
-\begin{funcdesc}{fcntl}{fd\, op\optional{\, arg}}
-  Perform the requested operation on file descriptor \code{\var{fd}}.
-  The operation is defined by \code{\var{op}} and is operating system
+\begin{funcdesc}{fcntl}{fd, op\optional{, arg}}
+  Perform the requested operation on file descriptor \var{fd}.
+  The operation is defined by \var{op} and is operating system
   dependent.  Typically these codes can be retrieved from the library
-  module \code{FCNTL}. The argument \code{\var{arg}} is optional, and
+  module \module{FCNTL}. The argument \var{arg} is optional, and
   defaults to the integer value \code{0}.  When
   it is present, it can either be an integer value, or a string.  With
   the argument missing or an integer value, the return value of this
-  function is the integer return value of the real \code{fcntl()}
+  function is the integer return value of the \C{} \cfunction{fcntl()}
   call.  When the argument is a string it represents a binary
-  structure, e.g.\ created by \code{struct.pack()}. The binary data is
-  copied to a buffer whose address is passed to the real \code{fcntl()}
-  call.  The return value after a successful call is the contents of
-  the buffer, converted to a string object.  In case the
-  \code{fcntl()} fails, an \code{IOError} will be raised.
+  structure, e.g.\ created by \function{struct.pack()}. The binary
+  data is copied to a buffer whose address is passed to the \C{}
+  \cfunction{fcntl()} call.  The return value after a successful call
+  is the contents of the buffer, converted to a string object.  In
+  case the \cfunction{fcntl()} fails, an \exception{IOError} is
+  raised.
 \end{funcdesc}
 
-\begin{funcdesc}{ioctl}{fd\, op\, arg}
-  This function is identical to the \code{fcntl()} function, except
+\begin{funcdesc}{ioctl}{fd, op, arg}
+  This function is identical to the \function{fcntl()} function, except
   that the operations are typically defined in the library module
-  \code{IOCTL}.
+  \module{IOCTL}.
 \end{funcdesc}
 
-\begin{funcdesc}{flock}{fd\, op}
+\begin{funcdesc}{flock}{fd, op}
 Perform the lock operation \var{op} on file descriptor \var{fd}.
 See the \UNIX{} manual for details.  (On some systems, this function is
-emulated using \code{fcntl()}.)
+emulated using \function{fcntl()}.)
 \end{funcdesc}
 
-\begin{funcdesc}{lockf}{fd\, code\, \optional{len\, \optional{start\, \optional{whence}}}}
-This is a wrapper around the \code{F_SETLK} and \code{F_SETLKW}
-\code{fcntl()} calls.  See the \UNIX{} manual for details.
+\begin{funcdesc}{lockf}{fd, code, \optional{len, \optional{start, \optional{whence}}}}
+This is a wrapper around the \constant{FCNTL.F_SETLK} and
+\constant{FCNTL.F_SETLKW} \function{fcntl()} calls.  See the \UNIX{}
+manual for details.
 \end{funcdesc}
 
-If the library modules \code{FCNTL} or \code{IOCTL} are missing, you
-can find the opcodes in the C include files \file{sys/fcntl.h} and
-\file{sys/ioctl.h}. You can create the modules yourself with the h2py
-script, found in the \file{Tools/scripts} directory.
-\refstmodindex{FCNTL}
-\refstmodindex{IOCTL}
+If the library modules \module{FCNTL}\refstmodindex{FCNTL} or
+\module{IOCTL}\refstmodindex{IOCTL} are missing, you can find the
+opcodes in the \C{} include files \code{<sys/fcntl.h>} and
+\code{<sys/ioctl.h>}.  You can create the modules yourself with the
+\program{h2py} script, found in the \file{Tools/scripts/} directory.
+
 
 Examples (all on a SVR4 compliant system):
 
@@ -66,9 +67,9 @@
 lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0)
 rv = fcntl(file.fileno(), FCNTL.F_SETLKW, lockdata)
 \end{verbatim}
-%
+
 Note that in the first example the return value variable \code{rv} will
 hold an integer value; in the second example it will hold a string
 value.  The structure lay-out for the \var{lockadata} variable is
-system dependent -- therefore using the \code{flock()} call may be
+system dependent --- therefore using the \function{flock()} call may be
 better.
