Nits from a review of the documentation update.
diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index 5aa0c18..61880ae 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -1063,7 +1063,7 @@
 
   \versionchanged[Formerly, \function{zip()} required at least one argument
   and \code{zip()} raised a \exception{TypeError} instead of returning
-  \code{[]}]{2.4} 
+  an empty list.]{2.4} 
 \end{funcdesc}
 
 
diff --git a/Doc/lib/libsets.tex b/Doc/lib/libsets.tex
index 5f98967..6d49b16 100644
--- a/Doc/lib/libsets.tex
+++ b/Doc/lib/libsets.tex
@@ -91,7 +91,7 @@
          {new set with a shallow copy of \var{s}}
 \end{tableiii}
 
-Note, this non-operator versions of \method{union()},
+Note, the non-operator versions of \method{union()},
 \method{intersection()}, \method{difference()}, and
 \method{symmetric_difference()} will accept any iterable as an argument.
 In contrast, their operator based counterparts require their arguments to
@@ -158,10 +158,7 @@
          {remove all elements from set \var{s}}
 \end{tableiii}
 
-\versionchanged[Earlier versions had an \method{update()} method; use
-                \method{union_update()} instead]{2.3.1}
-
-Note, this non-operator versions of \method{union_update()},
+Note, the non-operator versions of \method{union_update()},
 \method{intersection_update()}, \method{difference_update()}, and
 \method{symmetric_difference_update()} will accept any iterable as
 an argument.
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex
index ce941f3..56dd395 100644
--- a/Doc/tut/tut.tex
+++ b/Doc/tut/tut.tex
@@ -2161,11 +2161,11 @@
 \section{Looping Techniques \label{loopidioms}}
 
 When looping through dictionaries, the key and corresponding value can
-be retrieved at the same time using the \method{items()} method.
+be retrieved at the same time using the \method{iteritems()} method.
 
 \begin{verbatim}
 >>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
->>> for k, v in knights.items():
+>>> for k, v in knights.iteritems():
 ...     print k, v
 ...
 gallahad the pure
@@ -3957,7 +3957,7 @@
 
 \section{Random Remarks \label{remarks}}
 
-[These should perhaps be placed more carefully...]
+% [These should perhaps be placed more carefully...]
 
 
 Data attributes override method attributes with the same name; to
diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex
index 0f5e546..2e573b5 100644
--- a/Doc/whatsnew/whatsnew24.tex
+++ b/Doc/whatsnew/whatsnew24.tex
@@ -12,7 +12,7 @@
 \tableofcontents
 
 This article explains the new features in Python 2.4.  No release date
-for Python 2.4 has been set; expect that this will happen in 2004.
+for Python 2.4 has been set; expect that this will happen mid-2004.
 
 While Python 2.3 was primarily a library development release, Python
 2.4 may extend the core language and interpreter in
@@ -42,6 +42,7 @@
 set(['a', 'r', 'b', 'c', 'd'])
 >>> ''.join(a)                          # convert back into a string
 'arbcd'
+
 >>> b = set('alacazam')                 # form a second set
 >>> a - b                               # letters in a but not in b
 set(['r', 'd', 'b'])
@@ -51,6 +52,7 @@
 set(['a', 'c'])
 >>> a ^ b                               # letters in a or b but not both
 set(['r', 'd', 'b', 'm', 'z', 'l'])
+
 >>> a.add('z')                          # add a new element
 >>> a.update('wxy')                     # add multiple new elements
 >>> a
@@ -115,6 +117,11 @@
 language.
 
 \begin{itemize}
+
+\item The string methods, \method{ljust()}, \method{rjust()}, and
+\method{center()} now take a optional argument for specifying a
+fill character other than a space.
+
 \item The \method{sort()} method of lists gained three keyword
 arguments, \var{cmp}, \var{key}, and \var{reverse}.  These arguments
 make some common usages of \method{sort()} simpler.  All are optional.
@@ -185,10 +192,12 @@
 [11, 12, 13, 14, 15, 16, 17, 18, 19]
 >>> L = [9,7,8,3,2,4,1,6,5]         # original is left unchanged
 [9,7,8,3,2,4,1,6,5]   
+
 >>> list.sorted('Monte Python')     # any iterable may be an input
 [' ', 'M', 'P', 'e', 'h', 'n', 'n', 'o', 'o', 't', 't', 'y']
+
+>>> # List the contents of a dict sorted by key values
 >>> colormap = dict(red=1, blue=2, green=3, black=4, yellow=5)
->>> # Lists the contents of the dict sorted by key values
 >>> for k, v in list.sorted(colormap.iteritems()):
 ...     print k, v
 ...
@@ -202,7 +211,7 @@
 
 
 \item The \function{zip()} built-in function and \function{itertools.izip()}
-  now return an empty list instead of raising a \exception{TypeError}
+  now returns an empty list instead of raising a \exception{TypeError}
   exception if called with no arguments.  This makes the functions more
   suitable for use with variable length argument lists:
 
@@ -297,6 +306,12 @@
   objN)}, constructs tuples from a variable length argument list of
   Python objects.
 
+  \item A new function, \function{PyDict_Contains(d, k)}, implements
+  fast dictionary lookups without masking exceptions raised during
+  the loop-up process (compare with \function{PySequence_Contains()}
+  which is slower or \function{PyMapping_HasKey()} which clears all
+  exceptions).
+
 \end{itemize}