diff --git a/books/bookvol7.1.pamphlet b/books/bookvol7.1.pamphlet
index a75422a..ef44013 100644
--- a/books/bookvol7.1.pamphlet
+++ b/books/bookvol7.1.pamphlet
@@ -2663,7 +2663,7 @@ file is a separate chunk it becomes obvious that there is no need for
 local include files. The lines that read:
    #include "foo.h"
 become
-   <<foo.h>>
+   begin{chunk}{foo.h}
 and get expanded inline. Once you do this it also becomes obvious
 that many include files get included multiple times (a clear waste
 of disk I/O and preparser time). Further it becomes clear that there
diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 07c5468..676d39c 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -7606,6 +7606,16 @@ Make pattern variable substitutions.
 
 \end{chunk}
 
+\defun{unloadOneConstructor}{unloadOneConstructor}
+\calls{unloadOneConstructor}{remprop}
+\calls{unloadOneConstructor}{mkAutoLoad}
+\begin{chunk}{defun unloadOneConstructor}
+(defun |unloadOneConstructor| (cnam fn)
+ (remprop cnam 'loaded)
+ (setf (symbol-function cnam) (|mkAutoLoad| fn cnam)))
+
+\end{chunk}
+
 \defun{compileDocumentation}{compileDocumentation}
 \calls{compileDocumentation}{make-input-filename}
 \calls{compileDocumentation}{rdefiostream}
@@ -8342,6 +8352,18 @@ where item has form
 
 \end{chunk}
 
+\defun{isCategoryPackageName}{isCategoryPackageName}
+\calls{isCategoryPackageName}{pname}
+\calls{isCategoryPackageName}{maxindex}
+\calls{isCategoryPackageName}{char}
+\begin{chunk}{defun isCategoryPackageName}
+(defun |isCategoryPackageName| (nam)
+ (let (p)
+  (setq p (pname (|opOf| nam)))
+  (equal (elt p (maxindex p)) (|char| '&))))
+
+\end{chunk}
+
 \defun{NRTgetLookupFunction}{NRTgetLookupFunction}
 Compute the lookup function (complete or incomplete)
 \calls{NRTgetLookupFunction}{sublis}
@@ -22743,6 +22765,7 @@ The current input line.
 \getchunk{defun initializeLisplib}
 \getchunk{defun insertModemap}
 \getchunk{defun interactiveModemapForm}
+\getchunk{defun isCategoryPackageName}
 \getchunk{defun is-console}
 \getchunk{defun isDomainConstructorForm}
 \getchunk{defun isDomainForm}
@@ -23096,10 +23119,11 @@ The current input line.
 \getchunk{defun try-get-token}
 \getchunk{defun tuple2List}
 
+\getchunk{defun uncons}
 \getchunk{defun underscore}
 \getchunk{defun unget-tokens}
 \getchunk{defun unknownTypeError}
-\getchunk{defun uncons}
+\getchunk{defun unloadOneConstructor}
 \getchunk{defun unTuple}
 \getchunk{defun updateCategoryFrameForCategory}
 \getchunk{defun updateCategoryFrameForConstructor}
diff --git a/changelog b/changelog
index b8feda5..64e874d 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,10 @@
+20111011 tpd src/axiom-website/patches.html 20111011.01.tpd.patch
+20111011 tpd books/bookvol9 treeshake compiler
+20111011 tpd books/bookvol7.1 fix documentation
+20111011 tpd src/interp/nrungo.lisp remove nruntime.lisp
+20111011 tpd src/interp/i-eval.lisp remove nruntime.lisp
+20111011 tpd src/interp/Makefile remove nruntime.lisp
+20111011 tpd src/interp/nruntime.lisp removed
 20111009 tpd src/axiom-website/patches.html 20111009.01.tpd.patch
 20111009 tpd src/interp/Makefile remove noweb, move to lisp tangle
 20111009 tpd src/algebra/Makefile remove noweb, move to lisp tangle
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 136fcb1..8cc4b65 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3654,5 +3654,7 @@ src/axiom-website/documentation.html bold quote<br/>
 books/bookvol9 treeshake compiler<br/>
 <a href="patches/20111009.01.tpd.patch">20111009.01.tpd.patch</a>
 books/bookvol10.* remove noweb, move to lisp tangle<br/>
+<a href="patches/20111011.01.tpd.patch">20111011.01.tpd.patch</a>
+src/interp/nruntime.lisp removed<br/>
  </body>
 </html>
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index f63a91d..374b2f2 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -171,7 +171,6 @@ OBJS= ${OUT}/vmlisp.${O}      \
       ${OUT}/newfort.${O} \
       ${OUT}/nrunfast.${O} \
       ${OUT}/nrungo.${O}      ${OUT}/nrunopt.${O} \
-      ${OUT}/nruntime.${O}    \
       ${OUT}/posit.${O}       \
       ${OUT}/record.${O}      ${OUT}/regress.${O} \
       ${OUT}/rulesets.${O} \
@@ -2509,31 +2508,6 @@ ${MID}/nrungo.lisp: ${IN}/nrungo.lisp.pamphlet
 
 @
 
-\subsection{nruntime.lisp}
-<<nruntime.o (OUT from MID)>>=
-${OUT}/nruntime.${O}: ${MID}/nruntime.lisp
-	@ echo 136 making ${OUT}/nruntime.${O} from ${MID}/nruntime.lisp
-	@ ( cd ${MID} ; \
-	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "${MID}/nruntime.lisp"' \
-             ':output-file "${OUT}/nruntime.${O}") (${BYE}))' | ${DEPSYS} ; \
-	  else \
-	   echo '(progn  (compile-file "${MID}/nruntime.lisp"' \
-             ':output-file "${OUT}/nruntime.${O}") (${BYE}))' | ${DEPSYS} \
-             >${TMP}/trace ; \
-	  fi )
-
-@
-<<nruntime.lisp (MID from IN)>>=
-${MID}/nruntime.lisp: ${IN}/nruntime.lisp.pamphlet
-	@ echo 137 making ${MID}/nruntime.lisp from \
-             ${IN}/nruntime.lisp.pamphlet
-	@ (cd ${MID} ; \
-          echo '(tangle "${IN}/nruntime.lisp.pamphlet" "*" "nruntime.lisp")' \
-        | ${OBJ}/${SYS}/bin/lisp )
-
-@
-
 \subsection{nrunopt.lisp}
 <<nrunopt.o (OUT from MID)>>=
 ${OUT}/nrunopt.${O}: ${MID}/nrunopt.lisp
@@ -3295,9 +3269,6 @@ clean:
 <<nrungo.o (OUT from MID)>>
 <<nrungo.lisp (MID from IN)>>
 
-<<nruntime.o (OUT from MID)>>
-<<nruntime.lisp (MID from IN)>>
-
 <<nrunopt.o (OUT from MID)>>
 <<nrunopt.lisp (MID from IN)>>
 
diff --git a/src/interp/i-eval.lisp.pamphlet b/src/interp/i-eval.lisp.pamphlet
index b48f45a..3f2e3b9 100644
--- a/src/interp/i-eval.lisp.pamphlet
+++ b/src/interp/i-eval.lisp.pamphlet
@@ -512,6 +512,29 @@
          (SPADLET |targetType| (|NRTtypeHack| |targetType|))))
        (|evalFormMkValue| |op| |form| |targetType|)))))))) 
 
+;devaluateDeeply x ==
+;  VECP x => devaluate x
+;  atom x => x
+;  [devaluateDeeply y for y in x]
+
+(DEFUN |devaluateDeeply| (|x|)
+  (PROG ()
+    (RETURN
+      (SEQ (COND
+             ((VECP |x|) (|devaluate| |x|))
+             ((ATOM |x|) |x|)
+             ('T
+              (PROG (G166066)
+                (SPADLET G166066 NIL)
+                (RETURN
+                  (DO ((G166071 |x| (CDR G166071)) (|y| NIL))
+                      ((OR (ATOM G166071)
+                           (PROGN (SETQ |y| (CAR G166071)) NIL))
+                       (NREVERSE0 G166066))
+                    (SEQ (EXIT (SETQ G166066
+                                     (CONS (|devaluateDeeply| |y|)
+                                      G166066)))))))))))))
+
 ;sideEffectedArg?(t,sig,opName) ==
 ;  opString := SYMBOL_-NAME opName
 ;  (opName ^= 'setelt) and (ELT(opString, #opString-1) ^= char '_!) => nil
diff --git a/src/interp/nrungo.lisp.pamphlet b/src/interp/nrungo.lisp.pamphlet
index c6bb27a..1c43d2e 100644
--- a/src/interp/nrungo.lisp.pamphlet
+++ b/src/interp/nrungo.lisp.pamphlet
@@ -470,6 +470,30 @@
                       (|lookupInAddChain| |op| |sig| |domain| |dollar|))
                   ('T NIL)))))))))
 
+;lookupDisplay(op,sig,vectorOrForm,suffix) ==
+;  null $NRTmonitorIfTrue => nil
+;  prefix := (suffix = '"" => ">"; "<")
+;  sayBrightly
+;    concat(prefix,formatOpSignature(op,sig),
+;        '" from ", prefix2String devaluateDeeply vectorOrForm,suffix)
+
+(DEFUN |lookupDisplay| (|op| |sig| |vectorOrForm| |suffix|)
+  (PROG (|prefix|)
+  (declare (special |$NRTmonitorIfTrue|))
+    (RETURN
+      (COND
+        ((NULL |$NRTmonitorIfTrue|) NIL)
+        ('T
+         (SPADLET |prefix|
+                  (COND
+                    ((BOOT-EQUAL |suffix| "") '>)
+                    ('T '<)))
+         (|sayBrightly|
+             (|concat| |prefix| (|formatOpSignature| |op| |sig|)
+                 " from "
+                 (|prefix2String| (|devaluateDeeply| |vectorOrForm|))
+                 |suffix|)))))))
+
 ;--=======================================================
 ;--       Lookup Addlist (from lookupInDomainTable or lookupInDomain)
 ;--=======================================================
diff --git a/src/interp/nruntime.lisp.pamphlet b/src/interp/nruntime.lisp.pamphlet
deleted file mode 100644
index e198a7e..0000000
--- a/src/interp/nruntime.lisp.pamphlet
+++ /dev/null
@@ -1,107 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp nruntime.lisp}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\begin{chunk}{*}
-(IN-PACKAGE "BOOT" )
-
-;unloadOneConstructor(cnam,fn) ==
-;    REMPROP(cnam,'LOADED)
-;    SETF(SYMBOL_-FUNCTION cnam,mkAutoLoad(fn, cnam))
-
-(DEFUN |unloadOneConstructor| (|cnam| |fn|)
-  (PROGN
-    (REMPROP |cnam| 'LOADED)
-    (SETF (SYMBOL-FUNCTION |cnam|) (|mkAutoLoad| |fn| |cnam|))))
-
-;devaluateDeeply x ==
-;  VECP x => devaluate x
-;  atom x => x
-;  [devaluateDeeply y for y in x]
-
-(DEFUN |devaluateDeeply| (|x|)
-  (PROG ()
-    (RETURN
-      (SEQ (COND
-             ((VECP |x|) (|devaluate| |x|))
-             ((ATOM |x|) |x|)
-             ('T
-              (PROG (G166066)
-                (SPADLET G166066 NIL)
-                (RETURN
-                  (DO ((G166071 |x| (CDR G166071)) (|y| NIL))
-                      ((OR (ATOM G166071)
-                           (PROGN (SETQ |y| (CAR G166071)) NIL))
-                       (NREVERSE0 G166066))
-                    (SEQ (EXIT (SETQ G166066
-                                     (CONS (|devaluateDeeply| |y|)
-                                      G166066)))))))))))))
-
-;lookupDisplay(op,sig,vectorOrForm,suffix) ==
-;  null $NRTmonitorIfTrue => nil
-;  prefix := (suffix = '"" => ">"; "<")
-;  sayBrightly
-;    concat(prefix,formatOpSignature(op,sig),
-;        '" from ", prefix2String devaluateDeeply vectorOrForm,suffix)
-
-(DEFUN |lookupDisplay| (|op| |sig| |vectorOrForm| |suffix|)
-  (PROG (|prefix|)
-  (declare (special |$NRTmonitorIfTrue|))
-    (RETURN
-      (COND
-        ((NULL |$NRTmonitorIfTrue|) NIL)
-        ('T
-         (SPADLET |prefix|
-                  (COND
-                    ((BOOT-EQUAL |suffix| "") '>)
-                    ('T '<)))
-         (|sayBrightly|
-             (|concat| |prefix| (|formatOpSignature| |op| |sig|)
-                 " from "
-                 (|prefix2String| (|devaluateDeeply| |vectorOrForm|))
-                 |suffix|)))))))
-
-;isInstantiated [op,:argl] ==
-;  u:= lassocShiftWithFunction(argl,HGET($ConstructorCache,op),'domainEqualList)
-;    => CDRwithIncrement u
-;  nil
-
-(DEFUN |isInstantiated| (G166088)
-  (PROG (|op| |argl| |u|)
-  (declare (special |$ConstructorCache|))
-    (RETURN
-      (PROGN
-        (SPADLET |op| (CAR G166088))
-        (SPADLET |argl| (CDR G166088))
-        (COND
-          ((SPADLET |u|
-                    (|lassocShiftWithFunction| |argl|
-                        (HGET |$ConstructorCache| |op|)
-                        '|domainEqualList|))
-           (|CDRwithIncrement| |u|))
-          ('T NIL))))))
-
-;isCategoryPackageName nam ==
-;  p := PNAME opOf nam
-;  p.(MAXINDEX p) = char '_&
-
-(DEFUN |isCategoryPackageName| (|nam|)
-  (PROG (|p|)
-    (RETURN
-      (PROGN
-        (SPADLET |p| (PNAME (|opOf| |nam|)))
-        (BOOT-EQUAL (ELT |p| (MAXINDEX |p|)) (|char| '&))))))
-
-\end{chunk}
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
