diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 5d6aa38..c51a6af 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -6920,6 +6920,13 @@ $\rightarrow$
      (|pp| target)
      nil)))))
 
+\end{chunk}
+
+\defun{disallowNilAttribute}{disallowNilAttribute}
+\begin{chunk}{defun disallowNilAttribute}
+(defun |disallowNilAttribute| (x)
+ (loop for y in x when (and (car y) (nequal (car y) '|nil|))
+  collect y))
 
 \end{chunk}
 
@@ -16135,6 +16142,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 \getchunk{defun deepestExpression}
 \getchunk{defun def-rename}
 \getchunk{defun def-rename1}
+\getchunk{defun disallowNilAttribute}
 \getchunk{defun displayPreCompilationErrors}
 \getchunk{defun dollarTran}
 \getchunk{defun drop}
diff --git a/changelog b/changelog
index bdc9179..e346f95 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20110524 tpd src/axiom-website/patches.html 20110523.03.tpd.patch
+20110524 tpd books/bookvol9 treeshake compiler
+20110524 tpd src/interp/define.lisp treeshake compiler
 20110524 tpd src/axiom-website/patches.html 20110523.02.tpd.patch
 20110524 tpd books/bookvol5 add Doug Telford to credits
 20110524 tpd readme add Doug Telford to credits
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index f62930a..132ef52 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3488,5 +3488,7 @@ books/bookvol9 treeshake compiler<br/>
 T. Doug Telford <doug#dougtelford.com> bug report regression test<br/>
 <a href="patches/20110524.02.tpd.patch">20110524.02.tpd.patch</a>
 books/bookvol5 add Doug Telford to credits<br/>
+<a href="patches/20110524.03.tpd.patch">20110524.03.tpd.patch</a>
+books/bookvol9 treeshake compiler<br/>
  </body>
 </html>
diff --git a/src/interp/define.lisp.pamphlet b/src/interp/define.lisp.pamphlet
index ad27983..8e88292 100644
--- a/src/interp/define.lisp.pamphlet
+++ b/src/interp/define.lisp.pamphlet
@@ -12,28 +12,6 @@
 \begin{chunk}{*}
 (IN-PACKAGE "BOOT" )
 
-;disallowNilAttribute x ==
-;  res := [y for y in x | car y and car y ^= "nil"]
-
-(DEFUN |disallowNilAttribute| (|x|)
-  (PROG (|res|)
-    (RETURN
-      (SEQ (SPADLET |res|
-                    (PROG (G167349)
-                      (SPADLET G167349 NIL)
-                      (RETURN
-                        (DO ((G167355 |x| (CDR G167355)) (|y| NIL))
-                            ((OR (ATOM G167355)
-                                 (PROGN
-                                   (SETQ |y| (CAR G167355))
-                                   NIL))
-                             (NREVERSE0 G167349))
-                          (SEQ (EXIT (COND
-                                       ((AND (CAR |y|)
-                                         (NEQUAL (CAR |y|) '|nil|))
-                                        (SETQ G167349
-                                         (CONS |y| G167349))))))))))))))
-
 ;--HACK to get rid of nil attibutes ---NOTE: nil is RENAMED to NIL
 ;compFunctorBody(body,m,e,parForm) ==
 ;  $bootStrapMode = true =>
