diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index aced0c8..47f16c9 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -4105,10 +4105,10 @@ credits()
 --RWilliam Burge
 --RQuentin Carpent        Robert Caviness        Bruce Char
 --ROndrej Certik          Cheekai Chin           David V. Chudnovsky
---RGregory V. Chudnovsky  James Cloos            Josh Cohen
---RChristophe Conil       Don Coppersmith        George Corliss
---RRobert Corless         Gary Cornell           Meino Cramer
---RClaire Di Crescenzo    David Cyganski
+--RGregory V. Chudnovsky  Mark Clements          James Cloos
+--RJosh Cohen             Christophe Conil       Don Coppersmith
+--RGeorge Corliss         Robert Corless         Gary Cornell
+--RMeino Cramer           Claire Di Crescenzo    David Cyganski
 --RNathaniel Daly         Timothy Daly Sr.       Timothy Daly Jr.
 --RJames H. Davenport     Didier Deshommes       Michael Dewar
 --RJean Della Dora        Gabriel Dos Reis       Claire DiCrescendo
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index c17e1f8..4eb259c 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -108,10 +108,10 @@ of effort. We would like to acknowledge and thank the following people:
 "William Burge"
 "Quentin Carpent        Robert Caviness        Bruce Char"
 "Ondrej Certik          Cheekai Chin           David V. Chudnovsky"
-"Gregory V. Chudnovsky  James Cloos            Josh Cohen"
-"Christophe Conil       Don Coppersmith        George Corliss"
-"Robert Corless         Gary Cornell           Meino Cramer"
-"Claire Di Crescenzo    David Cyganski"
+"Gregory V. Chudnovsky  Mark Clements          James Cloos"
+"Josh Cohen             Christophe Conil       Don Coppersmith"
+"George Corliss         Robert Corless         Gary Cornell"
+"Meino Cramer           Claire Di Crescenzo    David Cyganski"
 "Nathaniel Daly         Timothy Daly Sr.       Timothy Daly Jr."
 "James H. Davenport     Didier Deshommes       Michael Dewar"
 "Jean Della Dora        Gabriel Dos Reis       Claire DiCrescendo"
diff --git a/changelog b/changelog
index f42a0e0..a3b2c85 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,10 @@
+20120316 mxc src/axiom-website/patches.html 20120316.01.mxc.patch
+20120316 mxc src/input/Makefile add src/input/testpackage.input
+20120316 mxc src/input/testpackage.input added
+20120316 mxc books/bookvol5 add Mark Clements to credits
+20120316 mxc books/bookvol10.4 add Mark Clements to credits
+20120316 mxc readme add Mark Clements
+20120316 mxc Mark Clements <mark.clements@ki.se>
 20120312 tpd src/axiom-website/patches.html 20120312.01.tpd.patch
 20120312 tpd books/bookvol10.4 fix bug 7217
 20120312 tpd books/bookvol10.3 fix bug 7217
diff --git a/readme b/readme
index 2f21722..bc91375 100644
--- a/readme
+++ b/readme
@@ -201,10 +201,10 @@ at the axiom command prompt will prettyprint the list.
 "William Burge"
 "Quentin Carpent        Robert Caviness        Bruce Char"
 "Ondrej Certik          Cheekai Chin           David V. Chudnovsky"
-"Gregory V. Chudnovsky  James Cloos            Josh Cohen"
-"Christophe Conil       Don Coppersmith        George Corliss"
-"Robert Corless         Gary Cornell           Meino Cramer"
-"Claire Di Crescenzo    David Cyganski"
+"Gregory V. Chudnovsky  Mark Clements          James Cloos"
+"Josh Cohen             Christophe Conil       Don Coppersmith"
+"George Corliss         Robert Corless         Gary Cornell"
+"Meino Cramer           Claire Di Crescenzo    David Cyganski"
 "Nathaniel Daly         Timothy Daly Sr.       Timothy Daly Jr."
 "James H. Davenport     Didier Deshommes       Michael Dewar"
 "Jean Della Dora        Gabriel Dos Reis       Claire DiCrescendo"
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index f2213ff..522e1da 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3842,5 +3842,7 @@ src/input/* fix bug 7217<br/>
 books/bookvol10.2 fix bug 7217<br/>
 <a href="patches/20120312.01.tpd.patch">20120312.01.tpd.patch</a>
 books/bookvol10.4, books/bookvol10.3 fix bug 7217<br/>
+<a href="patches/20120316.01.mxc.patch">20120316.01.mxc.patch</a>
+src/input/testpackage.input added<br/>
  </body>
 </html>
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet
index 553b359..bbda020 100644
--- a/src/input/Makefile.pamphlet
+++ b/src/input/Makefile.pamphlet
@@ -396,7 +396,7 @@ REGRESSTESTS= ackermann.regress \
     string.regress    strtbl.regress   summation.regress \
     symbol.regress    t111293.regress  table.regress    tancot.regress \
     tanhcoth.regress  tanatan.regress  tbagg.regress    telford.regress \
-    test.regress \
+    test.regress      testpackage.regress \
     testprob.regress  textfile.regress torus.regress    tuplebug.regress \
     tpiezas001.regress \
     tpiezas002.regress \
@@ -799,7 +799,7 @@ FILES= ${OUT}/ackermann.input \
        ${OUT}/synonym.input  ${OUT}/t111293.input \
        ${OUT}/table.input    ${OUT}/tancot.input     ${OUT}/tanhcoth.input \
        ${OUT}/tanatan.input  ${OUT}/tbagg.input      ${OUT}/telford.input \
-       ${OUT}/test.input \
+       ${OUT}/test.input     ${OUT}/testpackage.input \
        ${OUT}/testprob.input \
        ${OUT}/tetra.input    ${OUT}/textfile.input   ${OUT}/tknot.input \
        ${OUT}/tpiezas001.input \
@@ -1261,7 +1261,8 @@ DOCFILES= \
   ${DOC}/tbagg.input.dvi       ${DOC}/telford.input.dvi    \
   ${DOC}/test.input.dvi        ${DOC}/tetra.input.dvi      \
   ${DOC}/textfile.input.dvi    ${DOC}/tknot.input.dvi      \
-  ${DOC}/torus.input.dvi       ${DOC}/testprob.input.dvi   \
+  ${DOC}/torus.input.dvi       ${DOC}/testpackage.input.dvi \
+  ${DOC}/testprob.input.dvi   \
   ${DOC}/tpiezas001.input.dvi \
   ${DOC}/tpiezas002.input.dvi \
   ${DOC}/tree.input.dvi       \
diff --git a/src/input/testpackage.input.pamphlet b/src/input/testpackage.input.pamphlet
new file mode 100644
index 0000000..9bd283e
--- /dev/null
+++ b/src/input/testpackage.input.pamphlet
@@ -0,0 +1,153 @@
+\documentclass{article}
+\usepackage{axiom}
+\setlength{\textwidth}{400pt}
+\begin{document}
+\title{\$SPAD/src/input testpackage.input}
+\author{Mark Clements}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\begin{chunk}{testpackage.spad}
+)abbrev package TESTP TestPackage
+VR ==> Vector(R)
+MR ==> Matrix(R)
+NNI ==> NonNegativeInteger
+TestPackage(F:Join(Field,RadicalCategory,TranscendentalFunctionCategory),_
+            R:ComplexCategory(F)): with
+    transposeH: MR -> MR
+    unitVector: NNI -> VR
+    norm: VR -> F
+    conjugate: VR -> VR
+    "/": (R,MR) -> MR
+    "/": (R,VR) -> VR
+    "/": (VR,R) -> VR
+    "**": (VR,NNI) -> VR
+    solveUpperTriangular: (MR,VR) -> VR
+    householder: VR -> MR
+    qr: MR -> Record(q:MR,r:MR)
+    lsqr: (MR,VR) -> VR
+    polyfit: (VR,VR,NNI) -> VR
+  == add
+    import VectorFunctions2(R,F)
+    transposeH(m:MR):MR == transpose(map(conjugate,m))
+    conjugate(v:VR):VR == map((vi:R):R +-> conjugate(vi)$R,v)$VR
+    unitVector(dim) ==
+      out := new(dim,0@R)$VR
+      out(1) := 1@R
+      out
+    a:R / m:MR == map((mij:R):R +-> a/mij,m)$MR
+    a:R / v:VR == map((vi:R):R +-> a/vi,v)$VR
+    v:VR / a:R == map((vi:R):R +-> vi/a,v)$VR
+    v:VR ** n:NonNegativeInteger == map((vi:R):R +-> vi**n,v)$VR
+    norm(v:Vector(R)):F == reduce("+",map(norm,v))
+    solveUpperTriangular(r,b) ==
+      n := ncols r
+      x := new(n,0@R)$VR
+      for k in n..1 by -1 repeat
+        index := min(n,k+1)
+        x(k) := (b(k)-reduce("+",subMatrix(r,k,k,index,n)*x.(index..n)))/r(k,k)
+      x
+    householder(a) ==
+      m := #a
+      alpha : R := -a(1)*inv(sqrt norm a(1))*sqrt(norm(a))
+      e : VR := unitVector(m)
+      u : VR := a + alpha*e
+      v : VR := u/complex(sqrt norm(u),0)
+      w : R := dot(conjugate a,v)/dot(conjugate v,a)
+      scalarMatrix(m,1) - (1+w)*transpose(outerProduct(v,conjugate v))
+    qr(a) ==
+      m := nrows a
+      n := ncols a
+      qm := scalarMatrix(m,1)
+      rm : MR := copy a
+      for i in 1..(if m=n then n-1 else n) repeat
+        x := column(subMatrix(rm,i,m,i,n),1)
+        h := scalarMatrix(m,1)
+        setsubMatrix!(h,i,i,householder x)
+        qm := qm*h
+        rm := h*rm
+      [qm,rm]
+\end{chunk}
+\begin{chunk}{*}
+)set break resume
+)spool testpackage.output
+)set message test on
+)set message auto off
+)clear all
+)sys cp $AXIOM/../../src/input/testpackage.input.pamphlet .
+)lisp (tangle "testpackage.input.pamphlet" "testpackage.spad" "testpackage.spad")
+)co testpackage.spad
+
+--S 1 of 5
+m := matrix [[12, -51, 4+%i], [6, 167, -68], [-4, 24, -41]]
+--R
+--R        +12   - 51  4 + %i+
+--R        |                 |
+--R   (1)  | 6   167    - 68 |
+--R        |                 |
+--R        +- 4   24    - 41 +
+--R                                               Type: Matrix(Complex(Integer))
+--E 1
+
+--S 2 of 5
+out := qr m
+--R
+--R            + 6     69      58+    +                  6   +
+--R            | -    ---   - ---|    |14   21    - 14 + - %i|
+--R            | 7    175     175|    |                  7   |
+--R            |                 |    |                      |
+--R            | 3     158    6  |    |                 69   |
+--R   (2)  [q= | -   - ---   --- |,r= |0   - 175  70 + --- %i|]
+--R            | 7     175   175 |    |                175   |
+--R            |                 |    |                      |
+--R            |  2     6     33 |    |                 58   |
+--R            |- -  - --   - -- |    |0     0    35 - --- %i|
+--R            +  7    35     35 +    +                175   +
+--IType: Record(q: Matrix(Complex(Expression(Integer))),...
+--E 2
+
+--S 3 of 5
+transpose(map(conjugate,out.q))*out.q
+--R
+--R        +1  0  0+
+--R        |       |
+--R   (3)  |0  1  0|
+--R        |       |
+--R        +0  0  1+
+--R                                   Type: Matrix(Complex(Expression(Integer)))
+--E 3
+
+--S 4 of 5
+out.q*transpose(map(conjugate,out.q))
+--R
+--R        +1  0  0+
+--R        |       |
+--R   (4)  |0  1  0|
+--R        |       |
+--R        +0  0  1+
+--R                                   Type: Matrix(Complex(Expression(Integer)))
+--E 4
+
+--S 5 of 5
+out.q * out.r - m
+--R
+--R        +0  0  0+
+--R        |       |
+--R   (5)  |0  0  0|
+--R        |       |
+--R        +0  0  0+
+--R                                   Type: Matrix(Complex(Expression(Integer)))
+--E 5
+ 
+)spool 
+)lisp (bye)
+ 
+\end{chunk}
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
