diff --git a/Doc/boilerplate.tex b/Doc/boilerplate.tex
index 89500c3..068e827 100644
--- a/Doc/boilerplate.tex
+++ b/Doc/boilerplate.tex
@@ -5,4 +5,4 @@
 	E-mail: {\tt guido@cwi.nl}
 }
 
-\date{28 March 1995 \\ Release 1.2-proof-3} % XXX update before release!
+\date{10 April 1995 \\ Release 1.2} % XXX update before release!
diff --git a/Doc/info/texipre.dat b/Doc/info/texipre.dat
index 93b4945..e6955e5 100644
--- a/Doc/info/texipre.dat
+++ b/Doc/info/texipre.dat
@@ -77,7 +77,7 @@
 Reference Manual} gives a more formal definition of the language.
 (These manuals are not yet available in INFO or Texinfo format.)
 
-This version corresponds to Python version 1.2.
+This version corresponds to Python version 1.2 (4 April 1995).
 
 @end ifinfo
 
diff --git a/Doc/lib/libdbm.tex b/Doc/lib/libdbm.tex
index 6e72567..7e004d2 100644
--- a/Doc/lib/libdbm.tex
+++ b/Doc/lib/libdbm.tex
@@ -18,7 +18,8 @@
 \begin{funcdesc}{open}{filename\, rwmode\, filemode}
 Open a dbm database and return a mapping object.  \var{filename} is
 the name of the database file (without the \file{.dir} or \file{.pag}
-extensions), \var{rwmode} is \code{'r'}, \code{'w'} or \code{'rw'} as for
-\code{open}, and \var{filemode} is the \UNIX{} mode of the file, used only
-when the database has to be created.
+extensions), \var{rwmode} is \code{'r'}, \code{'w'} or \code{'rw'} to
+open the database fore reading, writing or both respectively,
+and \var{filemode} is the \UNIX{} mode of the file, used only
+when the database has to be created (but to be supplied at all times).
 \end{funcdesc}
diff --git a/Doc/lib/libftplib.tex b/Doc/lib/libftplib.tex
index f78805c..63cde96 100644
--- a/Doc/lib/libftplib.tex
+++ b/Doc/lib/libftplib.tex
@@ -16,7 +16,7 @@
 \begin{verbatim}
 >>> from ftplib import FTP
 >>> ftp = FTP('ftp.cwi.nl')   # connect to host, default port
->>> ftp.login()               # default user anonymous, passwd user@hostname
+>>> ftp.login()               # user anonymous, passwd user@hostname
 >>> ftp.retrlines('LIST')     # list directory contents
 total 24418
 drwxrwsr-x   5 ftp-usr  pdmaint     1536 Mar 20 09:48 .
diff --git a/Doc/lib/libgdbm.tex b/Doc/lib/libgdbm.tex
index 177627f..f353b5e 100644
--- a/Doc/lib/libgdbm.tex
+++ b/Doc/lib/libgdbm.tex
@@ -18,13 +18,14 @@
 \end{excdesc}
 
 \begin{funcdesc}{open}{filename\, rwmode\, filemode}
-Open a gdbm database and return a mapping object. \var{filename} is
+Open a gdbm database and return a mapping object.  \var{filename} is
 the name of the database file, \var{rwmode} is \code{'r'}, \code{'w'},
 \code{'c'}, or \code{'n'} for reader, writer (this also gives read
 access), create (writer, but create the database if it doesn't already
-exist) and newdb (which will always create a new database). Only one
-writer may open a gdbm file and many readers may open the file. Readers
-and writers cannot open the gdbm file at the same time. Note that the
-\code{GDBM_FAST} mode of opening the database is not supported. \var{filemode} 
-is the \UNIX\ mode of the file, used only when a database is created.
+exist) and newdb (which will always create a new database).  Only one
+writer may open a gdbm file and many readers may open the file.  Readers
+and writers cannot open the gdbm file at the same time.  Note that the
+\code{GDBM_FAST} mode of opening the database is not supported.
+\var{filemode} is the \UNIX\ mode of the file, used only when a
+database is created (but to be supplied at all times).
 \end{funcdesc}
diff --git a/Doc/lib/libimp.tex b/Doc/lib/libimp.tex
index f995979..2e72602 100644
--- a/Doc/lib/libimp.tex
+++ b/Doc/lib/libimp.tex
@@ -142,7 +142,7 @@
         return sys.modules[name]
 
     # If any of the following calls raises an exception,
-    # there's a problem we con't handle -- let the caller handle it.
+    # there's a problem we can't handle -- let the caller handle it.
 
     # See if it's a built-in module.
     m = imp.init_builtin(name)
diff --git a/Doc/lib/libjpeg.tex b/Doc/lib/libjpeg.tex
index b5c14a4..8215cad 100644
--- a/Doc/lib/libjpeg.tex
+++ b/Doc/lib/libjpeg.tex
@@ -14,7 +14,7 @@
 Treat data as a pixmap of width \var{w} and height \var{h}, with \var{b} bytes per
 pixel.  The data is in SGI GL order, so the first pixel is in the
 lower-left corner. This means that \code{lrectread} return data can
-immedeately be passed to compress.  Currently only 1 byte and 4 byte
+immediately be passed to compress.  Currently only 1 byte and 4 byte
 pixels are allowed, the former being treated as greyscale and the
 latter as RGB color.  Compress returns a string that contains the
 compressed picture, in JFIF format.
diff --git a/Doc/lib/libnntplib.tex b/Doc/lib/libnntplib.tex
index d2db0d5..e17ea8b 100644
--- a/Doc/lib/libnntplib.tex
+++ b/Doc/lib/libnntplib.tex
@@ -12,6 +12,7 @@
 statistics about a newsgroup and print the subjects of the last 10
 articles:
 
+\small{
 \begin{verbatim}
 >>> s = NNTP('news.cwi.nl')
 >>> resp, count, first, last, name = s.group('comp.lang.python')
@@ -34,6 +35,7 @@
 '205 news.cwi.nl closing connection.  Goodbye.'
 >>> 
 \end{verbatim}
+}
 
 To post an article from a file (this assumes that the article has
 valid headers):
diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex
index 92020a2..579992f 100644
--- a/Doc/lib/libpickle.tex
+++ b/Doc/lib/libpickle.tex
@@ -146,7 +146,7 @@
 
 \begin{verbatim}
 u = pickle.Unpickler(f)
-x = u.load(x)
+x = u.load()
 \end{verbatim}
 
 A shorthand is:
diff --git a/Doc/lib/libposix.tex b/Doc/lib/libposix.tex
index fa0b42d..71798a4 100644
--- a/Doc/lib/libposix.tex
+++ b/Doc/lib/libposix.tex
@@ -16,7 +16,8 @@
 \stmodindex{os}
 
 The descriptions below are very terse; refer to the
-corresponding \UNIX{} manual entry for more information.
+corresponding \UNIX{} manual entry for more information.  Arguments
+called \var{path} refer to a pathname given as a string.
 
 Errors are reported as exceptions; the usual exceptions are given
 for type errors, while errors reported by the system calls raise
@@ -340,7 +341,7 @@
 a tuple containing its pid and exit status indication (encoded as by
 \UNIX{}).  The semantics of the call are affected by the value of
 the integer options, which should be 0 for normal operation.  (If the
-system does not support waitpid(), this always raises
+system does not support \code{waitpid()}, this always raises
 \code{posix.error}.  Not on MS-DOS.)
 \end{funcdesc}
 
diff --git a/Doc/lib/libposixfile.tex b/Doc/lib/libposixfile.tex
index b257bbd..6679f12 100644
--- a/Doc/lib/libposixfile.tex
+++ b/Doc/lib/libposixfile.tex
@@ -63,11 +63,12 @@
  manual page on your system.
 \end{funcdesc}
 
-\begin{funcdesc}{flags}{fmt}
+\begin{funcdesc}{flags}{\optional{flags}}
  Set the specified flags for the file that the file object is referring
  to.  The new flags are ORed with the old flags, unless specified
  otherwise.  The format is explained below in a table.  Without
- arguments a string indicating the current flags is returned (this is
+ the \var{flags} argument
+ a string indicating the current flags is returned (this is
  the same as the '?' modifier).  For more information about the flags
  refer to the fcntl manual page on your system.
 \end{funcdesc}
diff --git a/Doc/lib/libprofile.tex b/Doc/lib/libprofile.tex
index 3cd4296..ea2e613 100644
--- a/Doc/lib/libprofile.tex
+++ b/Doc/lib/libprofile.tex
@@ -267,17 +267,19 @@
 standard name string (file/line/function-name) that is presented in
 each line.  The following is a typical output from such a call:
 
+\small{
 \begin{verbatim}
-         main()
-         2706 function calls (2004 primitive calls) in 4.504 CPU seconds
+      main()
+      2706 function calls (2004 primitive calls) in 4.504 CPU seconds
 
-   Ordered by: standard name
+Ordered by: standard name
 
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        2    0.006    0.003    0.953    0.477 pobject.py:75(save_objects)
-     43/3    0.533    0.012    0.749    0.250 pobject.py:99(evaluate)
-    ...
+ncalls  tottime  percall  cumtime  percall filename:lineno(function)
+     2    0.006    0.003    0.953    0.477 pobject.py:75(save_objects)
+  43/3    0.533    0.012    0.749    0.250 pobject.py:99(evaluate)
+ ...
 \end{verbatim}
+}
 
 The first line indicates that this profile was generated by the call:\\
 \code{profile.run('main()')}, and hence the exec'ed string is
@@ -318,6 +320,7 @@
 the actual number of calls.  Note that when the function does not
 recurse, these two values are the same, and only the single figure is
 printed.
+
 \end{funcdesc}
 
 \begin{funcdesc}{pstats.Stats}{filename\optional{\, ...}}
@@ -480,7 +483,8 @@
 be strung together.  For example:
 
 \begin{verbatim}
-pstats.Stats('foofile').strip_dirs().sort_stats('cum').print_stats().ignore()
+pstats.Stats('foofile').strip_dirs().sort_stats('cum') \
+                       .print_stats().ignore()
 \end{verbatim}
 
 would perform all the indicated functions, but it would not return
diff --git a/Doc/lib/libstring.tex b/Doc/lib/libstring.tex
index 960e94b..17717df 100644
--- a/Doc/lib/libstring.tex
+++ b/Doc/lib/libstring.tex
@@ -70,7 +70,7 @@
 \samp{0} means 8, anything else means 10.  If \var{base} is 16, a
 leading \samp{0x} or \samp{0X} is always accepted.  (Note: for a more
 flexible interpretation of numeric literals, use the built-in function
-\code{eval()}.
+\code{eval()}.)
 \bifuncindex{eval}
 \end{funcdesc}
 
diff --git a/Doc/lib/libsun.tex b/Doc/lib/libsun.tex
index 5628369..909c14d 100644
--- a/Doc/lib/libsun.tex
+++ b/Doc/lib/libsun.tex
@@ -97,7 +97,7 @@
 
 \begin{funcdesc}{write}{samples}
 Write is passed a python string containing audio samples to be played.
-If there is enough buffer space free it will immedeately return,
+If there is enough buffer space free it will immediately return,
 otherwise it will block.
 \end{funcdesc}
 
diff --git a/Doc/lib/libthread.tex b/Doc/lib/libthread.tex
index bd81d7c..f745384 100644
--- a/Doc/lib/libthread.tex
+++ b/Doc/lib/libthread.tex
@@ -58,7 +58,7 @@
 Lock objects have the following methods:
 
 \renewcommand{\indexsubitem}{(lock method)}
-\begin{funcdesc}{acquire}{waitflag}
+\begin{funcdesc}{acquire}{\optional{waitflag}}
 Without the optional argument, this method acquires the lock
 unconditionally, if necessary waiting until it is released by another
 thread (only one thread at a time can acquire a lock --- that's their
diff --git a/Doc/lib/libtypes.tex b/Doc/lib/libtypes.tex
index 422a2d6..248ad6e 100644
--- a/Doc/lib/libtypes.tex
+++ b/Doc/lib/libtypes.tex
@@ -305,7 +305,7 @@
 priority as the corresponding numeric operations.\footnote{They must
 have since the parser can't tell the type of the operands.}
 
-This table lists the sequece operations sorted in ascending priority
+This table lists the sequence operations sorted in ascending priority
 (operations in the same box have the same priority).  In the table,
 \var{s} and \var{t} are sequences of the same type; \var{n}, \var{i}
 and \var{j} are integers:
diff --git a/Doc/lib/liburlparse.tex b/Doc/lib/liburlparse.tex
index c35d032..36ca949 100644
--- a/Doc/lib/liburlparse.tex
+++ b/Doc/lib/liburlparse.tex
@@ -33,9 +33,16 @@
 retained if present.
 
 Example:
-\code{urlparse('http://www.cwi.nl:80/\%7eguido/Python.html')}
+
+\begin{verbatim}
+urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
+\end{verbatim}
+
 yields the tuple
-\code{('http', 'www.cwi.nl:80', '/\%7eguido/Python.html', '', '', '')}.
+
+\begin{verbatim}
+('http', 'www.cwi.nl:80', '/%7Eguido/Python.html', '', '', '')
+\end{verbatim}
 
 If the \var{default_scheme} argument is specified, it gives the
 default addressing scheme, to be used only if the URL string does not
@@ -61,9 +68,16 @@
 components in the relative URL.
 
 Example:
-\code{urljoin('http://www.cwi.nl/\%7eguido/Python.html',}
-\code{'FAQ.html')} yields the string
-\code{'http://www.cwi.nl/\%7eguido/FAQ.html'}.
+
+\begin{verbatim}
+urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html')
+\end{verbatim}
+
+yields the string
+
+\begin{verbatim}
+'http://www.cwi.nl/%7Eguido/FAQ.html'
+\end{verbatim}
 
 The \var{allow_fragments} argument has the same meaning as for
 \code{urlparse}.
diff --git a/Doc/libctb.tex b/Doc/libctb.tex
index 1cda336..a5aab71 100644
--- a/Doc/libctb.tex
+++ b/Doc/libctb.tex
@@ -4,7 +4,7 @@
 
 This module provides a partial interface to the Macintosh
 Communications Toolbox. Currently, only Connection Manager tools are
-supported. 
+supported.  It may not be available in all Mac Python versions.
 
 \begin{datadesc}{error}
 The exception raised on errors.
diff --git a/Doc/libdbm.tex b/Doc/libdbm.tex
index 6e72567..7e004d2 100644
--- a/Doc/libdbm.tex
+++ b/Doc/libdbm.tex
@@ -18,7 +18,8 @@
 \begin{funcdesc}{open}{filename\, rwmode\, filemode}
 Open a dbm database and return a mapping object.  \var{filename} is
 the name of the database file (without the \file{.dir} or \file{.pag}
-extensions), \var{rwmode} is \code{'r'}, \code{'w'} or \code{'rw'} as for
-\code{open}, and \var{filemode} is the \UNIX{} mode of the file, used only
-when the database has to be created.
+extensions), \var{rwmode} is \code{'r'}, \code{'w'} or \code{'rw'} to
+open the database fore reading, writing or both respectively,
+and \var{filemode} is the \UNIX{} mode of the file, used only
+when the database has to be created (but to be supplied at all times).
 \end{funcdesc}
diff --git a/Doc/libftplib.tex b/Doc/libftplib.tex
index f78805c..63cde96 100644
--- a/Doc/libftplib.tex
+++ b/Doc/libftplib.tex
@@ -16,7 +16,7 @@
 \begin{verbatim}
 >>> from ftplib import FTP
 >>> ftp = FTP('ftp.cwi.nl')   # connect to host, default port
->>> ftp.login()               # default user anonymous, passwd user@hostname
+>>> ftp.login()               # user anonymous, passwd user@hostname
 >>> ftp.retrlines('LIST')     # list directory contents
 total 24418
 drwxrwsr-x   5 ftp-usr  pdmaint     1536 Mar 20 09:48 .
diff --git a/Doc/libgdbm.tex b/Doc/libgdbm.tex
index 177627f..f353b5e 100644
--- a/Doc/libgdbm.tex
+++ b/Doc/libgdbm.tex
@@ -18,13 +18,14 @@
 \end{excdesc}
 
 \begin{funcdesc}{open}{filename\, rwmode\, filemode}
-Open a gdbm database and return a mapping object. \var{filename} is
+Open a gdbm database and return a mapping object.  \var{filename} is
 the name of the database file, \var{rwmode} is \code{'r'}, \code{'w'},
 \code{'c'}, or \code{'n'} for reader, writer (this also gives read
 access), create (writer, but create the database if it doesn't already
-exist) and newdb (which will always create a new database). Only one
-writer may open a gdbm file and many readers may open the file. Readers
-and writers cannot open the gdbm file at the same time. Note that the
-\code{GDBM_FAST} mode of opening the database is not supported. \var{filemode} 
-is the \UNIX\ mode of the file, used only when a database is created.
+exist) and newdb (which will always create a new database).  Only one
+writer may open a gdbm file and many readers may open the file.  Readers
+and writers cannot open the gdbm file at the same time.  Note that the
+\code{GDBM_FAST} mode of opening the database is not supported.
+\var{filemode} is the \UNIX\ mode of the file, used only when a
+database is created (but to be supplied at all times).
 \end{funcdesc}
diff --git a/Doc/libimp.tex b/Doc/libimp.tex
index f995979..2e72602 100644
--- a/Doc/libimp.tex
+++ b/Doc/libimp.tex
@@ -142,7 +142,7 @@
         return sys.modules[name]
 
     # If any of the following calls raises an exception,
-    # there's a problem we con't handle -- let the caller handle it.
+    # there's a problem we can't handle -- let the caller handle it.
 
     # See if it's a built-in module.
     m = imp.init_builtin(name)
diff --git a/Doc/libjpeg.tex b/Doc/libjpeg.tex
index b5c14a4..8215cad 100644
--- a/Doc/libjpeg.tex
+++ b/Doc/libjpeg.tex
@@ -14,7 +14,7 @@
 Treat data as a pixmap of width \var{w} and height \var{h}, with \var{b} bytes per
 pixel.  The data is in SGI GL order, so the first pixel is in the
 lower-left corner. This means that \code{lrectread} return data can
-immedeately be passed to compress.  Currently only 1 byte and 4 byte
+immediately be passed to compress.  Currently only 1 byte and 4 byte
 pixels are allowed, the former being treated as greyscale and the
 latter as RGB color.  Compress returns a string that contains the
 compressed picture, in JFIF format.
diff --git a/Doc/libmacdnr.tex b/Doc/libmacdnr.tex
index cd3625c..ab45788 100644
--- a/Doc/libmacdnr.tex
+++ b/Doc/libmacdnr.tex
@@ -3,57 +3,58 @@
 \bimodindex{macdnr}
 
 This module provides an interface to the Macintosh Domain Name
-Resolver. It is usually used in conjunction with the \var{mactcp} module, to
-map hostnames to IP-addresses.
+Resolver.  It is usually used in conjunction with the \var{mactcp}
+module, to map hostnames to IP-addresses.  It may not be available in
+all Mac Python versions.
 
 The \code{macdnr} module defines the following functions:
 
 \renewcommand{\indexsubitem}{(in module macdnr)}
 
 \begin{funcdesc}{Open}{\optional{filename}}
-Open the domain name resolver extension. If \var{filename} is given it
+Open the domain name resolver extension.  If \var{filename} is given it
 should be the pathname of the extension, otherwise a default is
-used. Normally, this call is not needed since the other calls will
+used.  Normally, this call is not needed since the other calls will
 open the extension automatically.
 \end{funcdesc}
 
 \begin{funcdesc}{Close}{}
-Close the resolver extension. Again, not needed for normal use.
+Close the resolver extension.  Again, not needed for normal use.
 \end{funcdesc}
 
 \begin{funcdesc}{StrToAddr}{hostname}
-Look up the IP address for \var{hostname}. This call returns a dnr
+Look up the IP address for \var{hostname}.  This call returns a dnr
 result object of the ``address'' variation.
 \end{funcdesc}
 
 \begin{funcdesc}{AddrToName}{addr}
 Do a reverse lookup on the 32-bit integer IP-address
-\var{addr}. Returns a dnr result object of the ``address'' variation.
+\var{addr}.  Returns a dnr result object of the ``address'' variation.
 \end{funcdesc}
 
 \begin{funcdesc}{AddrToStr}{addr}
 Convert the 32-bit integer IP-address \var{addr} to a dotted-decimal
-string. Returns the string.
+string.  Returns the string.
 \end{funcdesc}
 
 \begin{funcdesc}{HInfo}{hostname}
 Query the nameservers for a \code{HInfo} record for host
-\var{hostname}. These records contain hardware and software
+\var{hostname}.  These records contain hardware and software
 information about the machine in question (if they are available in
-the first place). Returns a dnr result object of the ``hinfo''
+the first place).  Returns a dnr result object of the ``hinfo''
 variety.
 \end{funcdesc}
 
 \begin{funcdesc}{MXInfo}{domain}
-Query the nameservers for a mail exchanger for \var{domain}. This is
+Query the nameservers for a mail exchanger for \var{domain}.  This is
 the hostname of a host willing to accept SMTP mail for the given
-domain. Returns a dnr result object of the ``mx'' variety.
+domain.  Returns a dnr result object of the ``mx'' variety.
 \end{funcdesc}
 
 \subsection{dnr result object}
 
 Since the DNR calls all execute asynchronously you do not get the
-results back immedeately. In stead, you get a dnr result object. You
+results back immediately.  Instead, you get a dnr result object.  You
 can check this object to see whether the query is complete, and access
 its attributes to obtain the information when it is.
 
@@ -89,23 +90,23 @@
 \dataline{ip1}
 \dataline{ip2}
 \dataline{ip3}
-At most four integer IP addresses for this host. Unused entries are
-zero. Valid only for address queries.
+At most four integer IP addresses for this host.  Unused entries are
+zero.  Valid only for address queries.
 \end{datadesc}
 
 \begin{datadesc}{cpuType}
 \dataline{osType}
-Textual strings giving the machine type an OS name. Valid for hinfo
+Textual strings giving the machine type an OS name.  Valid for hinfo
 queries.
 \end{datadesc}
 
 \begin{datadesc}{exchange}
-The name of a mail-exchanger host. Valid for mx queries.
+The name of a mail-exchanger host.  Valid for mx queries.
 \end{datadesc}
 
 \begin{datadesc}{preference}
-The preference of this mx record. Not too useful, since the Macintosh
-will only return a single mx record. Mx queries only.
+The preference of this mx record.  Not too useful, since the Macintosh
+will only return a single mx record.  Mx queries only.
 \end{datadesc}
 
 The simplest way to use the module to convert names to dotted-decimal
diff --git a/Doc/libmacspeech.tex b/Doc/libmacspeech.tex
index 7480482..fc35520 100644
--- a/Doc/libmacspeech.tex
+++ b/Doc/libmacspeech.tex
@@ -7,7 +7,8 @@
 allowing you to let the Macintosh utter phrases. You need a version of
 the speech manager extension (version 1 and 2 have been tested) in
 your \code{Extensions} folder for this to work. The module does not
-provide full access to all features of the Speech Manager yet.
+provide full access to all features of the Speech Manager yet.  It may
+not be available in all Mac Python versions.
 
 \begin{funcdesc}{Available}{}
 Test availability of the Speech Manager extension (and, on the
diff --git a/Doc/libmactcp.tex b/Doc/libmactcp.tex
index 561284b..6c5a78b 100644
--- a/Doc/libmactcp.tex
+++ b/Doc/libmactcp.tex
@@ -8,7 +8,8 @@
 interface to the name-server (allowing you to translate hostnames to
 ip-addresses), a module \code{MACTCP} which has symbolic names for
 constants constants used by MacTCP and a wrapper module \code{socket}
-which mimics the \UNIX{} socket interface (as far as possible).
+which mimics the \UNIX{} socket interface (as far as possible).  It may
+not be available in all Mac Python versions.
 
 A complete description of the MacTCP interface can be found in the
 Apple MacTCP API documentation.
diff --git a/Doc/libnntplib.tex b/Doc/libnntplib.tex
index d2db0d5..e17ea8b 100644
--- a/Doc/libnntplib.tex
+++ b/Doc/libnntplib.tex
@@ -12,6 +12,7 @@
 statistics about a newsgroup and print the subjects of the last 10
 articles:
 
+\small{
 \begin{verbatim}
 >>> s = NNTP('news.cwi.nl')
 >>> resp, count, first, last, name = s.group('comp.lang.python')
@@ -34,6 +35,7 @@
 '205 news.cwi.nl closing connection.  Goodbye.'
 >>> 
 \end{verbatim}
+}
 
 To post an article from a file (this assumes that the article has
 valid headers):
diff --git a/Doc/libpickle.tex b/Doc/libpickle.tex
index 92020a2..579992f 100644
--- a/Doc/libpickle.tex
+++ b/Doc/libpickle.tex
@@ -146,7 +146,7 @@
 
 \begin{verbatim}
 u = pickle.Unpickler(f)
-x = u.load(x)
+x = u.load()
 \end{verbatim}
 
 A shorthand is:
diff --git a/Doc/libposix.tex b/Doc/libposix.tex
index fa0b42d..71798a4 100644
--- a/Doc/libposix.tex
+++ b/Doc/libposix.tex
@@ -16,7 +16,8 @@
 \stmodindex{os}
 
 The descriptions below are very terse; refer to the
-corresponding \UNIX{} manual entry for more information.
+corresponding \UNIX{} manual entry for more information.  Arguments
+called \var{path} refer to a pathname given as a string.
 
 Errors are reported as exceptions; the usual exceptions are given
 for type errors, while errors reported by the system calls raise
@@ -340,7 +341,7 @@
 a tuple containing its pid and exit status indication (encoded as by
 \UNIX{}).  The semantics of the call are affected by the value of
 the integer options, which should be 0 for normal operation.  (If the
-system does not support waitpid(), this always raises
+system does not support \code{waitpid()}, this always raises
 \code{posix.error}.  Not on MS-DOS.)
 \end{funcdesc}
 
diff --git a/Doc/libposixfile.tex b/Doc/libposixfile.tex
index b257bbd..6679f12 100644
--- a/Doc/libposixfile.tex
+++ b/Doc/libposixfile.tex
@@ -63,11 +63,12 @@
  manual page on your system.
 \end{funcdesc}
 
-\begin{funcdesc}{flags}{fmt}
+\begin{funcdesc}{flags}{\optional{flags}}
  Set the specified flags for the file that the file object is referring
  to.  The new flags are ORed with the old flags, unless specified
  otherwise.  The format is explained below in a table.  Without
- arguments a string indicating the current flags is returned (this is
+ the \var{flags} argument
+ a string indicating the current flags is returned (this is
  the same as the '?' modifier).  For more information about the flags
  refer to the fcntl manual page on your system.
 \end{funcdesc}
diff --git a/Doc/libprofile.tex b/Doc/libprofile.tex
index 3cd4296..ea2e613 100644
--- a/Doc/libprofile.tex
+++ b/Doc/libprofile.tex
@@ -267,17 +267,19 @@
 standard name string (file/line/function-name) that is presented in
 each line.  The following is a typical output from such a call:
 
+\small{
 \begin{verbatim}
-         main()
-         2706 function calls (2004 primitive calls) in 4.504 CPU seconds
+      main()
+      2706 function calls (2004 primitive calls) in 4.504 CPU seconds
 
-   Ordered by: standard name
+Ordered by: standard name
 
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        2    0.006    0.003    0.953    0.477 pobject.py:75(save_objects)
-     43/3    0.533    0.012    0.749    0.250 pobject.py:99(evaluate)
-    ...
+ncalls  tottime  percall  cumtime  percall filename:lineno(function)
+     2    0.006    0.003    0.953    0.477 pobject.py:75(save_objects)
+  43/3    0.533    0.012    0.749    0.250 pobject.py:99(evaluate)
+ ...
 \end{verbatim}
+}
 
 The first line indicates that this profile was generated by the call:\\
 \code{profile.run('main()')}, and hence the exec'ed string is
@@ -318,6 +320,7 @@
 the actual number of calls.  Note that when the function does not
 recurse, these two values are the same, and only the single figure is
 printed.
+
 \end{funcdesc}
 
 \begin{funcdesc}{pstats.Stats}{filename\optional{\, ...}}
@@ -480,7 +483,8 @@
 be strung together.  For example:
 
 \begin{verbatim}
-pstats.Stats('foofile').strip_dirs().sort_stats('cum').print_stats().ignore()
+pstats.Stats('foofile').strip_dirs().sort_stats('cum') \
+                       .print_stats().ignore()
 \end{verbatim}
 
 would perform all the indicated functions, but it would not return
diff --git a/Doc/libstring.tex b/Doc/libstring.tex
index 960e94b..17717df 100644
--- a/Doc/libstring.tex
+++ b/Doc/libstring.tex
@@ -70,7 +70,7 @@
 \samp{0} means 8, anything else means 10.  If \var{base} is 16, a
 leading \samp{0x} or \samp{0X} is always accepted.  (Note: for a more
 flexible interpretation of numeric literals, use the built-in function
-\code{eval()}.
+\code{eval()}.)
 \bifuncindex{eval}
 \end{funcdesc}
 
diff --git a/Doc/libsun.tex b/Doc/libsun.tex
index 5628369..909c14d 100644
--- a/Doc/libsun.tex
+++ b/Doc/libsun.tex
@@ -97,7 +97,7 @@
 
 \begin{funcdesc}{write}{samples}
 Write is passed a python string containing audio samples to be played.
-If there is enough buffer space free it will immedeately return,
+If there is enough buffer space free it will immediately return,
 otherwise it will block.
 \end{funcdesc}
 
diff --git a/Doc/libthread.tex b/Doc/libthread.tex
index bd81d7c..f745384 100644
--- a/Doc/libthread.tex
+++ b/Doc/libthread.tex
@@ -58,7 +58,7 @@
 Lock objects have the following methods:
 
 \renewcommand{\indexsubitem}{(lock method)}
-\begin{funcdesc}{acquire}{waitflag}
+\begin{funcdesc}{acquire}{\optional{waitflag}}
 Without the optional argument, this method acquires the lock
 unconditionally, if necessary waiting until it is released by another
 thread (only one thread at a time can acquire a lock --- that's their
diff --git a/Doc/libtypes.tex b/Doc/libtypes.tex
index 422a2d6..248ad6e 100644
--- a/Doc/libtypes.tex
+++ b/Doc/libtypes.tex
@@ -305,7 +305,7 @@
 priority as the corresponding numeric operations.\footnote{They must
 have since the parser can't tell the type of the operands.}
 
-This table lists the sequece operations sorted in ascending priority
+This table lists the sequence operations sorted in ascending priority
 (operations in the same box have the same priority).  In the table,
 \var{s} and \var{t} are sequences of the same type; \var{n}, \var{i}
 and \var{j} are integers:
diff --git a/Doc/liburlparse.tex b/Doc/liburlparse.tex
index c35d032..36ca949 100644
--- a/Doc/liburlparse.tex
+++ b/Doc/liburlparse.tex
@@ -33,9 +33,16 @@
 retained if present.
 
 Example:
-\code{urlparse('http://www.cwi.nl:80/\%7eguido/Python.html')}
+
+\begin{verbatim}
+urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
+\end{verbatim}
+
 yields the tuple
-\code{('http', 'www.cwi.nl:80', '/\%7eguido/Python.html', '', '', '')}.
+
+\begin{verbatim}
+('http', 'www.cwi.nl:80', '/%7Eguido/Python.html', '', '', '')
+\end{verbatim}
 
 If the \var{default_scheme} argument is specified, it gives the
 default addressing scheme, to be used only if the URL string does not
@@ -61,9 +68,16 @@
 components in the relative URL.
 
 Example:
-\code{urljoin('http://www.cwi.nl/\%7eguido/Python.html',}
-\code{'FAQ.html')} yields the string
-\code{'http://www.cwi.nl/\%7eguido/FAQ.html'}.
+
+\begin{verbatim}
+urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html')
+\end{verbatim}
+
+yields the string
+
+\begin{verbatim}
+'http://www.cwi.nl/%7Eguido/FAQ.html'
+\end{verbatim}
 
 The \var{allow_fragments} argument has the same meaning as for
 \code{urlparse}.
diff --git a/Doc/mac/libctb.tex b/Doc/mac/libctb.tex
index 1cda336..a5aab71 100644
--- a/Doc/mac/libctb.tex
+++ b/Doc/mac/libctb.tex
@@ -4,7 +4,7 @@
 
 This module provides a partial interface to the Macintosh
 Communications Toolbox. Currently, only Connection Manager tools are
-supported. 
+supported.  It may not be available in all Mac Python versions.
 
 \begin{datadesc}{error}
 The exception raised on errors.
diff --git a/Doc/mac/libmacdnr.tex b/Doc/mac/libmacdnr.tex
index cd3625c..ab45788 100644
--- a/Doc/mac/libmacdnr.tex
+++ b/Doc/mac/libmacdnr.tex
@@ -3,57 +3,58 @@
 \bimodindex{macdnr}
 
 This module provides an interface to the Macintosh Domain Name
-Resolver. It is usually used in conjunction with the \var{mactcp} module, to
-map hostnames to IP-addresses.
+Resolver.  It is usually used in conjunction with the \var{mactcp}
+module, to map hostnames to IP-addresses.  It may not be available in
+all Mac Python versions.
 
 The \code{macdnr} module defines the following functions:
 
 \renewcommand{\indexsubitem}{(in module macdnr)}
 
 \begin{funcdesc}{Open}{\optional{filename}}
-Open the domain name resolver extension. If \var{filename} is given it
+Open the domain name resolver extension.  If \var{filename} is given it
 should be the pathname of the extension, otherwise a default is
-used. Normally, this call is not needed since the other calls will
+used.  Normally, this call is not needed since the other calls will
 open the extension automatically.
 \end{funcdesc}
 
 \begin{funcdesc}{Close}{}
-Close the resolver extension. Again, not needed for normal use.
+Close the resolver extension.  Again, not needed for normal use.
 \end{funcdesc}
 
 \begin{funcdesc}{StrToAddr}{hostname}
-Look up the IP address for \var{hostname}. This call returns a dnr
+Look up the IP address for \var{hostname}.  This call returns a dnr
 result object of the ``address'' variation.
 \end{funcdesc}
 
 \begin{funcdesc}{AddrToName}{addr}
 Do a reverse lookup on the 32-bit integer IP-address
-\var{addr}. Returns a dnr result object of the ``address'' variation.
+\var{addr}.  Returns a dnr result object of the ``address'' variation.
 \end{funcdesc}
 
 \begin{funcdesc}{AddrToStr}{addr}
 Convert the 32-bit integer IP-address \var{addr} to a dotted-decimal
-string. Returns the string.
+string.  Returns the string.
 \end{funcdesc}
 
 \begin{funcdesc}{HInfo}{hostname}
 Query the nameservers for a \code{HInfo} record for host
-\var{hostname}. These records contain hardware and software
+\var{hostname}.  These records contain hardware and software
 information about the machine in question (if they are available in
-the first place). Returns a dnr result object of the ``hinfo''
+the first place).  Returns a dnr result object of the ``hinfo''
 variety.
 \end{funcdesc}
 
 \begin{funcdesc}{MXInfo}{domain}
-Query the nameservers for a mail exchanger for \var{domain}. This is
+Query the nameservers for a mail exchanger for \var{domain}.  This is
 the hostname of a host willing to accept SMTP mail for the given
-domain. Returns a dnr result object of the ``mx'' variety.
+domain.  Returns a dnr result object of the ``mx'' variety.
 \end{funcdesc}
 
 \subsection{dnr result object}
 
 Since the DNR calls all execute asynchronously you do not get the
-results back immedeately. In stead, you get a dnr result object. You
+results back immediately.  Instead, you get a dnr result object.  You
 can check this object to see whether the query is complete, and access
 its attributes to obtain the information when it is.
 
@@ -89,23 +90,23 @@
 \dataline{ip1}
 \dataline{ip2}
 \dataline{ip3}
-At most four integer IP addresses for this host. Unused entries are
-zero. Valid only for address queries.
+At most four integer IP addresses for this host.  Unused entries are
+zero.  Valid only for address queries.
 \end{datadesc}
 
 \begin{datadesc}{cpuType}
 \dataline{osType}
-Textual strings giving the machine type an OS name. Valid for hinfo
+Textual strings giving the machine type an OS name.  Valid for hinfo
 queries.
 \end{datadesc}
 
 \begin{datadesc}{exchange}
-The name of a mail-exchanger host. Valid for mx queries.
+The name of a mail-exchanger host.  Valid for mx queries.
 \end{datadesc}
 
 \begin{datadesc}{preference}
-The preference of this mx record. Not too useful, since the Macintosh
-will only return a single mx record. Mx queries only.
+The preference of this mx record.  Not too useful, since the Macintosh
+will only return a single mx record.  Mx queries only.
 \end{datadesc}
 
 The simplest way to use the module to convert names to dotted-decimal
diff --git a/Doc/mac/libmacspeech.tex b/Doc/mac/libmacspeech.tex
index 7480482..fc35520 100644
--- a/Doc/mac/libmacspeech.tex
+++ b/Doc/mac/libmacspeech.tex
@@ -7,7 +7,8 @@
 allowing you to let the Macintosh utter phrases. You need a version of
 the speech manager extension (version 1 and 2 have been tested) in
 your \code{Extensions} folder for this to work. The module does not
-provide full access to all features of the Speech Manager yet.
+provide full access to all features of the Speech Manager yet.  It may
+not be available in all Mac Python versions.
 
 \begin{funcdesc}{Available}{}
 Test availability of the Speech Manager extension (and, on the
diff --git a/Doc/mac/libmactcp.tex b/Doc/mac/libmactcp.tex
index 561284b..6c5a78b 100644
--- a/Doc/mac/libmactcp.tex
+++ b/Doc/mac/libmactcp.tex
@@ -8,7 +8,8 @@
 interface to the name-server (allowing you to translate hostnames to
 ip-addresses), a module \code{MACTCP} which has symbolic names for
 constants constants used by MacTCP and a wrapper module \code{socket}
-which mimics the \UNIX{} socket interface (as far as possible).
+which mimics the \UNIX{} socket interface (as far as possible).  It may
+not be available in all Mac Python versions.
 
 A complete description of the MacTCP interface can be found in the
 Apple MacTCP API documentation.
diff --git a/Doc/texinputs/boilerplate.tex b/Doc/texinputs/boilerplate.tex
index 89500c3..068e827 100644
--- a/Doc/texinputs/boilerplate.tex
+++ b/Doc/texinputs/boilerplate.tex
@@ -5,4 +5,4 @@
 	E-mail: {\tt guido@cwi.nl}
 }
 
-\date{28 March 1995 \\ Release 1.2-proof-3} % XXX update before release!
+\date{10 April 1995 \\ Release 1.2} % XXX update before release!
diff --git a/Doc/texipre.dat b/Doc/texipre.dat
index 93b4945..e6955e5 100644
--- a/Doc/texipre.dat
+++ b/Doc/texipre.dat
@@ -77,7 +77,7 @@
 Reference Manual} gives a more formal definition of the language.
 (These manuals are not yet available in INFO or Texinfo format.)
 
-This version corresponds to Python version 1.2.
+This version corresponds to Python version 1.2 (4 April 1995).
 
 @end ifinfo
 
diff --git a/Doc/tut.tex b/Doc/tut.tex
index bcb0c35..1822124 100644
--- a/Doc/tut.tex
+++ b/Doc/tut.tex
@@ -2157,7 +2157,7 @@
 containing built-in names.
 
 Usually, the local scope references the local names of the (textually)
-current function.  Outside of functions, the the local scope references
+current function.  Outside of functions, the local scope references
 the same name space as the global scope: the module's name space.
 Class definitions place yet another name space in the local scope.
 
@@ -2165,7 +2165,7 @@
 global scope of a function defined in a module is that module's name
 space, no matter from where or by what alias the function is called.
 On the other hand, the actual search for names is done dynamically, at
-run time --- however, the the language definition is evolving towards
+run time --- however, the language definition is evolving towards
 static name resolution, at ``compile'' time, so don't rely on dynamic
 name resolution!  (In fact, local variables are already determined
 statically.)
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex
index bcb0c35..1822124 100644
--- a/Doc/tut/tut.tex
+++ b/Doc/tut/tut.tex
@@ -2157,7 +2157,7 @@
 containing built-in names.
 
 Usually, the local scope references the local names of the (textually)
-current function.  Outside of functions, the the local scope references
+current function.  Outside of functions, the local scope references
 the same name space as the global scope: the module's name space.
 Class definitions place yet another name space in the local scope.
 
@@ -2165,7 +2165,7 @@
 global scope of a function defined in a module is that module's name
 space, no matter from where or by what alias the function is called.
 On the other hand, the actual search for names is done dynamically, at
-run time --- however, the the language definition is evolving towards
+run time --- however, the language definition is evolving towards
 static name resolution, at ``compile'' time, so don't rely on dynamic
 name resolution!  (In fact, local variables are already determined
 statically.)
