diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index e99143e..3dc2d2b 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -68064,33 +68064,41 @@ p1:(x::V+y::V)$H^2
 --S 18 of 24
 newpoly(p1)
 --R 
---R   There are no library operations named listOfTerms 
---R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R      
---R      Perhaps you should use "@" to indicate the required return type, 
---R      or "$" to specify which version of the function you need.
---R   AXIOM will attempt to step through and interpret the code.
 --R   Compiling function newpoly with type XDistributedPolynomial(
 --R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
 --R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
 --R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
 --R      Integer,OrderedVariableList [a,b])) 
---R   There are no library operations named listOfTerms 
+--R   There are no library operations named subs 
+--R      Use HyperDoc Browse or issue
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--R   AXIOM will attempt to step through and interpret the code.
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
+--R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
+--R      Fraction Integer,OrderedVariableList [a,b])) -> 
+--R      XDistributedPolynomial(OrderedVariableList [x,y],
+--R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
+--R      [a,b])) 
+--R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
 --R 
 --RDaly Bug
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -68108,33 +68116,36 @@ p2:=(x::V+y::V)$H^3
 --S 20 of 24
 pNew:=newpoly(p2)
 --R 
---R   There are no library operations named listOfTerms 
+--R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
 --R   AXIOM will attempt to step through and interpret the code.
---R   Compiling function newpoly with type XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) 
---R   There are no library operations named listOfTerms 
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
+--R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
+--R      Fraction Integer,OrderedVariableList [a,b])) -> 
+--R      XDistributedPolynomial(OrderedVariableList [x,y],
+--R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
+--R      [a,b])) 
+--R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
 --R 
 --RDaly Bug
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -68146,33 +68157,36 @@ while pNew ~= p2 repeat
   p2 := pNew
   pNew := newpoly(p2)
 --R 
---R   There are no library operations named listOfTerms 
+--R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
 --R   AXIOM will attempt to step through and interpret the code.
---R   Compiling function newpoly with type XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
---R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
---R      Integer,OrderedVariableList [a,b])) 
---R   There are no library operations named listOfTerms 
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
+--R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
+--R      Fraction Integer,OrderedVariableList [a,b])) -> 
+--R      XDistributedPolynomial(OrderedVariableList [x,y],
+--R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
+--R      [a,b])) 
+--R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
 --R 
 --RDaly Bug
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
@@ -68207,18 +68221,6 @@ reduce(p:H):H ==
 --S 24 of 24
 reduce(p2)
 --R 
---R   There are no library operations named listOfTerms 
---R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
---R      
---R      Perhaps you should use "@" to indicate the required return type, 
---R      or "$" to specify which version of the function you need.
---R   AXIOM will attempt to step through and interpret the code.
 --R   Compiling function newpoly with type XDistributedPolynomial(
 --R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
 --R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
@@ -68229,16 +68231,36 @@ reduce(p2)
 --R      Integer,OrderedVariableList [a,b])) -> XDistributedPolynomial(
 --R      OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction 
 --R      Integer,OrderedVariableList [a,b])) 
---R   There are no library operations named listOfTerms 
+--R   There are no library operations named subs 
 --R      Use HyperDoc Browse or issue
---R                            )what op listOfTerms
---R      to learn if there is any operation containing " listOfTerms " in 
---R      its name.
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--R   AXIOM will attempt to step through and interpret the code.
+--R   Compiling function newterm with type Record(k: OrderedFreeMonoid 
+--R      OrderedVariableList [x,y],c: SparseMultivariatePolynomial(
+--R      Fraction Integer,OrderedVariableList [a,b])) -> 
+--R      XDistributedPolynomial(OrderedVariableList [x,y],
+--R      SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList
+--R      [a,b])) 
+--R   There are no library operations named subs 
+--R      Use HyperDoc Browse or issue
+--R                                )what op subs
+--R      to learn if there is any operation containing " subs " in its 
+--R      name.
 --R 
 --RDaly Bug
---R   Cannot find a definition or applicable library operation named 
---R      listOfTerms with argument type(s) 
---RXDistributedPolynomial(OrderedVariableList [x,y],SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R   Cannot find a definition or applicable library operation named subs 
+--R      with argument type(s) 
+--RRecord(k: OrderedFreeMonoid OrderedVariableList [x,y],c: SparseMultivariatePolynomial(Fraction Integer,OrderedVariableList [a,b]))
+--R                                 Variable k
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
diff --git a/changelog b/changelog
index 8ec5951..f4c17d7 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20091103 tpd src/axiom-website/patches.html 20091103.03.tpd.patch
+20091103 tpd books/bookvol10.3 fix OrderedFreeMonoid.regress
 20091103 tpd src/axiom-website/patches.html 20091103.02.tpd.patch
 20091103 tpd books/bookvol10.4 Examples, Help, Regress RationalFunctionSum
 20091103 tpd src/algebra/Makefile RationalFunctionSum
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 8e815b8..7c24163 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2219,5 +2219,7 @@ src/input/solveperf.input added<br/>
 rename ListOfTerms to listOfTerms<br/>
 <a href="patches/20091103.02.tpd.patch">20091103.02.tpd.patch</a>
 books/bookvol10.4 Examples, Help, Regress RationalFunctionSum<br/>
+<a href="patches/20091103.03.tpd.patch">20091103.03.tpd.patch</a>
+books/bookvol10.3 fix OrderedFreeMonoid.regress<br/>
  </body>
 </html>
