diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet
index f5dac3b..1a7a464 100644
--- a/books/bookvol10.2.pamphlet
+++ b/books/bookvol10.2.pamphlet
@@ -11944,11 +11944,10 @@ These exports come from \refto{ConvertibleTo}(S:Type):
 ++ Description:
 ++ A collection is a homogeneous aggregate which can built from
 ++ list of members. The operation used to build the aggregate is
-++ generically named \spadfun{construct}. However, each collection
+++ generically named construct. However, each collection
 ++ provides its own special function with the same name as the
-++ data type, except with an initial lower case letter, e.g.
-++ \spadfun{list} for \spadtype{List},
-++ \spadfun{flexibleArray} for \spadtype{FlexibleArray}, and so on.
+++ data type, except with an initial lower case letter, For example,
+++ list for List, flexibleArray for FlexibleArray, and so on.
 
 Collection(S:Type): Category == HomogeneousAggregate(S) with
    construct: List S -> %
@@ -11957,15 +11956,15 @@ Collection(S:Type): Category == HomogeneousAggregate(S) with
      ++ \axiom{[x,y,...,z]$D}, where
      ++ D is the domain. D may be omitted for those of type List.
    find: (S->Boolean, %) -> Union(S, "failed")
-     ++ find(p,u) returns the first x in u such that \axiom{p(x)} is true, 
-     ++ and "failed" otherwise.
+     ++ \axiom{find(p,u)} returns the first x in u such that 
+     ++ \axiom{p(x)} is true, and "failed" otherwise.
    if % has finiteAggregate then
       reduce: ((S,S)->S,%) -> S
-        ++ reduce(f,u) reduces the binary operation f across u. For example,
-        ++ if u is \axiom{[x,y,...,z]} then \axiom{reduce(f,u)} 
-        ++ returns \axiom{f(..f(f(x,y),...),z)}.
-        ++ Note that if u has one element x, \axiom{reduce(f,u)} returns x.
-        ++ Error: if u is empty.
+        ++reduce(f,u) reduces the binary operation f across u. 
+        ++For example, if u is \axiom{[x,y,...,z]} then \axiom{reduce(f,u)} 
+        ++returns \axiom{f(..f(f(x,y),...),z)}.
+        ++Note that if u has one element x, \axiom{reduce(f,u)} returns x.
+        ++Error: if u is empty.
         ++
         ++C )clear all
         ++X reduce(+,[C[i]*x**i for i in 1..5])
diff --git a/buglist b/buglist
index e2d4e9f..099838f 100644
--- a/buglist
+++ b/buglist
@@ -5327,23 +5327,6 @@ typos 40022:
 "\\indented{1}{alphanumeric?(c) tests if \\spad{c} is either a letter or number,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphanumeric? \\spad{c} for \\spad{c} in chars]"
 
 =========================================================================
-typos 40021:
-
->compiling CLAGG.spad to CLAGG.nrlib
- 
---->-->Collection&((reduce (S (Mapping S S S) %))): Improper first word in comments: 
-"\\indented{1}{reduce(f,u) reduces the binary operation \\spad{f} across u. For example,} \\indented{1}{if \\spad{u} is \\axiom{[x,y,...,z]} then \\axiom{reduce(f,u)}} \\indented{1}{returns \\axiom{f(..f(f(x,y),...),z)}.} \\indented{1}{Note that if \\spad{u} has one element \\spad{x,} \\axiom{reduce(f,u)} returns \\spad{x.}} \\indented{1}{Error: if \\spad{u} is empty.} \\blankline \\spad{C} )clear all \\spad{X} reduce(+,[C[i]*x**i for \\spad{i} in 1..5])"
-
---->-->Collection&(constructor): Missing left brace
-"A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However, each collection provides its own special function with the same name as the data type, except with an initial lower case letter, \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List}, \\spadfun{flexibleArray} for \\spadtype{FlexibleArray}, and so on."
-
---->bookvol10.2.pamphlet-->Collection((reduce (S (Mapping S S S) %))): Improper first word in comments: 
-"\\indented{1}{reduce(f,u) reduces the binary operation \\spad{f} across u. For example,} \\indented{1}{if \\spad{u} is \\axiom{[x,y,...,z]} then \\axiom{reduce(f,u)}} \\indented{1}{returns \\axiom{f(..f(f(x,y),...),z)}.} \\indented{1}{Note that if \\spad{u} has one element \\spad{x,} \\axiom{reduce(f,u)} returns \\spad{x.}} \\indented{1}{Error: if \\spad{u} is empty.} \\blankline \\spad{C} )clear all \\spad{X} reduce(+,[C[i]*x**i for \\spad{i} in 1..5])"
-
---->bookvol10.2.pamphlet-->Collection(constructor): Missing left brace
-"A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However, each collection provides its own special function with the same name as the data type, except with an initial lower case letter, \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List}, \\spadfun{flexibleArray} for \\spadtype{FlexibleArray}, and so on."
-
-=========================================================================
 typos 40020:
 
 >compiling COMRING.spad to COMRING.nrlib
@@ -35704,16 +35687,6 @@ Warning: SREGSET;decompose has a duplicate definition in this file
 
 ============================================================================
 
-   finalizing nrlib CLAGG 
-; (DEFUN |Collection| ...) is being compiled.
-;; The variable |Collection;AL| is undefined.
-;; The compiler will assume this variable is a global.
-; (DEFUN |Collection;| ...) is being compiled.
-;; The variable |Collection;CAT| is undefined.
-;; The compiler will assume this variable is a global.
-
-============================================================================
-
    finalizing nrlib COMRING 
 ; (DEFUN |CommutativeRing| ...) is being compiled.
 ;; The variable |CommutativeRing;AL| is undefined.
@@ -35813,18 +35786,6 @@ Warning: SREGSET;decompose has a duplicate definition in this file
 
 ============================================================================
 
-   finalizing nrlib GCDDOM- 
---->/research2/test0819/mnt/fedora5/../../src/algebra/GCDDOM.spad-->GcdDomain&((gcdPolynomial ((SparseUnivariatePolynomial %) (SparseUnivariatePolynomial %) (SparseUnivariatePolynomial %)))): Not documented!!!!
---->/research2/test0819/mnt/fedora5/../../src/algebra/GCDDOM.spad-->GcdDomain&(): Spurious comments: \indented{1}{gcdPolynomial(\spad{p},{}\spad{q}) returns the greatest common divisor (\spad{gcd}) of} univariate polynomials over the domain
-
-============================================================================
-
-   finalizing nrlib GCDDOM 
---->/research2/test0819/mnt/fedora5/../../src/algebra/GCDDOM.spad-->GcdDomain((gcdPolynomial ((SparseUnivariatePolynomial %) (SparseUnivariatePolynomial %) (SparseUnivariatePolynomial %)))): Not documented!!!!
---->/research2/test0819/mnt/fedora5/../../src/algebra/GCDDOM.spad-->GcdDomain(): Spurious comments: \indented{1}{gcdPolynomial(\spad{p},{}\spad{q}) returns the greatest common divisor (\spad{gcd}) of} univariate polynomials over the domain
-
-============================================================================
-
    finalizing nrlib GCDDOM 
 ; (DEFUN |GcdDomain| ...) is being compiled.
 ;; The variable |GcdDomain;AL| is undefined.
@@ -40558,3 +40519,21 @@ typos 40019:
 --->bookvol10.3.pamphlet-->DoubleFloat((integerDecode ((List (Integer)) %))): Improper first word in comments: 
 "\\indented{1}{integerDecode(x) returns the multiple values of the\\space{2}common} \\indented{1}{lisp integer-decode-float function.} \\indented{1}{See Steele, ISBN 0-13-152414-3 p354. This function can be used} \\indented{1}{to ensure that the results are bit-exact and do not depend on} \\indented{1}{the binary-to-decimal conversions.} \\blankline \\spad{X} \\spad{a:DFLOAT:=-1.0/3.0} \\spad{X} integerDecode a"
 
+fixed 20130315.09.tpd.patch
+=========================================================================
+typos 40021:
+
+>compiling CLAGG.spad to CLAGG.nrlib
+ 
+--->-->Collection&((reduce (S (Mapping S S S) %))): Improper first word in comments: 
+"\\indented{1}{reduce(f,u) reduces the binary operation \\spad{f} across u. For example,} \\indented{1}{if \\spad{u} is \\axiom{[x,y,...,z]} then \\axiom{reduce(f,u)}} \\indented{1}{returns \\axiom{f(..f(f(x,y),...),z)}.} \\indented{1}{Note that if \\spad{u} has one element \\spad{x,} \\axiom{reduce(f,u)} returns \\spad{x.}} \\indented{1}{Error: if \\spad{u} is empty.} \\blankline \\spad{C} )clear all \\spad{X} reduce(+,[C[i]*x**i for \\spad{i} in 1..5])"
+
+--->-->Collection&(constructor): Missing left brace
+"A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However, each collection provides its own special function with the same name as the data type, except with an initial lower case letter, \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List}, \\spadfun{flexibleArray} for \\spadtype{FlexibleArray}, and so on."
+
+--->bookvol10.2.pamphlet-->Collection((reduce (S (Mapping S S S) %))): Improper first word in comments: 
+"\\indented{1}{reduce(f,u) reduces the binary operation \\spad{f} across u. For example,} \\indented{1}{if \\spad{u} is \\axiom{[x,y,...,z]} then \\axiom{reduce(f,u)}} \\indented{1}{returns \\axiom{f(..f(f(x,y),...),z)}.} \\indented{1}{Note that if \\spad{u} has one element \\spad{x,} \\axiom{reduce(f,u)} returns \\spad{x.}} \\indented{1}{Error: if \\spad{u} is empty.} \\blankline \\spad{C} )clear all \\spad{X} reduce(+,[C[i]*x**i for \\spad{i} in 1..5])"
+
+--->bookvol10.2.pamphlet-->Collection(constructor): Missing left brace
+"A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However, each collection provides its own special function with the same name as the data type, except with an initial lower case letter, \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List}, \\spadfun{flexibleArray} for \\spadtype{FlexibleArray}, and so on."
+
diff --git a/changelog b/changelog
index c5a7c79..bb6699f 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20130315 tpd src/axiom-website/patches.html 20130315.09.tpd.patch
+20130315 tpd buglist CLAGG fixed 40021
+20130315 tpd books/bookvol10.2 CLAGG fixed 40021
 20130315 tpd src/axiom-website/patches.html 20130315.08.tpd.patch
 20130315 tpd buglist DFLOAT fixed 40019
 20130315 tpd books/bookvol10.3 DFLOAT fixed 40019
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index abf2912..5d13b3f 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4067,5 +4067,7 @@ changlog. fix jzc email address
 books/bookvol0 add linebreak on p988
 <a href="patches/20130315.08.tpd.patch">20130315.08.tpd.patch</a>
 books/bookvol10.3 DFLOAT fixed 40019
+<a href="patches/20130315.09.tpd.patch">20130315.09.tpd.patch</a>
+books/bookvol10.2 CLAGG fixed 40021
  </body>
 </html>
