copyright.tex: Add 1995 to copyright message.
lib.tex: add libimp; remove bogus warning about lineii.
libmath.tex: document hypot().
libmd5.tex: rename md5.md5() to md5.new().
libposix.tex: document chown().
libposixfile.tex: openfile() instead of fileopen().
libsocket.tex: document gethostbyaddr().
libtypes.tex: add footnote explaining why readline() keeps the newline.
ref3.tex: correct typos, add back*quotes to index.
ref4.tex: don't use \verb inside footnote.
ref5.tex: explain repr() and str() and add them + back*quotes to index.
ref6.tex: correct typo, don't use \verb in footnote.
ref7.tex: don't use \verb in footnote.
diff --git a/Doc/copyright.tex b/Doc/copyright.tex
index f445c40..d870d3c 100644
--- a/Doc/copyright.tex
+++ b/Doc/copyright.tex
@@ -1,5 +1,5 @@
-Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
-Amsterdam, The Netherlands.
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
 
 \begin{center}
 All Rights Reserved
diff --git a/Doc/lib.tex b/Doc/lib.tex
index 900cfac..d3901b2 100644
--- a/Doc/lib.tex
+++ b/Doc/lib.tex
@@ -50,6 +50,7 @@
 \input{libmods}			% Built-in modules
 \input{libsys}
 \input{libbltin}		% really __builtin__
+\input{libimp}
 \input{libmain}			% really __main__
 \input{libarray}
 \input{libmath}
@@ -73,7 +74,7 @@
 \input{libgdbm}
 \input{libgrp}
 \input{libposix}
-\input{libposixfile} % XXX this uses lineii which partparse.py doesn't know
+\input{libposixfile}
 \input{libppath}		% really posixpath
 \input{libpwd}
 \input{libselect}
diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 900cfac..d3901b2 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -50,6 +50,7 @@
 \input{libmods}			% Built-in modules
 \input{libsys}
 \input{libbltin}		% really __builtin__
+\input{libimp}
 \input{libmain}			% really __main__
 \input{libarray}
 \input{libmath}
@@ -73,7 +74,7 @@
 \input{libgdbm}
 \input{libgrp}
 \input{libposix}
-\input{libposixfile} % XXX this uses lineii which partparse.py doesn't know
+\input{libposixfile}
 \input{libppath}		% really posixpath
 \input{libpwd}
 \input{libselect}
diff --git a/Doc/lib/libmath.tex b/Doc/lib/libmath.tex
index c26e849..6c6a90f 100644
--- a/Doc/lib/libmath.tex
+++ b/Doc/lib/libmath.tex
@@ -44,6 +44,7 @@
 \code{floor(\varvars{x})},
 \code{fmod(\varvars{x\, y})},
 \code{frexp(\varvars{x})},
+\code{hypot(\varvars{x\, y})},
 \code{ldexp(\varvars{x\, y})},
 \code{log(\varvars{x})},
 \code{log10(\varvars{x})},
@@ -61,6 +62,9 @@
 return a pair of values, rather than returning their second return
 value through an `output parameter' (there is no such thing in Python).
 
+The \code{hypot} function, which is not standard C, is not available
+on all platforms.
+
 The module also defines two mathematical constants:
 \iftexi
 \begin{datadesc}{pi}
diff --git a/Doc/lib/libmd5.tex b/Doc/lib/libmd5.tex
index edaa727..3e22820 100644
--- a/Doc/lib/libmd5.tex
+++ b/Doc/lib/libmd5.tex
@@ -15,8 +15,8 @@
 to obtain the digest of the string \code{'abc'}, use \ldots
 
 \bcode\begin{verbatim}
->>> from md5 import md5
->>> m = md5()
+>>> import md5
+>>> m = md5.new()
 >>> m.update('abc')
 >>> m.digest()
 '\220\001P\230<\322O\260\326\226?}(\341\177r'
@@ -25,16 +25,22 @@
 More condensed:
 
 \bcode\begin{verbatim}
->>> md5('abc').digest()
+>>> md5.new('abc').digest()
 '\220\001P\230<\322O\260\326\226?}(\341\177r'
 \end{verbatim}\ecode
 
 \renewcommand{\indexsubitem}{(in module md5)}
-\begin{funcdesc}{md5}{\optional{arg}}
+
+\begin{funcdesc}{new}{\optional{arg}}
   Create a new md5-object. If \var{arg} is present, an initial
   \code{update} method is called with \var{arg} as argument.
 \end{funcdesc}
 
+\begin{funcdesc}{md5}{\optional{arg}}
+For backward compatibility reasons, this is an alternative name for the
+\code{new} function.
+\end{funcdesc}
+
 An md5-object has the following methods:
 
 \renewcommand{\indexsubitem}{(md5 method)}
diff --git a/Doc/lib/libposix.tex b/Doc/lib/libposix.tex
index c22f1e0..987f746 100644
--- a/Doc/lib/libposix.tex
+++ b/Doc/lib/libposix.tex
@@ -50,6 +50,12 @@
 Change the mode of \var{path} to the numeric \var{mode}.
 \end{funcdesc}
 
+\begin{funcdesc}{chown}{path\, uid, gid}
+Change the owner and group id of \var{path} to the numeric \var{uid}
+and \var{gid}.
+(Not on MS-DOS.)
+\end{funcdesc}
+
 \begin{funcdesc}{close}{fd}
 Close file descriptor \var{fd}.
 \end{funcdesc}
diff --git a/Doc/lib/libposixfile.tex b/Doc/lib/libposixfile.tex
index 346f576..050ba5a 100644
--- a/Doc/lib/libposixfile.tex
+++ b/Doc/lib/libposixfile.tex
@@ -38,7 +38,7 @@
  builtin function.
 \end{funcdesc}
 
-\begin{funcdesc}{openfile}{fileobject}
+\begin{funcdesc}{fileopen}{fileobject}
  Create a new posixfile object with the given standard file object.
  The resulting object has the same filename and mode as the original
  file object.
diff --git a/Doc/lib/libsocket.tex b/Doc/lib/libsocket.tex
index 60b9d15..1026ef1 100644
--- a/Doc/lib/libsocket.tex
+++ b/Doc/lib/libsocket.tex
@@ -79,7 +79,16 @@
 Return a string containing the hostname of the machine where 
 the Python interpreter is currently executing.  If you want to know the
 current machine's IP address, use
-\code{socket.gethostbyname( socket.gethostname() )} instead.
+\code{socket.gethostbyname(socket.gethostname())} instead.
+\end{funcdesc}
+
+\begin{funcdesc}{gethostbyaddr}{ip_address}
+Return a triple \code{(hostname, aliaslist, ipaddrlist)} where
+\code{hostname} is the primary host name responding to the given
+\var{ip_address}, \code{aliaslist} is a (possibly empty) list of
+alternative host names for the same address, and \code{ipaddrlist} is
+a list of IP addresses for the same interface on the same
+host (most likely containing only a single address).
 \end{funcdesc}
 
 \begin{funcdesc}{getservbyname}{servicename\, protocolname}
diff --git a/Doc/lib/libtypes.tex b/Doc/lib/libtypes.tex
index b5dadaf..1d5beb4 100644
--- a/Doc/lib/libtypes.tex
+++ b/Doc/lib/libtypes.tex
@@ -580,7 +580,14 @@
 
 \begin{funcdesc}{readline}{}
   Read one entire line from the file.  A trailing newline character is
-  kept in the string (but may be absent when a file ends with an
+  kept in the string%
+\footnote{The advantage of leaving the newline on is that an empty string 
+	can be returned to mean \EOF{} without being ambiguous.  Another 
+	advantage is that (in cases where it might matter, e.g. if you 
+	want to make an exact copy of a file while scanning its lines) 
+	you can tell whether the last line of a file ended in a newline
+	or not (yes this happens!).}
+  (but may be absent when a file ends with an
   incomplete line).  An empty string is returned when \EOF{} is hit
   immediately.  Note: unlike \code{stdio}'s \code{fgets()}, the returned
   string contains null characters (\code{'\e 0'}) if they occurred in the
diff --git a/Doc/libmath.tex b/Doc/libmath.tex
index c26e849..6c6a90f 100644
--- a/Doc/libmath.tex
+++ b/Doc/libmath.tex
@@ -44,6 +44,7 @@
 \code{floor(\varvars{x})},
 \code{fmod(\varvars{x\, y})},
 \code{frexp(\varvars{x})},
+\code{hypot(\varvars{x\, y})},
 \code{ldexp(\varvars{x\, y})},
 \code{log(\varvars{x})},
 \code{log10(\varvars{x})},
@@ -61,6 +62,9 @@
 return a pair of values, rather than returning their second return
 value through an `output parameter' (there is no such thing in Python).
 
+The \code{hypot} function, which is not standard C, is not available
+on all platforms.
+
 The module also defines two mathematical constants:
 \iftexi
 \begin{datadesc}{pi}
diff --git a/Doc/libmd5.tex b/Doc/libmd5.tex
index edaa727..3e22820 100644
--- a/Doc/libmd5.tex
+++ b/Doc/libmd5.tex
@@ -15,8 +15,8 @@
 to obtain the digest of the string \code{'abc'}, use \ldots
 
 \bcode\begin{verbatim}
->>> from md5 import md5
->>> m = md5()
+>>> import md5
+>>> m = md5.new()
 >>> m.update('abc')
 >>> m.digest()
 '\220\001P\230<\322O\260\326\226?}(\341\177r'
@@ -25,16 +25,22 @@
 More condensed:
 
 \bcode\begin{verbatim}
->>> md5('abc').digest()
+>>> md5.new('abc').digest()
 '\220\001P\230<\322O\260\326\226?}(\341\177r'
 \end{verbatim}\ecode
 
 \renewcommand{\indexsubitem}{(in module md5)}
-\begin{funcdesc}{md5}{\optional{arg}}
+
+\begin{funcdesc}{new}{\optional{arg}}
   Create a new md5-object. If \var{arg} is present, an initial
   \code{update} method is called with \var{arg} as argument.
 \end{funcdesc}
 
+\begin{funcdesc}{md5}{\optional{arg}}
+For backward compatibility reasons, this is an alternative name for the
+\code{new} function.
+\end{funcdesc}
+
 An md5-object has the following methods:
 
 \renewcommand{\indexsubitem}{(md5 method)}
diff --git a/Doc/libposix.tex b/Doc/libposix.tex
index c22f1e0..987f746 100644
--- a/Doc/libposix.tex
+++ b/Doc/libposix.tex
@@ -50,6 +50,12 @@
 Change the mode of \var{path} to the numeric \var{mode}.
 \end{funcdesc}
 
+\begin{funcdesc}{chown}{path\, uid, gid}
+Change the owner and group id of \var{path} to the numeric \var{uid}
+and \var{gid}.
+(Not on MS-DOS.)
+\end{funcdesc}
+
 \begin{funcdesc}{close}{fd}
 Close file descriptor \var{fd}.
 \end{funcdesc}
diff --git a/Doc/libposixfile.tex b/Doc/libposixfile.tex
index 346f576..050ba5a 100644
--- a/Doc/libposixfile.tex
+++ b/Doc/libposixfile.tex
@@ -38,7 +38,7 @@
  builtin function.
 \end{funcdesc}
 
-\begin{funcdesc}{openfile}{fileobject}
+\begin{funcdesc}{fileopen}{fileobject}
  Create a new posixfile object with the given standard file object.
  The resulting object has the same filename and mode as the original
  file object.
diff --git a/Doc/libsocket.tex b/Doc/libsocket.tex
index 60b9d15..1026ef1 100644
--- a/Doc/libsocket.tex
+++ b/Doc/libsocket.tex
@@ -79,7 +79,16 @@
 Return a string containing the hostname of the machine where 
 the Python interpreter is currently executing.  If you want to know the
 current machine's IP address, use
-\code{socket.gethostbyname( socket.gethostname() )} instead.
+\code{socket.gethostbyname(socket.gethostname())} instead.
+\end{funcdesc}
+
+\begin{funcdesc}{gethostbyaddr}{ip_address}
+Return a triple \code{(hostname, aliaslist, ipaddrlist)} where
+\code{hostname} is the primary host name responding to the given
+\var{ip_address}, \code{aliaslist} is a (possibly empty) list of
+alternative host names for the same address, and \code{ipaddrlist} is
+a list of IP addresses for the same interface on the same
+host (most likely containing only a single address).
 \end{funcdesc}
 
 \begin{funcdesc}{getservbyname}{servicename\, protocolname}
diff --git a/Doc/libtypes.tex b/Doc/libtypes.tex
index b5dadaf..1d5beb4 100644
--- a/Doc/libtypes.tex
+++ b/Doc/libtypes.tex
@@ -580,7 +580,14 @@
 
 \begin{funcdesc}{readline}{}
   Read one entire line from the file.  A trailing newline character is
-  kept in the string (but may be absent when a file ends with an
+  kept in the string%
+\footnote{The advantage of leaving the newline on is that an empty string 
+	can be returned to mean \EOF{} without being ambiguous.  Another 
+	advantage is that (in cases where it might matter, e.g. if you 
+	want to make an exact copy of a file while scanning its lines) 
+	you can tell whether the last line of a file ended in a newline
+	or not (yes this happens!).}
+  (but may be absent when a file ends with an
   incomplete line).  An empty string is returned when \EOF{} is hit
   immediately.  Note: unlike \code{stdio}'s \code{fgets()}, the returned
   string contains null characters (\code{'\e 0'}) if they occurred in the
diff --git a/Doc/ref/ref3.tex b/Doc/ref/ref3.tex
index 8d327e0..67848bb 100644
--- a/Doc/ref/ref3.tex
+++ b/Doc/ref/ref3.tex
@@ -470,7 +470,7 @@
 \verb@open()@ built-in function, and also by \verb@posix.popen()@ and
 the \verb@makefile@ method of socket objects.  \verb@sys.stdin@,
 \verb@sys.stdout@ and \verb@sys.stderr@ are file objects corresponding
-the the interpreter's standard input, output and error streams.
+to the interpreter's standard input, output and error streams.
 See the Python Library Reference for methods of file objects and other
 details.
 \obindex{file}
@@ -498,7 +498,7 @@
 Code objects represent executable code.  The difference between a code
 object and a function object is that the function object contains an
 explicit reference to the function's context (the module in which it
-was defined) which a code object contains no context.  There is no way
+was defined) while a code object contains no context.  There is no way
 to execute a bare code object.
 \obindex{code}
 
@@ -622,8 +622,12 @@
 \code{x,__del__} is only called when its reference count reaches zero.
 
 \item[\tt __repr__(self)]
-Called by the \verb@repr()@ built-in function and by conversions
-(reverse quotes) to compute the string representation of an object.
+Called by the \verb@repr()@ built-in function and by string conversions
+(reverse or backward quotes) to compute the string representation of an object.
+\indexii{string}{conversion}
+\indexii{reverse}{quotes}
+\indexii{backward}{quotes}
+\index{back-quotes}
 
 \item[\tt __str__(self)]
 Called by the \verb@str()@ built-in function and by the \verb@print@
diff --git a/Doc/ref/ref4.tex b/Doc/ref/ref4.tex
index c4c4abc..0198117 100644
--- a/Doc/ref/ref4.tex
+++ b/Doc/ref/ref4.tex
@@ -72,9 +72,9 @@
 searched in the list of ``built-in'' names (which is actually the
 global name space of the module \verb@__builtin__@).  When a name is not
 found at all, the \verb@NameError@ exception is raised.%
-\footnote{If the code block contains \verb@exec@ statements or the
-construct \verb@from ... import *@, the semantics of names not
-explicitly mentioned in a \verb@global@ statement change subtly: name
+\footnote{If the code block contains {\tt exec} statements or the
+construct {\tt from \ldots import *}, the semantics of names not
+explicitly mentioned in a {\tt global} statement change subtly: name
 lookup first searches the local name space, then the global one, then
 the built-in one.}
 
diff --git a/Doc/ref/ref5.tex b/Doc/ref/ref5.tex
index a4a7b53..af385aa 100644
--- a/Doc/ref/ref5.tex
+++ b/Doc/ref/ref5.tex
@@ -187,6 +187,9 @@
 
 \subsection{String conversions}
 \indexii{string}{conversion}
+\indexii{reverse}{quotes}
+\indexii{backward}{quotes}
+\index{back-quotes}
 
 A string conversion is a condition list enclosed in reverse (or
 backward) quotes:
@@ -214,6 +217,13 @@
 indirectly.)
 \obindex{recursive}
 
+The built-in function \verb@repr()@ performs exactly the same
+conversion in its argument as enclosing it it reverse quotes does.
+The built-in function \verb@str()@ performs a similar but more
+user-friendly conversion.
+\bifuncindex{repr}
+\bifuncindex{str}
+
 \section{Primaries} \label{primaries}
 \index{primary}
 
diff --git a/Doc/ref/ref6.tex b/Doc/ref/ref6.tex
index 53e6c40..70e1a68 100644
--- a/Doc/ref/ref6.tex
+++ b/Doc/ref/ref6.tex
@@ -166,7 +166,7 @@
 
 If the primary is a mapping (dictionary) object, the subscript must
 have a type compatible with the mapping's key type, and the mapping is
-then asked to to create a key/datum pair which maps the subscript to
+then asked to create a key/datum pair which maps the subscript to
 the assigned object.  This can either replace an existing key/value
 pair with the same key value, or insert a new key/value pair (if no
 key with the same value existed).
@@ -369,7 +369,7 @@
 \verb@continue@ may only occur syntactically nested in a \verb@for@ or
 \verb@while@ loop, but not nested in a function or class definition or
 \verb@try@ statement within that loop.\footnote{Except that it may
-currently occur within an \verb@except@ clause.}
+currently occur within an {\tt except} clause.}
 \stindex{for}
 \stindex{while}
 \indexii{loop}{statement}
diff --git a/Doc/ref/ref7.tex b/Doc/ref/ref7.tex
index b8babfb9..f099ae5 100644
--- a/Doc/ref/ref7.tex
+++ b/Doc/ref/ref7.tex
@@ -299,7 +299,7 @@
 following parameters must also have a default value --- this is a
 syntactic restriction that is not expressed by the grammar.%
 \footnote{Currently this is not checked; instead,
-\verb@def f(a=1,b)@ is interpreted as \verb@def f(a=1,b=None)@.}
+{\tt def f(a=1,b)} is interpreted as {\tt def f(a=1,b=None)}.}
 \indexiii{default}{parameter}{value}
 
 Function call semantics are described in section \ref{calls}.  When a
diff --git a/Doc/ref3.tex b/Doc/ref3.tex
index 8d327e0..67848bb 100644
--- a/Doc/ref3.tex
+++ b/Doc/ref3.tex
@@ -470,7 +470,7 @@
 \verb@open()@ built-in function, and also by \verb@posix.popen()@ and
 the \verb@makefile@ method of socket objects.  \verb@sys.stdin@,
 \verb@sys.stdout@ and \verb@sys.stderr@ are file objects corresponding
-the the interpreter's standard input, output and error streams.
+to the interpreter's standard input, output and error streams.
 See the Python Library Reference for methods of file objects and other
 details.
 \obindex{file}
@@ -498,7 +498,7 @@
 Code objects represent executable code.  The difference between a code
 object and a function object is that the function object contains an
 explicit reference to the function's context (the module in which it
-was defined) which a code object contains no context.  There is no way
+was defined) while a code object contains no context.  There is no way
 to execute a bare code object.
 \obindex{code}
 
@@ -622,8 +622,12 @@
 \code{x,__del__} is only called when its reference count reaches zero.
 
 \item[\tt __repr__(self)]
-Called by the \verb@repr()@ built-in function and by conversions
-(reverse quotes) to compute the string representation of an object.
+Called by the \verb@repr()@ built-in function and by string conversions
+(reverse or backward quotes) to compute the string representation of an object.
+\indexii{string}{conversion}
+\indexii{reverse}{quotes}
+\indexii{backward}{quotes}
+\index{back-quotes}
 
 \item[\tt __str__(self)]
 Called by the \verb@str()@ built-in function and by the \verb@print@
diff --git a/Doc/ref4.tex b/Doc/ref4.tex
index c4c4abc..0198117 100644
--- a/Doc/ref4.tex
+++ b/Doc/ref4.tex
@@ -72,9 +72,9 @@
 searched in the list of ``built-in'' names (which is actually the
 global name space of the module \verb@__builtin__@).  When a name is not
 found at all, the \verb@NameError@ exception is raised.%
-\footnote{If the code block contains \verb@exec@ statements or the
-construct \verb@from ... import *@, the semantics of names not
-explicitly mentioned in a \verb@global@ statement change subtly: name
+\footnote{If the code block contains {\tt exec} statements or the
+construct {\tt from \ldots import *}, the semantics of names not
+explicitly mentioned in a {\tt global} statement change subtly: name
 lookup first searches the local name space, then the global one, then
 the built-in one.}
 
diff --git a/Doc/ref5.tex b/Doc/ref5.tex
index a4a7b53..af385aa 100644
--- a/Doc/ref5.tex
+++ b/Doc/ref5.tex
@@ -187,6 +187,9 @@
 
 \subsection{String conversions}
 \indexii{string}{conversion}
+\indexii{reverse}{quotes}
+\indexii{backward}{quotes}
+\index{back-quotes}
 
 A string conversion is a condition list enclosed in reverse (or
 backward) quotes:
@@ -214,6 +217,13 @@
 indirectly.)
 \obindex{recursive}
 
+The built-in function \verb@repr()@ performs exactly the same
+conversion in its argument as enclosing it it reverse quotes does.
+The built-in function \verb@str()@ performs a similar but more
+user-friendly conversion.
+\bifuncindex{repr}
+\bifuncindex{str}
+
 \section{Primaries} \label{primaries}
 \index{primary}
 
diff --git a/Doc/ref6.tex b/Doc/ref6.tex
index 53e6c40..70e1a68 100644
--- a/Doc/ref6.tex
+++ b/Doc/ref6.tex
@@ -166,7 +166,7 @@
 
 If the primary is a mapping (dictionary) object, the subscript must
 have a type compatible with the mapping's key type, and the mapping is
-then asked to to create a key/datum pair which maps the subscript to
+then asked to create a key/datum pair which maps the subscript to
 the assigned object.  This can either replace an existing key/value
 pair with the same key value, or insert a new key/value pair (if no
 key with the same value existed).
@@ -369,7 +369,7 @@
 \verb@continue@ may only occur syntactically nested in a \verb@for@ or
 \verb@while@ loop, but not nested in a function or class definition or
 \verb@try@ statement within that loop.\footnote{Except that it may
-currently occur within an \verb@except@ clause.}
+currently occur within an {\tt except} clause.}
 \stindex{for}
 \stindex{while}
 \indexii{loop}{statement}
diff --git a/Doc/ref7.tex b/Doc/ref7.tex
index b8babfb9..f099ae5 100644
--- a/Doc/ref7.tex
+++ b/Doc/ref7.tex
@@ -299,7 +299,7 @@
 following parameters must also have a default value --- this is a
 syntactic restriction that is not expressed by the grammar.%
 \footnote{Currently this is not checked; instead,
-\verb@def f(a=1,b)@ is interpreted as \verb@def f(a=1,b=None)@.}
+{\tt def f(a=1,b)} is interpreted as {\tt def f(a=1,b=None)}.}
 \indexiii{default}{parameter}{value}
 
 Function call semantics are described in section \ref{calls}.  When a
diff --git a/Doc/texinputs/copyright.tex b/Doc/texinputs/copyright.tex
index f445c40..d870d3c 100644
--- a/Doc/texinputs/copyright.tex
+++ b/Doc/texinputs/copyright.tex
@@ -1,5 +1,5 @@
-Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
-Amsterdam, The Netherlands.
+Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
+The Netherlands.
 
 \begin{center}
 All Rights Reserved