diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index f86ff21..35010f3 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -17841,81 +17841,79 @@ o )show Character
 
 Character: OrderedFinite() with
   ord: % -> Integer
-    ++ ord(c) provides an integral code corresponding to the
-    ++ character c.  It is always true that \spad{char ord c = c}.
+    ++ord(c) provides an integral code corresponding to the
+    ++character c.  It is always true that \spad{char ord c = c}.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [ord c for c in chars]
   char: Integer  -> %
-    ++ char(i) provides a character corresponding to the integer
-    ++ code i. It is always true that \spad{ord char i = i}.
+    ++char(i) provides a character corresponding to the integer
+    ++code i. It is always true that \spad{ord char i = i}.
     ++
     ++X [char c for c in [97,65,88,56,43]]
   char: String   -> %
-    ++ char(s) provides a character from a string s of length one.
+    ++char(s) provides a character from a string s of length one.
     ++
     ++X [char c for c in ["a","A","X","8","+"]]
   space: () -> %
-    ++ space() provides the blank character.
+    ++space() provides the blank character.
     ++
     ++X space()
   quote: () -> %
-    ++ quote() provides the string quote character, \spad{"}.
+    ++quote() provides the string quote character, \spad{"}.
     ++
     ++X quote()
   escape: () -> %
-    ++ escape() provides the escape character, \spad{_}, which
-    ++ is used to allow quotes and other characters within
-    ++ strings.
+    ++escape() provides the escape character, \spad{_}, which
+    ++is used to allow quotes and other characters within strings.
     ++
     ++X escape()
   upperCase: % -> %
-    ++ upperCase(c) converts a lower case letter to the corresponding
-    ++ upper case letter.  If c is not a lower case letter, then
-    ++ it is returned unchanged.
+    ++upperCase(c) converts a lower case letter to the corresponding
+    ++upper case letter.  If c is not a lower case letter, then
+    ++it is returned unchanged.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [upperCase c for c in chars]
   lowerCase: % -> %
-    ++ lowerCase(c) converts an upper case letter to the corresponding
-    ++ lower case letter.  If c is not an upper case letter, then
-    ++ it is returned unchanged.
+    ++lowerCase(c) converts an upper case letter to the corresponding
+    ++lower case letter.  If c is not an upper case letter, then
+    ++it is returned unchanged.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [lowerCase c for c in chars]
   digit?: % -> Boolean
-    ++ digit?(c) tests if c is a digit character,
-    ++ i.e. one of 0..9.
+    ++digit?(c) tests if c is a digit character, for example, one of 0..9.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [digit? c for c in chars]
   hexDigit?: % -> Boolean
-    ++ hexDigit?(c) tests if c is a hexadecimal numeral,
-    ++ i.e. one of 0..9, a..f or A..F.
+    ++hexDigit?(c) tests if c is a hexadecimal numeral,
+    ++for example, one of 0..9, a..f or A..F.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [hexDigit? c for c in chars]
   alphabetic?: % -> Boolean
-    ++ alphabetic?(c) tests if c is a letter,
-    ++ i.e. one of a..z or A..Z.
+    ++alphabetic?(c) tests if c is a letter,
+    ++for example, one of a..z or A..Z.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [alphabetic? c for c in chars]
   upperCase?: % -> Boolean
-    ++ upperCase?(c) tests if c is an upper case letter,
-    ++ i.e. one of A..Z.
+    ++upperCase?(c) tests if c is an upper case letter,
+    ++for example, one of A..Z.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [upperCase? c for c in chars]
   lowerCase?: % -> Boolean
-    ++ lowerCase?(c) tests if c is an lower case letter,
-    ++ i.e. one of a..z.
+    ++lowerCase?(c) tests if c is an lower case letter,
+    ++for example, one of a..z.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [lowerCase? c for c in chars]
   alphanumeric?: % -> Boolean
-    ++ alphanumeric?(c) tests if c is either a letter or number,
-    ++ i.e. one of 0..9, a..z or A..Z.
+    ++alphanumeric?(c) tests if c is either a letter or number,
+    ++for example, one of 0..9, a..z or A..Z.
     ++
     ++X chars := [char "a", char "A", char "X", char "8", char "+"]
     ++X [alphanumeric? c for c in chars]
diff --git a/buglist b/buglist
index 099838f..f68c18d 100644
--- a/buglist
+++ b/buglist
@@ -5274,59 +5274,6 @@ typos 40023:
 "This is an \\spadtype{AbelianMonoid} with the cancellation property, \\spadignore{i.e.} \\tab{5}\\spad{ a+b = a+c \\spad{=>} \\spad{b=c} }.\\br This is formalised by the partial subtraction operator, which satisfies the Axioms\\br \\tab{5}\\spad{c = a+b \\spad{<=>} \\spad{c-b} = a}"
 
 =========================================================================
-typos 40022:
-
->compiling CHAR.spad to CHAR.nrlib
-
---->bookvol10.3.pamphlet-->Character((ord ((Integer) %))): Improper first word in comments: 
-"\\indented{1}{ord(c) provides an integral code corresponding to the} \\indented{1}{character c.\\space{2}It is always \\spad{true} that \\spad{char ord \\spad{c} = c}.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [ord \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((char (% (Integer)))): Improper first word in comments: 
-"\\indented{1}{char(i) provides a character corresponding to the integer} \\indented{1}{code i. It is always \\spad{true} that \\spad{ord char \\spad{i} = i}.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [97,65,88,56,43]]"
-
---->bookvol10.3.pamphlet-->Character((char (% (String)))): Improper first word in comments: 
-"\\indented{1}{char(s) provides a character from a string \\spad{s} of length one.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [\"a\",\"A\",\"X\",\"8\",\"+\"]]"
-
---->bookvol10.3.pamphlet-->Character((space (%))): Improper first word in comments: 
-"\\indented{1}{space() provides the blank character.} \\blankline \\spad{X} space()"
-
---->bookvol10.3.pamphlet-->Character((quote (%))): Improper first word in comments: 
-"\\indented{1}{quote() provides the string quote character, \\spad{\"}.} \\blankline \\spad{X} quote()"
-
---->bookvol10.3.pamphlet-->Character((escape (%))): Improper first word in comments: 
-"\\indented{1}{escape() provides the escape character, \\spad{_}, which} \\indented{1}{is used to allow quotes and other characters within} \\indented{1}{strings.} \\blankline \\spad{X} escape()"
-
---->bookvol10.3.pamphlet-->Character((upperCase (% %))): Improper first word in comments: 
-"\\indented{1}{upperCase(c) converts a lower case letter to the corresponding} \\indented{1}{upper case letter.\\space{2}If \\spad{c} is not a lower case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((lowerCase (% %))): Improper first word in comments: 
-"\\indented{1}{lowerCase(c) converts an upper case letter to the corresponding} \\indented{1}{lower case letter.\\space{2}If \\spad{c} is not an upper case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Improper first word in comments: 
---->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Missing left brace
-"\\indented{1}{digit?(c) tests if \\spad{c} is a digit character,} \\indented{1}{\\spadignore{i.e.} one of 0..9.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [digit? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Improper first word in comments: 
---->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Missing left brace
-"\\indented{1}{hexDigit?(c) tests if \\spad{c} is a hexadecimal numeral,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..f or A..F.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [hexDigit? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Improper first word in comments: 
---->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Missing left brace
-"\\indented{1}{alphabetic?(c) tests if \\spad{c} is a letter,} \\indented{1}{\\spadignore{i.e.} one of a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphabetic? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Improper first word in comments: 
---->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Missing left brace
-"\\indented{1}{upperCase?(c) tests if \\spad{c} is an upper case letter,} \\indented{1}{\\spadignore{i.e.} one of A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Improper first word in comments: 
---->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Missing left brace
-"\\indented{1}{lowerCase?(c) tests if \\spad{c} is an lower case letter,} \\indented{1}{\\spadignore{i.e.} one of a..z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase? \\spad{c} for \\spad{c} in chars]"
-
---->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Improper first word in comments: 
---->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Missing left brace
-"\\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 40020:
 
 >compiling COMRING.spad to COMRING.nrlib
@@ -40537,3 +40484,57 @@ typos 40021:
 --->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."
 
+fixed 20130316.01.tpd.patch
+=========================================================================
+typos 40022:
+
+>compiling CHAR.spad to CHAR.nrlib
+
+--->bookvol10.3.pamphlet-->Character((ord ((Integer) %))): Improper first word in comments: 
+"\\indented{1}{ord(c) provides an integral code corresponding to the} \\indented{1}{character c.\\space{2}It is always \\spad{true} that \\spad{char ord \\spad{c} = c}.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [ord \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((char (% (Integer)))): Improper first word in comments: 
+"\\indented{1}{char(i) provides a character corresponding to the integer} \\indented{1}{code i. It is always \\spad{true} that \\spad{ord char \\spad{i} = i}.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [97,65,88,56,43]]"
+
+--->bookvol10.3.pamphlet-->Character((char (% (String)))): Improper first word in comments: 
+"\\indented{1}{char(s) provides a character from a string \\spad{s} of length one.} \\blankline \\spad{X} [char \\spad{c} for \\spad{c} in [\"a\",\"A\",\"X\",\"8\",\"+\"]]"
+
+--->bookvol10.3.pamphlet-->Character((space (%))): Improper first word in comments: 
+"\\indented{1}{space() provides the blank character.} \\blankline \\spad{X} space()"
+
+--->bookvol10.3.pamphlet-->Character((quote (%))): Improper first word in comments: 
+"\\indented{1}{quote() provides the string quote character, \\spad{\"}.} \\blankline \\spad{X} quote()"
+
+--->bookvol10.3.pamphlet-->Character((escape (%))): Improper first word in comments: 
+"\\indented{1}{escape() provides the escape character, \\spad{_}, which} \\indented{1}{is used to allow quotes and other characters within} \\indented{1}{strings.} \\blankline \\spad{X} escape()"
+
+--->bookvol10.3.pamphlet-->Character((upperCase (% %))): Improper first word in comments: 
+"\\indented{1}{upperCase(c) converts a lower case letter to the corresponding} \\indented{1}{upper case letter.\\space{2}If \\spad{c} is not a lower case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((lowerCase (% %))): Improper first word in comments: 
+"\\indented{1}{lowerCase(c) converts an upper case letter to the corresponding} \\indented{1}{lower case letter.\\space{2}If \\spad{c} is not an upper case letter, then} \\indented{1}{it is returned unchanged.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Improper first word in comments: 
+--->bookvol10.3.pamphlet-->Character((digit? ((Boolean) %))): Missing left brace
+"\\indented{1}{digit?(c) tests if \\spad{c} is a digit character,} \\indented{1}{\\spadignore{i.e.} one of 0..9.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [digit? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Improper first word in comments: 
+--->bookvol10.3.pamphlet-->Character((hexDigit? ((Boolean) %))): Missing left brace
+"\\indented{1}{hexDigit?(c) tests if \\spad{c} is a hexadecimal numeral,} \\indented{1}{\\spadignore{i.e.} one of 0..9, a..f or A..F.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [hexDigit? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Improper first word in comments: 
+--->bookvol10.3.pamphlet-->Character((alphabetic? ((Boolean) %))): Missing left brace
+"\\indented{1}{alphabetic?(c) tests if \\spad{c} is a letter,} \\indented{1}{\\spadignore{i.e.} one of a..z or A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [alphabetic? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Improper first word in comments: 
+--->bookvol10.3.pamphlet-->Character((upperCase? ((Boolean) %))): Missing left brace
+"\\indented{1}{upperCase?(c) tests if \\spad{c} is an upper case letter,} \\indented{1}{\\spadignore{i.e.} one of A..Z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [upperCase? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Improper first word in comments: 
+--->bookvol10.3.pamphlet-->Character((lowerCase? ((Boolean) %))): Missing left brace
+"\\indented{1}{lowerCase?(c) tests if \\spad{c} is an lower case letter,} \\indented{1}{\\spadignore{i.e.} one of a..z.} \\blankline \\spad{X} chars \\spad{:=} [char \"a\", char \"A\", char \"X\", char \"8\", char \"+\"] \\spad{X} [lowerCase? \\spad{c} for \\spad{c} in chars]"
+
+--->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Improper first word in comments: 
+--->bookvol10.3.pamphlet-->Character((alphanumeric? ((Boolean) %))): Missing left brace
+"\\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]"
+
diff --git a/changelog b/changelog
index bb6699f..a1ee150 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20130316 tpd src/axiom-website/patches.html 20130316.01.tpd.patch
+20130316 tpd buglist CHAR fix 40022
+20130316 tpd books/bookvol10.3 CHAR fix 40022
 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
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 5d13b3f..c734287 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4069,5 +4069,7 @@ books/bookvol0 add linebreak on p988
 books/bookvol10.3 DFLOAT fixed 40019
 <a href="patches/20130315.09.tpd.patch">20130315.09.tpd.patch</a>
 books/bookvol10.2 CLAGG fixed 40021
+<a href="patches/20130316.01.tpd.patch">20130316.01.tpd.patch</a>
+books/bookvol10.3 CHAR fix 40022
  </body>
 </html>
