diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index c38e30a..26b3a49 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -136685,8 +136685,8 @@ SmithNormalForm(R,Row,Col,M) : Exports == Implementation where
         for j in 2..m1 repeat
           j0:=j
           while zero?(tjj:=t1(j,j0)) repeat j0:=j0+1
-          u(i,j) :=((mm(i,j0) - ("+"/[u(i,k) * t1(k,j0) for k in 1..(j-1)])) exquo
-                    tjj) :: R
+          u(i,j) :=
+           ((mm(i,j0)-("+"/[u(i,k)*t1(k,j0) for k in 1..(j-1)])) exquo tjj)::R
       u1:M2:= map(x +-> x::QF,u)$MATCAT1
       [t,map(retract$QF,(inverse u1)::M2)$MATCAT2]
 
@@ -137134,67 +137134,70 @@ SquareFreeQuasiComponentPackage(R,E,V,P,TS): Exports == Implementation where
 
   Exports ==  with
      startTable!: (S,S,S) -> Void
-         ++ \axiom{startTableGcd!(s1,s2,s3)} 
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{startTableGcd!(s1,s2,s3)} 
+      ++ is an internal subroutine, exported only for developement.
      stopTable!: () -> Void
-         ++ \axiom{stopTableGcd!()} 
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{stopTableGcd!()} 
+      ++ is an internal subroutine, exported only for developement.
      supDimElseRittWu?: (TS,TS) -> Boolean
-         ++ \axiom{supDimElseRittWu(ts,us)} returns true iff \axiom{ts}
-         ++ has less elements than \axiom{us} otherwise if \axiom{ts}
-         ++ has higher rank than \axiom{us} w.r.t. Riit and Wu ordering.
+      ++ \axiom{supDimElseRittWu(ts,us)} returns true iff \axiom{ts}
+      ++ has less elements than \axiom{us} otherwise if \axiom{ts}
+      ++ has higher rank than \axiom{us} w.r.t. Riit and Wu ordering.
      algebraicSort: Split -> Split
-         ++ \axiom{algebraicSort(lts)} sorts \axiom{lts} w.r.t 
-         ++ \axiomOpFrom{supDimElseRittWu}{QuasiComponentPackage}.
+      ++ \axiom{algebraicSort(lts)} sorts \axiom{lts} w.r.t 
+      ++ \axiomOpFrom{supDimElseRittWu}{QuasiComponentPackage}.
      moreAlgebraic?: (TS,TS) -> Boolean
-         ++ \axiom{moreAlgebraic?(ts,us)} returns false iff \axiom{ts}
-         ++ and \axiom{us} are both empty, or \axiom{ts}
-         ++ has less elements than \axiom{us}, or some variable is
-         ++ algebraic w.r.t. \axiom{us} and is not w.r.t. \axiom{ts}.
+      ++ \axiom{moreAlgebraic?(ts,us)} returns false iff \axiom{ts}
+      ++ and \axiom{us} are both empty, or \axiom{ts}
+      ++ has less elements than \axiom{us}, or some variable is
+      ++ algebraic w.r.t. \axiom{us} and is not w.r.t. \axiom{ts}.
      subTriSet?: (TS,TS) -> Boolean
-         ++ \axiom{subTriSet?(ts,us)} returns true iff \axiom{ts} is
-         ++ a sub-set of \axiom{us}.
+      ++ \axiom{subTriSet?(ts,us)} returns true iff \axiom{ts} is
+      ++ a sub-set of \axiom{us}.
      subPolSet?: (LP, LP) -> Boolean
-         ++ \axiom{subPolSet?(lp1,lp2)} returns true iff \axiom{lp1} is
-         ++ a sub-set of \axiom{lp2}.
+      ++ \axiom{subPolSet?(lp1,lp2)} returns true iff \axiom{lp1} is
+      ++ a sub-set of \axiom{lp2}.
      internalSubPolSet?: (LP, LP) -> Boolean
-         ++ \axiom{internalSubPolSet?(lp1,lp2)} returns true iff \axiom{lp1} is
-         ++ a sub-set of \axiom{lp2} assuming that these lists are sorted
-         ++ increasingly w.r.t. \axiomOpFrom{infRittWu?}{RecursivePolynomialCategory}.
+      ++ \axiom{internalSubPolSet?(lp1,lp2)} returns true iff \axiom{lp1} is
+      ++ a sub-set of \axiom{lp2} assuming that these lists are sorted
+      ++ increasingly w.r.t. 
+      ++ \axiomOpFrom{infRittWu?}{RecursivePolynomialCategory}.
      internalInfRittWu?: (LP, LP) -> Boolean
-         ++ \axiom{internalInfRittWu?(lp1,lp2)}
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{internalInfRittWu?(lp1,lp2)}
+      ++ is an internal subroutine, exported only for developement.
      infRittWu?: (LP, LP) -> Boolean
-         ++ \axiom{infRittWu?(lp1,lp2)}
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{infRittWu?(lp1,lp2)}
+      ++ is an internal subroutine, exported only for developement.
      internalSubQuasiComponent?: (TS,TS) -> Union(Boolean,"failed")
-         ++ \axiom{internalSubQuasiComponent?(ts,us)} returns a boolean \spad{b} value
-         ++ if the fact the regular zero set of \axiom{us} contains that of
-         ++ \axiom{ts} can be decided (and in that case \axiom{b} gives this 
-         ++ inclusion) otherwise returns \axiom{"failed"}.
+      ++ \axiom{internalSubQuasiComponent?(ts,us)} returns a boolean 
+      ++ \spad{b} value if the fact the regular zero set of \axiom{us} 
+      ++ contains that of \axiom{ts} can be decided (and in that case 
+      ++ \axiom{b} gives this inclusion) otherwise returns \axiom{"failed"}.
      subQuasiComponent?: (TS,TS) -> Boolean
-         ++ \axiom{subQuasiComponent?(ts,us)} returns true iff 
-         ++ \axiomOpFrom{internalSubQuasiComponent?(ts,us)}{QuasiComponentPackage}
-         ++ returs true.
+      ++ \axiom{subQuasiComponent?(ts,us)} returns true iff 
+      ++ \axiomOpFrom{internalSubQuasiComponent?(ts,us)}{QuasiComponentPackage}
+      ++ returns true.
      subQuasiComponent?: (TS,Split) -> Boolean
-         ++ \axiom{subQuasiComponent?(ts,lus)} returns true iff
-         ++ \axiom{subQuasiComponent?(ts,us)} holds for one \spad{us} in \spad{lus}.
+      ++ \axiom{subQuasiComponent?(ts,lus)} returns true iff
+      ++ \axiom{subQuasiComponent?(ts,us)} holds for one 
+      ++ \spad{us} in \spad{lus}.
      removeSuperfluousQuasiComponents: Split -> Split
-         ++ \axiom{removeSuperfluousQuasiComponents(lts)} removes from \axiom{lts}
-         ++ any \spad{ts} such that \axiom{subQuasiComponent?(ts,us)} holds for 
-         ++ another \spad{us} in \axiom{lts}.
+      ++ \axiom{removeSuperfluousQuasiComponents(lts)} removes from 
+      ++ \axiom{lts} any \spad{ts} such that 
+      ++ \axiom{subQuasiComponent?(ts,us)} holds for 
+      ++ another \spad{us} in \axiom{lts}.
      subCase?: (LpWT,LpWT) -> Boolean
-         ++ \axiom{subCase?(lpwt1,lpwt2)}
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{subCase?(lpwt1,lpwt2)}
+      ++ is an internal subroutine, exported only for developement.
      removeSuperfluousCases: List LpWT -> List LpWT
-         ++ \axiom{removeSuperfluousCases(llpwt)}
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{removeSuperfluousCases(llpwt)}
+      ++ is an internal subroutine, exported only for developement.
      prepareDecompose: (LP, List(TS),B,B) -> List Branch
-         ++ \axiom{prepareDecompose(lp,lts,b1,b2)}
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{prepareDecompose(lp,lts,b1,b2)}
+      ++ is an internal subroutine, exported only for developement.
      branchIfCan: (LP,TS,LP,B,B,B,B,B) -> Union(Branch,"failed")
-         ++ \axiom{branchIfCan(leq,ts,lineq,b1,b2,b3,b4,b5)}
-         ++ is an internal subroutine, exported only for developement.
+      ++ \axiom{branchIfCan(leq,ts,lineq,b1,b2,b3,b4,b5)}
+      ++ is an internal subroutine, exported only for developement.
 
   Implementation == add
 
@@ -137220,7 +137223,8 @@ SquareFreeQuasiComponentPackage(R,E,V,P,TS): Exports == Implementation where
        #ts > #us => false
        lp1 :LP := members(ts)
        lp2 :LP := members(us)
-       while (not empty? lp1) and (not infRittWu?(first(lp2),first(lp1))) repeat
+       while (not empty? lp1) and (not infRittWu?(first(lp2),first(lp1)))
+        repeat
          lp1 := rest lp1
          lp2 := rest lp2
        not empty? lp1
@@ -137323,7 +137327,9 @@ SquareFreeQuasiComponentPackage(R,E,V,P,TS): Exports == Implementation where
 
      removeSuperfluousCases (cases:List LpWT) ==
        #cases < 2 => cases
-       toSee := sort(supDimElseRittWu?(#1.tower,#2.tower),cases)
+       toSee := 
+         sort((x:LpWT,y:LpWT):Boolean +-> supDimElseRittWu?(x.tower,y.tower),
+              cases)
        lpwt1,lpwt2 : LpWT
        toSave,headmaxcases,maxcases,copymaxcases : List LpWT
        while not empty? toSee repeat
@@ -137462,15 +137468,18 @@ SquareFreeQuasiComponentPackage(R,E,V,P,TS): Exports == Implementation where
              lineq : LP := branch.ineq
              ubf1: UBF := branchIfCan(leq,ts,lq,false,false,true,true,true)@UBF
              ubf1 case "failed" => "leave"
-             ubf2: UBF := branchIfCan([f],ts,lineq,false,false,true,true,true)@UBF
+             ubf2: UBF := 
+               branchIfCan([f],ts,lineq,false,false,true,true,true)@UBF
              ubf2 case "failed" => "leave"
              leq := sort(infRittWu?,removeDuplicates concat(ubf1.eq,ubf2.eq))
-             lineq := sort(infRittWu?,removeDuplicates concat(ubf1.ineq,ubf2.ineq))
-             newBranch := branchIfCan(leq,ts,lineq,false,false,false,false,false)
+             lineq := 
+               sort(infRittWu?,removeDuplicates concat(ubf1.ineq,ubf2.ineq))
+             newBranch := 
+               branchIfCan(leq,ts,lineq,false,false,false,false,false)
              branches:= cons(newBranch::Branch,branches)
            lq := cons(f,lq)
          toSee := branches
-       sort(supDimElseRittWu?(#1.tower,#2.tower),toSee)
+       sort((x,y) +-> supDimElseRittWu?(x.tower,y.tower),toSee)
 
 @
 <<SFQCMPK.dotabb>>=
diff --git a/changelog b/changelog
index c18e866..0c4bb1d 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20090621 tpd src/axiom-website/patches.html 20090621.02.tpd.patch
+20090621 tpd books/bookvol10.4 SFQCMPK +-> conversion
 20090621 tpd src/axiom-website/patches.html 20090621.01.tpd.patch
 20090621 tpd books/bookvol10.4 SMITH +-> conversion
 20090620 tpd src/axiom-website/patches.html 20090620.09.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index f81ad24..2d1faf9 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1619,5 +1619,7 @@ bookvol10.4 RETSOL +-> conversion<br/>
 Makefile build input.dvi in parallel with src<br/>
 <a href="patches/20090621.01.tpd.patch">20090621.01.tpd.patch</a>
 bookvol10.4 SMITH +-> conversion<br/>
+<a href="patches/20090621.02.tpd.patch">20090621.02.tpd.patch</a>
+bookvol10.4 SFQCMPK +-> conversion<br/>
  </body>
 </html>
