diff --git a/Doc/libbasehttp.tex b/Doc/libbasehttp.tex
new file mode 100644
index 0000000..b9e2edb
--- /dev/null
+++ b/Doc/libbasehttp.tex
@@ -0,0 +1,216 @@
+\section{Standard Module \sectcode{BaseHTTPServer}}
+\label{module-BaseHTTPServer}
+\stmodindex{BaseHTTPServer}
+
+\indexii{WWW}{server}
+\indexii{HTTP}{protocol}
+\index{URL}
+\index{httpd}
+
+\renewcommand{\indexsubitem}{(in module BaseHTTPServer)}
+
+This module defines two classes for implementing HTTP servers
+(web servers). Usually, this module isn't used directly, but is used
+as a basis for building functioning web servers. See the
+\code{SimpleHTTPServer} and \code{CGIHTTPServer} modules.
+\stmodindex{SimpleHTTPServer}
+\stmodindex{CGIHTTPServer}
+
+The first class, \code{HTTPServer}, is a \code{SocketServer.TCPServer}
+subclass. It creates and listens at the web socket, dispatching the
+requests to a handler. Code to create and run the server looks like
+this:
+
+\bcode\begin{verbatim}
+def run(server_class=BaseHTTPServer.HTTPServer,
+        handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
+  server_address = ('', 8000)
+  httpd = server_class(server_address, handler_class)
+  httpd.serve_forever()
+\end{verbatim}\ecode
+%
+The \code{HTTPServer} class builds on the \code{TCPServer} class by
+storing the server address as instance
+variables named \code{server_name} and \code{server_port}. The
+server is accessible by the handler, typically through the handler's
+\code{server} instance variable.
+
+The module's second class, \code{BaseHTTPRequestHandler}, is used
+to handle the HTTP requests that arrive at the server. By itself,
+it cannot respond to any actual HTTP requests; it must be subclassed
+to handle each request method (e.g. GET or POST).
+\code{BaseHTTPRequestHandler} provides a number of class and instance
+variables, and methods for use by subclasses.
+
+The handler will parse the request and the headers, then call a
+method specific to the request type. The method name is constructed
+from the request. For example, for the request \code{SPAM}, the
+\code{do_SPAM} method will be called with no arguments. All of
+the relevant information is stored into instance variables of the
+handler.
+
+\renewcommand{\indexsubitem}{(BaseHTTPRequestHandler instance variables)}
+
+\code{BaseHTTPRequestHandler} has the following instance variables:
+
+\begin{datadesc}{client_address}
+Contains a tuple of the form (host, port) referring to the client's
+address.
+\end{datadesc}
+
+\begin{datadesc}{command}
+Contains the command (request type). For example, \code{"GET"}.
+\end{datadesc}
+
+\begin{datadesc}{path}
+Contains the request path.
+\end{datadesc}
+
+\begin{datadesc}{request_version}
+Contains the version string from the request. For example,
+\code{"HTTP/1.0"}.
+\end{datadesc}
+
+\begin{datadesc}{headers}
+Holds an instance of the class specified by the \var{MessageClass}
+class variable. This instance parses and manages the headers in
+the HTTP request.
+\end{datadesc}
+
+\begin{datadesc}{rfile}
+Contains an input stream, positioned at the start of the optional
+input data.
+\end{datadesc}
+
+\begin{datadesc}{wfile}
+Contains the output stream for writing a response back to the client.
+Proper adherance to the HTTP protocol must be used when writing
+to this stream.
+\end{datadesc}
+
+\renewcommand{\indexsubitem}{(BaseHTTPRequestHandler class variables)}
+
+\code{BaseHTTPRequestHandler} has the following class variables:
+
+\begin{datadesc}{server_version}
+Specifies the server software version.  You may want to override
+this.
+The format is multiple whitespace-separated strings,
+where each string is of the form name[/version].
+For example, \code{"BaseHTTP/0.2"}.
+\end{datadesc}
+
+\begin{datadesc}{sys_version}
+Contains the Python system version, in a form usable by the
+\code{version_string} method and the \code{server_version} class
+variable. For example, \code{"Python/1.4"}.
+\end{datadesc}
+
+\begin{datadesc}{error_message_format}
+Specifies a format string for building an error response to the
+client. It uses parenthesized, keyed format specifiers, so the
+format operand must be a dictionary. The \var{code} key should
+be an integer, specifing the numeric HTTP error code value.
+\var{message} should be a string containing a (detailed) error
+message of what occurred, and \var{explain} should be an
+explanation of the error code number. Default \var{message}
+and \var{explain} values can found in the \var{responses}
+class variable.
+\end{datadesc}
+
+\begin{datadesc}{protocol_version}
+This specifies the HTTP protocol version used in responses.
+Typically, this should not be overridden. Defaults to
+\code{"HTTP/1.0"}.
+\end{datadesc}
+
+\begin{datadesc}{MessageClass}
+Specifies a Message-like class to parse HTTP headers. Typically,
+this is not overridden, and it defaults to \code{mimetools.Message}.
+\end{datadesc}
+
+\begin{datadesc}{responses}
+This variable contains a mapping of error code integers to two-element
+tuples containing a short and long message. For example,
+\code{\{code : (shortmessage, longmessage)\}}. The
+\var{shortmessage} is usually used as the \var{message} key in an
+error response, and \var{longmessage} as the \var{explain} key
+(see the \code{error_message_format} class variable).
+\end{datadesc}
+
+\renewcommand{\indexsubitem}{(BaseHTTPRequestHandler method)}
+
+A \code{BaseHTTPRequestHandler} instance has the following methods:
+
+\begin{funcdesc}{handle}{}
+Overrides the superclass' \code{handle} method to provide the
+specific handler behavior. This method will parse and dispatch
+the request to the appropriate \code{do_}* method.
+\end{funcdesc}
+
+\begin{funcdesc}{send_error}{code\optional{\, message}}
+Sends and logs a complete error reply to the client. The numeric
+\var{code} specifies the HTTP error code, with \var{message} as
+optional, more specific text. A complete set of headers is sent,
+followed by text composed using the \code{error_message_format}
+class variable.
+\end{funcdesc}
+
+\begin{funcdesc}{send_response}{code\optional{\, message}}
+Sends a response header and logs the accepted request. The HTTP
+response line is sent, followed by \emph{Server} and \emph{Date}
+headers. The values for these two headers are picked up from the
+\code{version_string()} and \code{date_time_string()} methods,
+respectively.
+\end{funcdesc}
+
+\begin{funcdesc}{send_header}{keyword\, value}
+Writes a specific MIME header to the output stream. \var{keyword}
+should specify the header keyword, with \var{value} specifying
+its value.
+\end{funcdesc}
+
+\begin{funcdesc}{end_headers}{}
+Sends a blank line, indicating the end of the MIME headers in
+the response.
+\end{funcdesc}
+
+\begin{funcdesc}{log_request}{\optional{code\optional{\, size}}}
+Logs an accepted (successful) request. \var{code} should specify
+the numeric HTTP code associated with the response. If a size of
+the response is available, then it should be passed as the
+\var{size} parameter.
+\end{funcdesc}
+
+\begin{funcdesc}{log_error}{...}
+Logs an error when a request cannot be fulfilled. By default,
+it passes the message to \code{log_message}, so it takes the
+same arguments (\var{format} and additional values).
+\end{funcdesc}
+
+\begin{funcdesc}{log_message}{format, ...}
+Logs an arbitrary message to \code{sys.stderr}. This is typically
+overridden to create custom error logging mechanisms. The
+\var{format} argument is a standard printf-style format string,
+where the additional arguments to \code{log_message} are applied
+as inputs to the formatting. The client address and current date
+and time are prefixed to every message logged.
+\end{funcdesc}
+
+\begin{funcdesc}{version_string}{}
+Returns the server software's version string. This is a combination
+of the \var{server_version} and \var{sys_version} class variables.
+\end{funcdesc}
+
+\begin{funcdesc}{date_time_string}{}
+Returns the current date and time, formatted for a message header.
+\end{funcdesc}
+
+\begin{funcdesc}{log_data_time_string}{}
+Returns the current date and time, formatted for logging.
+\end{funcdesc}
+
+\begin{funcdesc}{address_string}{}
+Returns the client address, formatted for logging. A name lookup
+is performed on the client's IP address.
+\end{funcdesc}
