diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index fa3d377..6cafe86 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -2148,6 +2148,17 @@ preferred to the underlying representation -- RDJ 9/12/83
 
 @
 
+\defun{hasFormalMapVariable}{hasFormalMapVariable}
+\calls{hasFormalMapVariable}{ScanOrPairVec}
+\usesdollar{hasFormalMapVariable}{formalMapVariables}
+<<defun hasFormalMapVariable>>=
+(defun |hasFormalMapVariable| (x vl)
+ (let (|$formalMapVariables|)
+ (declare (special |$formalMapVariables|))
+ (when (setq |$formalMapVariables| vl)
+  (|ScanOrPairVec| #'(lambda (y) (member y |$formalMapVariables|)) x))))
+
+@
 \defun{compLambda}{compLambda}
 \calls{compLambda}{qcar}
 \calls{compLambda}{qcdr}
@@ -2541,6 +2552,8 @@ if \verb|$InteractiveMode| then use a null outputstream
 
 <<defun freelist>>
 
+<<defun hasFormalMapVariable>>
+
 <<defun ncINTERPFILE>>
 
 <<defun recompile-lib-file-if-necessary>>
diff --git a/changelog b/changelog
index 4e00aa8..2843451 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20100916 tpd src/axiom-website/patches.html 20100916.01.tpd.patch
+20100916 tpd src/interp/compiler.lisp treeshake compiler
+20100916 tpd books/bookvol9 treeshake compiler
 20100912 tpd src/axiom-website/patches.html 20100912.02.tpd.patch
 20100912 tpd src/input/Makefile add manuel.input
 20100912 tpd src/input/manuel.input add Manuel's integral to test suite
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a1d70b8..181287d 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3121,5 +3121,7 @@ books/bookvol9 treeshake compiler<br/>
 books/bookvol9 treeshake compiler<br/>
 <a href="patches/20100912.02.tpd.patch">20100912.02.tpd.patch</a>
 src/input/manuel.input add Manuel's integral to test suite<br/>
+<a href="patches/20100916.01.tpd.patch">20100916.01.tpd.patch</a>
+books/bookvol9 treeshake compiler<br/>
  </body>
 </html>
diff --git a/src/interp/compiler.lisp.pamphlet b/src/interp/compiler.lisp.pamphlet
index 2ac10ab..4cf1c9d 100644
--- a/src/interp/compiler.lisp.pamphlet
+++ b/src/interp/compiler.lisp.pamphlet
@@ -68,29 +68,7 @@
         (|comp3| |x| |m| |e|)))))
 
 @
-\subsection{hasFormalMapVariable}
-<<*>>=
-;hasFormalMapVariable(x, vl) ==
-;  $formalMapVariables: local := vl
-;  null vl => false
-;  ScanOrPairVec('hasone?,x) where
-;     hasone? x == MEMQ(x,$formalMapVariables)
-
-(DEFUN |hasFormalMapVariable,hasone?| (|x|)
-  (declare (special |$formalMapVariables|))
-  (member |x| |$formalMapVariables|))
-
-(DEFUN |hasFormalMapVariable| (|x| |vl|)
-  (PROG (|$formalMapVariables|)
-    (DECLARE (SPECIAL |$formalMapVariables|))
-    (RETURN
-      (PROGN
-        (SPADLET |$formalMapVariables| |vl|)
-        (COND
-          ((NULL |vl|) NIL)
-          ('T (|ScanOrPairVec| '|hasFormalMapVariable,hasone?| |x|)))))))
 
-@
 \subsection{extractCodeAndConstructTriple}
 <<*>>=
 ;extractCodeAndConstructTriple(u, m, oldE) ==
