diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index 73bc145..ab4b03c 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -355,6 +355,18 @@
 \end{verbatim}\ecode
 \end{funcdesc}
 
+\begin{funcdesc}{vars}{}
+Without arguments, return a dictionary corresponding to the current
+local symbol table.  With a module, class or class instance object as
+argument (or anything else that has a \code{__dict__} attribute),
+returns a dictionary corresponding to the object's symbol table.
+The returned dictionary should not be modified: the effects on the
+corresponding symbol table are undefined.%
+\footnote{In the current implementation, local variable bindings
+cannot normally be affected this way, but variables retrieved from
+other scopes can be.  This may change.}
+\end{funcdesc}
+
 \begin{funcdesc}{xrange}{start\, end\, step}
 This function is very similar to \code{range()}, but returns an
 ``xrange object'' instead of a list.  This is an opaque sequence type
diff --git a/Doc/lib/libppath.tex b/Doc/lib/libppath.tex
index e6430be..731d344 100644
--- a/Doc/lib/libppath.tex
+++ b/Doc/lib/libppath.tex
@@ -34,6 +34,14 @@
 path does not begin with a tilde, the path is returned unchanged.
 \end{funcdesc}
 
+\begin{funcdesc}{expandvars}{p}
+Return the argument with environment variables expanded.  Substrings
+of the form \samp{\$\var{name}} or \samp{\$\{\var{name}\}} are
+replaced by the value of environment variable \var{name}.  Malformed
+variable names and references to non-existing variables are left
+unchanged.
+\end{funcdesc}
+
 \begin{funcdesc}{isabs}{p}
 Return true if \var{p} is an absolute pathname (begins with a slash).
 \end{funcdesc}
diff --git a/Doc/lib/libtypes.tex b/Doc/lib/libtypes.tex
index be8d990..8c77e49 100644
--- a/Doc/lib/libtypes.tex
+++ b/Doc/lib/libtypes.tex
@@ -300,7 +300,9 @@
 Width and precision may be a * to specify that an integer argument
 specifies the actual width or precision.  The flag characters -, +,
 blank, \# and 0 are understood.  The size specifiers h, l or L may be
-present but are ignored.  The ANSI features \code{\%p} and \code{\%n}
+present but are ignored.  The \code{\%s} conversion takes any Python
+object and converts it to a string using \code{str()} before
+formatting it.  The ANSI features \code{\%p} and \code{\%n}
 are not supported.  Since Python strings have an explicit length,
 \code{\%s} conversions don't assume that \code{'\\0'} is the end of
 the string.
@@ -309,6 +311,19 @@
 \code{\%f} conversions for huge numbers are replaced by
 \code{\%g} conversions.  All other errors raise exceptions.
 
+If the right argument is a dictionary (or any kind of mapping), then
+the formats in the string must have a parenthesized key into that
+dictionary inserted immediately after the \code{\%} character, and
+each format formats the corresponding entry from the mapping.  E.g.
+\begin{verbatim}
+    >>> count = 2
+    >>> language = 'Python'
+    >>> print '%(language)s has %(count)03d quote types.' % vars()
+    Python has 002 quote types.
+    >>> 
+\end{verbatim}
+In this case no * specifiers may occur in a format.
+
 Additional string operations are defined in standard module
 \code{string} and in built-in module \code{regex}.
 \index{string}
