diff --git a/Doc/Makefile b/Doc/Makefile
index 1d68234..867148f 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -112,7 +112,7 @@
     libuser.tex libanydbm.tex librandom.tex libsite.tex libwhichdb.tex \
     libbase64.tex libfnmatch.tex libquopri.tex libzlib.tex libsocksvr.tex \
     libmailbox.tex libcommands.tex libcmath.tex libni.tex libgzip.tex \
-    libpprint.tex
+    libpprint.tex libcode.tex
 
 # Library document
 lib.dvi: $(LIBFILES)
diff --git a/Doc/lib.tex b/Doc/lib.tex
index 391c241..2c7d6d0 100644
--- a/Doc/lib.tex
+++ b/Doc/lib.tex
@@ -88,6 +88,7 @@
 \input{libni}
 \input{libparser}
 \input{libpprint}
+\input{libcode}
 \input{libsite}
 \input{libbltin}		% really __builtin__
 \input{libmain}			% really __main__
diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 391c241..2c7d6d0 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -88,6 +88,7 @@
 \input{libni}
 \input{libparser}
 \input{libpprint}
+\input{libcode}
 \input{libsite}
 \input{libbltin}		% really __builtin__
 \input{libmain}			% really __main__
diff --git a/Doc/lib/libcode.tex b/Doc/lib/libcode.tex
new file mode 100644
index 0000000..5fa9717
--- /dev/null
+++ b/Doc/lib/libcode.tex
@@ -0,0 +1,35 @@
+% Template for a library manual section.
+
+\section{Standard module \sectcode{code}}
+\label{module-code}
+\stmodindex{code}
+
+The \code{code} module defines operations pertaining to Python code
+objects.
+
+The \code{code} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module code)}
+
+\begin{funcdesc}{compile_command}{source\,
+\optional{filename\optional{\, symbol}}}
+This function is useful for programs that want to emulate Python's
+interpreter main loop (a.k.a. the read-eval-print loop).  The tricky
+part is to determine when the user has entered an incomplete command
+that can be completed by entering more text (as opposed to a complete
+command or a syntax error).  This function \emph{almost} always makes
+the same decision as the real interpreter main loop.
+
+Arguments: \var{source} is the source string; \var{filename} is the
+optional filename from which source was read, defaulting to
+\code{"<input>"}; and \var{symbol} is the optional grammar start
+symbol, which should be either \code{"single"} (the default) or
+\code{"eval"}.
+
+Return a code object (the same as \code{compile(\var{source},
+\var{filename}, \var{symbol})}) if the command is complete and valid;
+return \code{None} if the command is incomplete; raise
+\code{SyntaxError} if the command is a syntax error.
+
+
+\end{funcdesc}
diff --git a/Doc/lib/libundoc.tex b/Doc/lib/libundoc.tex
index 08e62fb..55f30a9 100644
--- a/Doc/lib/libundoc.tex
+++ b/Doc/lib/libundoc.tex
@@ -105,8 +105,6 @@
 
 py_compile.py -- "compile" a .py file to a .pyc file
 
-codehack.py -- extract a function name from a code object
-
 dis.py -- Disassembler for Python bytecode objects
 
 repr.py -- Redo the `...` (representation) but with limits on most
@@ -183,6 +181,10 @@
 tb.py -- Print tracebacks, with a dump of local variables (use
 pdb.pm() or traceback.py instead)
 
+codehack.py -- extract function name or line number from a function
+code object (these are now accessible as attributes: co.co_name,
+func.func_name, co.co_firstlineno)
+
 
 \section{Extension modules}
 
diff --git a/Doc/libcode.tex b/Doc/libcode.tex
new file mode 100644
index 0000000..5fa9717
--- /dev/null
+++ b/Doc/libcode.tex
@@ -0,0 +1,35 @@
+% Template for a library manual section.
+
+\section{Standard module \sectcode{code}}
+\label{module-code}
+\stmodindex{code}
+
+The \code{code} module defines operations pertaining to Python code
+objects.
+
+The \code{code} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module code)}
+
+\begin{funcdesc}{compile_command}{source\,
+\optional{filename\optional{\, symbol}}}
+This function is useful for programs that want to emulate Python's
+interpreter main loop (a.k.a. the read-eval-print loop).  The tricky
+part is to determine when the user has entered an incomplete command
+that can be completed by entering more text (as opposed to a complete
+command or a syntax error).  This function \emph{almost} always makes
+the same decision as the real interpreter main loop.
+
+Arguments: \var{source} is the source string; \var{filename} is the
+optional filename from which source was read, defaulting to
+\code{"<input>"}; and \var{symbol} is the optional grammar start
+symbol, which should be either \code{"single"} (the default) or
+\code{"eval"}.
+
+Return a code object (the same as \code{compile(\var{source},
+\var{filename}, \var{symbol})}) if the command is complete and valid;
+return \code{None} if the command is incomplete; raise
+\code{SyntaxError} if the command is a syntax error.
+
+
+\end{funcdesc}
diff --git a/Doc/libundoc.tex b/Doc/libundoc.tex
index 08e62fb..55f30a9 100644
--- a/Doc/libundoc.tex
+++ b/Doc/libundoc.tex
@@ -105,8 +105,6 @@
 
 py_compile.py -- "compile" a .py file to a .pyc file
 
-codehack.py -- extract a function name from a code object
-
 dis.py -- Disassembler for Python bytecode objects
 
 repr.py -- Redo the `...` (representation) but with limits on most
@@ -183,6 +181,10 @@
 tb.py -- Print tracebacks, with a dump of local variables (use
 pdb.pm() or traceback.py instead)
 
+codehack.py -- extract function name or line number from a function
+code object (these are now accessible as attributes: co.co_name,
+func.func_name, co.co_firstlineno)
+
 
 \section{Extension modules}
 
