diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 794814c..f86c81e 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -8238,6 +8238,11 @@ of the symbol being parsed. The original list read:
\end{chunk}
\defun{postCollect,finish}{postCollect,finish}
+\calls{postCollect,finish}{qcar}
+\calls{postCollect,finish}{qcdr}
+\calls{postCollect,finish}{postMakeCons}
+\calls{postCollect,finish}{tuple2List}
+\calls{postCollect,finish}{postTranList}
\begin{chunk}{defun postCollect,finish}
(defun |postCollect,finish| (op itl y)
(let (tmp2 tmp5 newBody)
@@ -11375,6 +11380,40 @@ Stack of results of reduced productions.
\chapter{Utility Functions}
+\defun{tuple2List}{tuple2List}
+\calls{tuple2List}{tuple2List}
+\calls{tuple2List}{postTranSegment}
+\calls{tuple2List}{postTran}
+\usesdollar{tuple2List}{boot}
+\usesdollar{tuple2List}{InteractiveMode}
+\begin{chunk}{defun tuple2List}
+(defun |tuple2List| (arg)
+ (let (u p tmp2 q)
+ (declare (special |$InteractiveMode| $boot))
+ (when (pairp arg)
+ (setq u (|tuple2List| (qcdr arg)))
+ (cond
+ ((and (pairp (qcar arg)) (eq (qcar (qcar arg)) 'segment)
+ (pairp (qcdr (qcar arg)))
+ (pairp (qcdr (qcdr (qcar arg))))
+ (eq (qcdr (qcdr (qcdr (qcar arg)))) nil))
+ (setq p (qcar (qcdr (qcar arg))))
+ (setq q (qcar (qcdr (qcdr (qcar arg)))))
+ (cond
+ ((null u) (list '|construct| (|postTranSegment| p q)))
+ ((and |$InteractiveMode| (null $boot))
+ (cons '|append|
+ (cons (list '|construct| (|postTranSegment| p q))
+ (list (|tuple2List| (qcdr arg))))))
+ (t
+ (cons '|nconc|
+ (cons (list '|construct| (|postTranSegment| p q))
+ (list (|tuple2List| (qcdr arg))))))))
+ ((null u) (list '|construct| (|postTran| (qcar arg))))
+ (t (list '|cons| (|postTran| (qcar arg)) (|tuple2List| (qcdr arg))))))))
+
+\end{chunk}
+
\defmacro{pop-stack-1}
\calls{pop-stack-1}{reduction-value}
\calls{pop-stack-1}{Pop-Reduction}
@@ -14683,6 +14722,7 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun token-install}
\getchunk{defun token-print}
\getchunk{defun try-get-token}
+\getchunk{defun tuple2List}
\getchunk{defun underscore}
\getchunk{defun unget-tokens}
diff --git a/changelog b/changelog
index 7f5539d..7441ffe 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20110228 tpd src/axiom-website/patches.html 20110228.05.tpd.patch
+20110228 tpd src/interp/parsing.lisp treeshake compiler
+20110228 tpd books/bookvol9 treeshake compiler
20110228 tpd src/axiom-website/patches.html 20110228.04.tpd.patch
20110228 tpd books/bookvol5 add trapNumericErrors
20110228 tpd src/axiom-website/patches.html 20110228.03.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a022519..dad82c0 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3413,5 +3413,7 @@ books/tangle.lisp fix help file extraction
books/bookvol9 fix special declaration for lines in preparse1
20110228.04.tpd.patch
books/bookvol5 add trapNumericErrors
+20110228.05.tpd.patch
+books/bookvol9 treeshake compiler