diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 1a1e53a..1697c27 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -496,8 +496,7 @@ information is initialized.
   (|spad|))
 
 @
-\defun{spad}{spad}
-Starts the interpreter but does not read in profiles, etc.
+\defun{spad}{Starts the interpreter but do not read in profiles}
 <<defun spad>>=
 (defun |spad| () 
  (let (|$PrintCompilerMessageIfTrue| |$inLispVM|) 
@@ -626,6 +625,7 @@ Thus, when a system command is entered this function is called.
    (|intloopInclude| source 0))))
 
 @
+
 \section{The Read-Eval-Print Loop}
 \defun{intloopReadConsole}{intloopReadConsole}
 Note that this function relies on the fact that lisp can do tail-recursion.
@@ -737,7 +737,7 @@ This function performs those setup commands.
 
 @
 
-\pagehead{initroot}{initroot}
+\pagehead{initroot}{Set \$spadroot to be the AXIOM shell variable}
 Sets up the system to use the {\bf AXIOM} shell variable if we can
 and default to the {\bf \$spadroot} variable (which was the value
 of the {\bf AXIOM} shell variable at build time) if we can't.
@@ -750,12 +750,13 @@ Called from \fnref{restart}.
 
 @
 
-\defun{intloopPrefix?}{intloopPrefix?}
+\defun{intloopPrefix?}{Does the string start with this prefix?}
 If the prefix string is the same as the whole string initial characters
 (ignoring spaces in the whole string) then we return the whole string
 minus any leading spaces.
 <<defun intloopPrefix?>>=
 (defun |intloopPrefix?| (prefix whole)
+ "Does the string start with this prefix?"
  (let ((newprefix (string-left-trim '(#\space) prefix))
        (newwhole  (string-left-trim '(#\space) whole)))
   (when (<= (length newprefix) (length newwhole))
@@ -764,10 +765,11 @@ minus any leading spaces.
 
 @
 
-\defun{make-absolute-filename}{make-absolute-filename}
+\defun{make-absolute-filename}{Prepend the absolute path to a filename}
 Prefix a filename with the {\bf AXIOM} shell variable.
 <<defun make-absolute-filename>>=
 (defun make-absolute-filename (name)
+ "Prepend the absolute path to a filename"
  (declare (special $spadroot))
  (concatenate 'string $spadroot name))
 
@@ -879,6 +881,111 @@ this is what the current code does so I won't change it.
 
 @
 
+\defun{mkprompt}{Show the Axiom prompt}
+<<defun mkprompt>>=
+(defun mkprompt ()
+ "Show the Axiom prompt"
+ (declare (special |$inputPromptType| |$IOindex| |$interpreterFrameName|))
+ (case |$inputPromptType|
+  (|none| "")
+  (|plain| "-> ")
+  (|step|  (strconc "(" (stringimage |$IOindex|) ") -> "))
+  (|frame|
+   (strconc (stringimage |$interpreterFrameName|) " ("
+            (stringimage |$IOindex|) ") -> "))
+  (t (strconc (stringimage |$interpreterFrameName|) " ["
+              (substring (currenttime) 8 nil) "] [" 
+              (stringimage |$IOindex|) "] -> "))))
+
+@
+
+\defun{intloopInclude}{Include a file into the stream}
+<<defun intloopInclude>>=
+(defun |intloopInclude| (name n)
+  (with-open-file (st name) (|intloopInclude0| st name n)))
+
+@
+
+\defun{intloopInclude0}{intloopInclude0}
+<<defun intloopInclude0>>=
+(defun |intloopInclude0| (|st| |name| |n|)
+ (let (|$lines|)
+ (declare (special |$lines|))
+  (setq |$lines| (|incStream| |st| |name|))
+  (|intloopProcess| |n| NIL 
+   (|next| (function |intloopEchoParse|) 
+    (|next| (function |insertpile|) 
+     (|next| (function |lineoftoks|) 
+      |$lines|))))))
+
+@
+
+\defun{ncloopInclude0}{ncloopInclude0}
+<<defun ncloopInclude0>>=
+(defun |ncloopInclude0| (st name n)
+ (let (|$lines|)
+ (declare (special |$lines|))
+   (setq |$lines| (|incStream| st name))
+   (|ncloopProcess| n nil
+    (|next| (function |ncloopEchoParse|)
+     (|next| (function |insertpile|)
+      (|next| (function |lineoftoks|)
+       |$lines|))))))
+
+@
+
+\defun{incStream}{incStream}
+<<defun incStream>>=
+(defun |incStream| (st fn)
+ (declare (special |Top|))
+ (|incRenumber| (|incLude| 0 (|incRgen| st) 0 (list fn) (list |Top|))))
+
+@
+
+\defun{incRgen}{incRgen}
+Note that incRgen1 recursively calls this function.
+<<defun incRgen>>=
+(defun |incRgen| (s)
+ (|Delay| (function |incRgen1|) (list s)))
+
+@
+
+\defun{Delay}{Delay}
+<<defun Delay>>=
+(defun |Delay| (f x)
+ (cons '|nonnullstream| (cons f x)))
+
+@
+
+<<initvars>>=
+(defvar |StreamNil| (list '|nullstream|))
+
+@
+
+<<postvars>>=
+(eval-when (eval load)
+  (setq |StreamNil| (list '|nullstream|)))
+
+@
+
+\defun{incRgen1}{incRgen1}
+This function reads a line from the stream and then conses it up
+with a recursive call to incRgen.
+Note that incRgen recursively wraps this function in a delay list.
+<<defun incRgen1>>=
+(defun |incRgen1| (&rest z)
+ (let (a s)
+ (declare (special |StreamNil|))
+  (setq s (car z))
+  (setq a (|shoeread-line| s))
+  (if (null a)
+   (progn
+    (close s) 
+    |StreamNil|)
+   (cons a (|incRgen| s)))))
+
+@
+
 \chapter{System Command Handling}
 \defdollar{systemCommands}
 The system commands are the top-level commands available in Axiom
@@ -14840,6 +14947,8 @@ $boot
 |$ConstructorCache|
 |$constructors|
 /countlist
+curinstream
+curoutstream
 $current-directory
 |$currentFrameNum|
 |$currentLine|
@@ -14891,6 +15000,7 @@ in-stream
 |$letAssoc| 
 |$libQuiet|
 $library-directory-list
+|$lines|
 |$localExposureData|
 |$localExposureDataDefault|
 |$lookupDefaults|
@@ -14936,6 +15046,7 @@ $spadroot
 |$texOutputStream|
 /timerlist
 |$timerTicksPerSecond|
+|Top|
 |$tracedMapSignatures|
 |$tracedModemap|
 |$tracedSpadModemap|
@@ -14952,8 +15063,23 @@ $traceletflag
 |$xdatabase|
 \end{verbatim}
 
-\section{functions}
+\section{undefined functions}
 \begin{verbatim}
+currenttime
+error
+|incLude|
+|incRenumber|
+|incRgen1|
+|insertpile|
+|ncloopEchoParse|
+|ncloopProcess|
+|intloopProcessString|
+|intnplisp|
+|lineoftoks|
+|resetStackLimits|
+|serverReadLine|
+|shoeread-line|
+stringimage
 \end{verbatim}
 
 \chapter{The Interpreter}
@@ -15006,6 +15132,7 @@ $traceletflag
 <<defun credits>>
 
 <<defun defiostream>>
+<<defun Delay>>
 <<defun describeAsharpArgs>>
 <<defun describeFortPersistence>>
 <<defun describeInputLibraryArgs>>
@@ -15094,6 +15221,9 @@ $traceletflag
 <<defun importFromFrame>>
 <<defun incBiteOff>>
 <<defun incFileName>>
+<<defun incRgen>>
+<<defun incRgen1>>
+<<defun incStream>>
 <<defun initHist>>
 <<defun initHistList>>
 <<defun initializeInterpreterFrameRing>>
@@ -15101,6 +15231,8 @@ $traceletflag
 <<defun init-memory-config>>
 <<defun initroot>>
 <<defun intloop>>
+<<defun intloopInclude>>
+<<defun intloopInclude0>>
 <<defun intloopPrefix?>>
 <<defun intloopReadConsole>>
 <<defun isDomainOrPackage>>
@@ -15131,12 +15263,14 @@ $traceletflag
 <<defun messageprint>>
 <<defun messageprint-1>>
 <<defun messageprint-2>>
+<<defun mkprompt>>
 
 <<defun ncIntLoop>>
 <<defun ncloopCommand>>
 <<defun ncloopEscaped>>
 <<defun ncloopIncFileName>>
 <<defun ncloopInclude>>
+<<defun ncloopInclude0>>
 <<defun ncloopInclude1>>
 <<defun ncloopPrefix?>>
 <<defun ncTopLevel>>
diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index d8348fd..662a1a7 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -896,7 +896,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 	(*standard-output*
 	 (if |$InteractiveMode| (make-broadcast-stream)
 	   *standard-output*)))
-  (declare (special *standard-output*))
+  (declare (special *standard-output* |$InteractiveMode|))
   (compile-file fn)))
 
 @
@@ -907,6 +907,10 @@ if \verb|$InteractiveMode| then use a null outputstream
 ALDORROOT
 \end{verbatim}
 
+\section{catch tags}
+\begin{verbatim}
+\end{verbatim}
+
 \section{throw tags}
 \begin{verbatim}
 \end{verbatim}
diff --git a/changelog b/changelog
index c273bed..559c761 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,17 @@
+20090403 tpd src/axiom-website/patches.html 20090403.02.tpd.patch	
+20090403 tpd src/input/Makefile add unittest3
+20090403 tpd src/input/unittest3.input unit test top level loop variables
+20090403 tpd src/input/unittest2.input clean up unittests
+20090403 tpd src/interp/nci.lisp collect top level loop code
+20090403 tpd src/interp/int-top.boot collect top level loop code
+20090403 tpd src/interp/incl.boot collect top level loop code
+20090403 tpd src/interp/i-util.boot collect top level loop code
+20090403 tpd src/interp/cstream.boot collect top level loop code
+20090403 tpd books/bookvol9 collect top level loop code
+20090403 tpd books/bookvol5 collect top level loop code
+20090403 tpd src/axiom-website/patches.html 20090403.01.tpd.patch
+20090403 tpd zips/gcl-2.6.8pre.tgz remove old GCL versions
+20090403 tpd zips/gcl-2.6.7.tgz remove old GCL versions
 20090402 tpd src/axiom-website/patches.html 20090402.01.tpd.patch
 20090402 tpd src/axiom-website/download.html update binary download list
 20090401 tpd src/axiom-website/patches.html 20090401.01.tpd.patch
@@ -24,7 +38,7 @@
 20090324 tpd src/axiom-website/patches.html 20090324.01.tpd.patch
 20090324 tpd src/axiom-website/releasenotes.html add March release notes
 20090324 tpd src/axiom-website/patches.html move the patch frontier
-20090324 tpd books/bookvol7.1.pamphlet update What's New for March 2009
+20090324 tpd books/bookvol7.1 update What's New for March 2009
 20090324 tpd books/ps/v71releasenotes.ps hypertex what's new page pic
 20090324 tpd books/ps/v71mar2009.ps hypertex march 2009 release notes pic
 20090324 tpd Makefile VERSION March 2009
@@ -522,7 +536,7 @@
 20090220 tpd books/bookvol10.4 fix comments
 20090220 tpd books/bookvol5 fixup sayExample
 20090220 tpd books/bookvol5 fixup frameName
-20090220 tpd src/interp/i-map.boot.pamphlet fix frameName
+20090220 tpd src/interp/i-map.boot fix frameName
 20090212 tpd src/axiom-website/patches.html 20090212.03.tpd.patch
 20090212 tpd readme add Zeilberger quote
 20090212 tpd src/interp/format.boot move sayExample, cleanupLine
@@ -533,7 +547,7 @@
 20090212 tpd src/axiom-website/patches.html 20090212.02.tpd.patch
 20090212 tpd src/Makefile.pamphlet copy bookvol5
 20090212 tpd books/ps/v5restart.ps added
-20090212 tpd books/bookvol5.pamphlet rewrite/document restart function
+20090212 tpd books/bookvol5 rewrite/document restart function
 20090212 tpd src/axiom-website/patches.html 20090212.01.tpd.patch
 20090212 tpd src/interp/interp-proclaims.lisp update proclaims for changes
 20090212 tpd src/interp/sockio.lisp remove unused code
@@ -541,9 +555,9 @@
 20090212 tpd src/interp/bootlex.lisp remove unused code
 20090212 tpd src/interp/bookvol5 removed
 20090211 tpd src/axiom-website/patches.html 20090211.01.tpd.patch
-20090211 tpd books/bookvol10.4.pamphlet add exports
+20090211 tpd books/bookvol10.4 add exports
 20090210 tpd src/axiom-website/patches.html 20090210.01.tpd.patch
-20090210 tpd books/bookvol10.4.pamphlet add exports
+20090210 tpd books/bookvol10.4 add exports
 20090209 tpd src/axiom-website/patches.html 20090209.02.tpd.patch
 20090209 tpd books/bookvol10.4 add packages
 20090209 tpd src/algebra/Makefile remove spad files
@@ -720,7 +734,7 @@
 20090208 tpd src/algebra/qalgset.spad removed
 20090208 tpd books/ps/v104quasialgebraicset2.ps added
 20090208 tpd src/axiom-website/patches.html 20090208.01.tpd.patch
-20090208 tpd books/bookvol10.4.pamphlet add packages
+20090208 tpd books/bookvol10.4 add packages
 20090208 tpd src/algebra/Makefile remove spad files
 20090208 tpd src/algebra/puiseux.spad removed
 20090208 tpd books/ps/v104univariatepuiseuxseriesfunctions2.ps added
@@ -826,7 +840,7 @@
 20090208 tpd books/ps/v104padeapproximants.ps added
 20090208 tpd books/ps/v104padeapproximantpackage.ps added
 20090207 tpd src/axiom-website/patches.html 20090207.02.tpd.patch
-20090207 tpd books/bookvol10.4.pamphlet add packages
+20090207 tpd books/bookvol10.4 add packages
 20090207 tpd src/algebra/Makefile remove spad files
 20090207 tpd src/algebra/out.spad removed
 20090207 tpd books/ps/v104displaypackage.ps added
@@ -912,7 +926,7 @@
 20090207 tpd books/ps/v104structuralconstantspackage.ps added
 20090207 tpd books/ps/v104algebrapackage.ps added
 20090203 tpd src/axiom-website/patches.html 20090203.01.tpd.patch
-20090203 tpd books/bookvol10.4.pamphlet add packages
+20090203 tpd books/bookvol10.4 add packages
 20090203 tpd src/algebra/Makefile remove spad files
 20090203 tpd src/algebra/multsqfr.spad removed
 20090203 tpd books/ps/v104multivariatesquarefree.ps added
@@ -1068,11 +1082,11 @@
 20090201 tpd books/ps/v104streaminfiniteproduct.ps added
 20090201 tpd src/algebra/idecomp.spad removed
 20090201 tpd books/ps/v104idealdecompositionpackage.ps added
-20090201 tpd books/bookvol10.1.pamphlet add theory
+20090201 tpd books/bookvol10.1 add theory
 20090131 tpd src/axiom-website/patches.html 20090131.01.tpd.patch
 20090131 tpd src/algebra/Makefile disable parallel test
-20090131 tpd books/bookvol10.4.pamphlet add )sys rm for output files
-20090131 tpd books/bookvol10.3.pamphlet add )sys rm for output files
+20090131 tpd books/bookvol10.4 add )sys rm for output files
+20090131 tpd books/bookvol10.3 add )sys rm for output files
 20090131 tpd src/algebra/Makefile add GroebnerPackage help
 20090131 tpd src/algebra/Makefile remove spad files
 20090131 tpd src/algebra/groebsol.spad removed
@@ -1093,14 +1107,14 @@
 20090131 tpd books/ps/v104coercevectormatrixpackage.ps added
 20090131 tpd src/algebra/geneez.spad removed
 20090131 tpd books/ps/v104genexeuclid.ps added
-20090131 tpd src/algebra/gdirprod.spad.pamphlet removed
+20090131 tpd src/algebra/gdirprod.spad removed
 20090131 tpd books/ps/v104orderingfunctions.ps added
 20090131 tpd src/algebra/gb.spad removed
 20090131 tpd books/ps/v104groebnerpackage.ps added
 20090131 tpd src/algebra/gbintern.spad removed
 20090131 tpd books/ps/v104groebnerinternalpackage.ps added
 20090130 tpd src/axiom-website/patches.html 20090130.01.tpd.patch
-20090130 tpd books/bookvol4.pamphlet document spadhelp
+20090130 tpd books/bookvol4 document spadhelp
 20090130 tpd src/Makefile remove parallel input testing
 20090130 tpd src/algebra/Makefile fix spadhelp
 20090130 tpd src/doc/Makefile pick up the spadhelp changes dynamically
@@ -2021,7 +2035,7 @@
 20081215 tpd src/axiom-website/patches.html 20081215.01.tpd.patch
 20081215 tpd src/axiom-website/download.html add vector linux
 20081214 tpd src/axiom-website/patches.html 20081214.01.tpd.patch
-20081214 tpd books/bookvol10.3.pamphlet add domains
+20081214 tpd books/bookvol10.3 add domains
 20081214 tpd books/ps/v103ruleset.ps added
 20081214 tpd books/ps/v103routinestable.ps added
 20081214 tpd books/ps/v103rightopenintervalrootcharacterization.ps added
@@ -2109,7 +2123,7 @@
 20081213 tpd Makefile.pamphlet move to gcl-pre3
 20081213 tpd Makefile move to gcl-pre3
 20081212 tpd src/axiom-website/patches.html 20081212.01.tpd.patch
-20081212 tpd books/bookvol4.pamphlet added
+20081212 tpd books/bookvol4 added
 20081212 tpd books/ps/v103univariateskewpolynomial.ps added
 20081212 tpd books/ps/v103subspacecomponentproperty.ps added
 20081212 tpd books/ps/v103subspace.ps added
@@ -2264,7 +2278,7 @@
 20081205 txl Tim Lahey <tim.lahey@gmail.com>
 20081205 tpd src/axiom-website/patches.html 20081205.01.tpd.patch
 20081205 tpd src/algebra/integer.spad fix r21bugsbig regression
-20081205 tpd src/input/r20bugs.input.pamphlet fix regression
+20081205 tpd src/input/r20bugs.input fix regression
 20081204 tpd src/axiom-website/patches.html 20081204.01.tpd.patch
 20081204 tpd src/input/r21bugsbig.input cleanup
 20081204 tpd src/algebra/zerodim.spad cleanup
@@ -2447,7 +2461,7 @@
 20081202 tpd src/axiom-website/download.html add doyen thumbdrive
 20081202 tpd src/axiom-website/patches.html 20081202.01.tpd.patch
 20081202 tpd books/ps/lightbayou.png lighten browser background
-20081202 tpd books/bookvol11.pamphlet lighten browser background
+20081202 tpd books/bookvol11 lighten browser background
 20081201 tpd src/axiom-website/patches.html 20081201.04.tpd.patch
 20081201 tpd src/axiom-website/index.html fix video link
 20081201 tpd src/axiom-website/videos.html add wmv, pdf
@@ -2580,7 +2594,7 @@
 20081124 tpd books/bookvol1 remove SmallFloat reference
 20081124 tpd books/bookvol0 remove SmallFloat reference
 20081124 tpd src/axiom-website/patches.html 20081124.04.tpd.patch
-20081124 tpd books/bookvol10.3.pamphlet
+20081124 tpd books/bookvol10.3
 20081124 tpd books/ps/v103stack.ps added
 20081124 tpd books/ps/v103reference.ps added
 20081124 tpd books/ps/v103queue.ps added
@@ -2679,9 +2693,9 @@
 20081121 tpd src/algebra/algext.spad move domains to bookvol10.3, delete
 20081121 tpd src/algebra/acplot.spad move domains to bookvol10.3
 20081119 tpd src/input/Makefile fix parallel test
-20081119 tpd books/Makefile.pamphlet add toc entries for toc.pdf
+20081119 tpd books/Makefile add toc entries for toc.pdf
+20081119 tpd Makefile modify VERSION number for release
 20081119 tpd Makefile modify VERSION number for release
-20081119 tpd Makefile.pamphlet modify VERSION number for release
 20081119 tpd books/ps/v71releasenotes.eps modified for november 2008 release
 20081119 tpd books/ps/v71nov2008.eps added for november 2008 release
 20081119 tpd books/bookvol7.1 november 2008 release
@@ -2733,9 +2747,9 @@
 20081110 tpd src/algebra/pcurve.spad merged with bookvol10.2
 20081109 tpd books/bookvol10.2 add categories
 20081109 tpd books/ps/v102pointcategory.ps revised
-20081109 tpd src/algebra/polset.spad.pamphlet 
+20081109 tpd src/algebra/polset.spad 
 20081109 tpd books/ps/v102squarefreeregulartriangularsetcategory.ps added
-20081109 tpd src/algebra/sregset.spad.pamphlet move SFRTCAT to bookvol10.2
+20081109 tpd src/algebra/sregset.spad move SFRTCAT to bookvol10.2
 20081109 tpd books/ps/v102regulartriangularsetcategory.ps added
 20081109 tpd src/algebra/regset.spad add RSETCAT to bookvol10.2
 20081109 tpd books/ps/v102univariatelaurentseriesconstructorcategory.ps added
@@ -2762,7 +2776,7 @@
 20081101 tpd books/ps/v102matrixcategory.ps added
 20081101 tpd books/ps/v102monogeniclinearoperator.ps added
 20081101 tpd src/algebra/lodop.spad move categories to bookvol10.2
-20081029 tpd books/bookvol10.2.pamphlet add categories
+20081029 tpd books/bookvol10.2 add categories
 20081029 tpd books/ps/v102polynomialsetcategory.ps corrected
 20081029 tpd src/algebra/triset.spad move categories to bookvol10.2
 20081029 tpd books/ps/v102triangularsetcategory.ps added
@@ -2834,9 +2848,9 @@
 20081007 tpd src/algebra/sf.spad add floating point categories to bookvol10.2
 20081007 tpd src/algebra/xpoly.spad move several categories to bookvol10.2
 20081007 tpd src/algebra/kl.spad moved CACHSET to bookvol10.2
-20081006 tpd books/bookvol10.2.pamphlet add categories
+20081006 tpd books/bookvol10.2 add categories
 20081006 tpd src/algebra/Makefile remove fortcat.spad
-20081006 tpd src/algebra/fortcat.spad.pamphlet absorbed into bookvol10.2
+20081006 tpd src/algebra/fortcat.spad absorbed into bookvol10.2
 20081006 tpd books/ps/v102fortranfunctioncategory.ps added
 20081006 tpd books/ps/v102fortranmachinetypecategory.ps added
 20081006 tpd books/ps/v102fortranmatrixcategory.ps added
@@ -2854,7 +2868,7 @@
 20081005 tpd books/ps/v102binarytreecategory.ps added
 20081005 tpd src/algebra/tree.spad move BTCAT to bookvol10.2
 20081005 tpd books/ps/v102lazystreamaggregate.ps added
-20081005 tpd src/algebra/stream.spad.pamphlet move LZSTAGG to bookvol10.2
+20081005 tpd src/algebra/stream.spad move LZSTAGG to bookvol10.2
 20081005 tpd books/ps/v102sexpressioncategory.ps added
 20081005 tpd src/algebra/sex.spad move SEXCAT to bookvol10.2
 20081005 tpd books/ps/v102segmentexpansioncategory.ps added
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 0a12cd1..b90f94a 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1040,5 +1040,7 @@ bookvol0 add Richard Jenks bio<br/>
 download.html add more binaries<br/>
 <a href="patches/20090403.01.tpd.patch">20090403.01.tpd.patch</a>
 remove gcl-2.6.7, gcl-2.6.8pre<br/>
+<a href="patches/20090403.02.tpd.patch">20090403.02.tpd.patch</a>
+bookvol5 collect top level loop code<br/>
  </body>
 </html>
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet
index a506c77..28ebb4b 100644
--- a/src/input/Makefile.pamphlet
+++ b/src/input/Makefile.pamphlet
@@ -380,7 +380,7 @@ REGRES= algaggr.regress algbrbf.regress  algfacob.regress alist.regress  \
     textfile.regress  torus.regress \
     triglim.regress   tsetcatvermeer.regress            tutchap1.regress \
     typetower.regress void.regress      uniseg.regress \
-    unittest1.regress unittest2.regress
+    unittest1.regress unittest2.regress unittest3.regress
 
 IN=     ${SRC}/input
 MID=	${INT}/input
@@ -690,7 +690,7 @@ FILES= ${OUT}/algaggr.input  ${OUT}/algbrbf.input    ${OUT}/algfacob.input \
        ${OUT}/tutchap4.input ${OUT}/tutchap67.input  ${OUT}/typetower.input \
        ${OUT}/typo.input     \
        ${OUT}/uniseg.input   ${OUT}/up.input         ${OUT}/unittest1.input \
-       ${OUT}/unittest2.input \
+       ${OUT}/unittest2.input ${OUT}/unittest3.input \
        ${OUT}/vector.input   ${OUT}/vectors.input    ${OUT}/viewdef.input \
        ${OUT}/void.input     ${OUT}/wiggle.input   \
        ${OUT}/wutset.input \
@@ -1049,7 +1049,7 @@ DOCFILES= \
   ${DOC}/tutchap3.input.dvi    ${DOC}/tutchap4.input.dvi   \
   ${DOC}/tutchap67.input.dvi   ${DOC}/typetower.input.dvi  \
   ${DOC}/typo.input.dvi       \
-  ${DOC}/uniseg.input.dvi      ${DOC}/unittest1.input.dvi \
+  ${DOC}/uniseg.input.dvi     \
   ${DOC}/up.input.dvi         \
   ${DOC}/vector.input.dvi      ${DOC}/vectors.input.dvi    \
   ${DOC}/viewdef.input.dvi     ${DOC}/void.input.dvi       \
diff --git a/src/input/unittest2.input.pamphlet b/src/input/unittest2.input.pamphlet
index 647d105..9c225f7 100644
--- a/src/input/unittest2.input.pamphlet
+++ b/src/input/unittest2.input.pamphlet
@@ -1496,10 +1496,6 @@ Unit test the user level commands
 
 
 )spool
- 
-
-
-)spool
 )lisp (bye)
  
 @
diff --git a/src/input/unittest3.input.pamphlet b/src/input/unittest3.input.pamphlet
new file mode 100644
index 0000000..528e348
--- /dev/null
+++ b/src/input/unittest3.input.pamphlet
@@ -0,0 +1,98 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input unittest3.input}
+\author{Timothy Daly}
+\maketitle
+\begin{abstract}
+Unit test the user level commands
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+<<*>>=
+)set break resume
+)sys rm -f unittest3.output
+)spool unittest3.output
+)set mes auto off
+)clear all
+
+--S 1 of 11
+)lisp (identity |$inputPromptType|)
+--R 
+--RValue = |step|
+--E 1
+
+--S 2 of 11
+)lisp (setq |$inputPromptType| '|none|)
+--R 
+--RValue = |none|
+--E 2
+
+--S 3 of 11
+1
+--R   (1)  1
+--R                                                        Type: PositiveInteger
+--E 3
+
+--S 4 of 11
+)lisp (setq |$inputPromptType| '|plain|)
+--RValue = |plain|
+--E 4
+
+--S 5 of 11
+2
+--R
+--R   (2)  2
+--R                                                        Type: PositiveInteger
+--E 5
+
+--S 6 of 11
+)lisp (setq |$inputPromptType| '|step|)
+--R 
+--RValue = |step|
+--E 6
+
+--S 7 of 11
+2
+--R
+--R   (3)  2
+--R                                                        Type: PositiveInteger
+--E 7
+
+--S 8 of 11
+)lisp (setq |$inputPromptType| '|frame|)
+--R 
+--RValue = |frame|
+--E 8
+
+--S 9 of 11
+2
+--R
+--R   (4)  2
+--R                                                        Type: PositiveInteger
+--E 9
+
+--S 10 of 11
+)lisp (setq |$inputPromptType| t)
+--R 
+--RValue = T
+--E 10
+
+--S 11 of 11
+2
+--R
+--R   (5)  2
+--R                                                        Type: PositiveInteger
+--E 11
+
+)spool
+ 
+)lisp (bye)
+ 
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
diff --git a/src/interp/cstream.boot.pamphlet b/src/interp/cstream.boot.pamphlet
index c9d80c1..e604ee2 100644
--- a/src/interp/cstream.boot.pamphlet
+++ b/src/interp/cstream.boot.pamphlet
@@ -74,20 +74,6 @@ StreamNull x==
           RPLACD(x,CDR st)
   EQCAR(x,"nullstream")
  
-Delay(f,x)==cons("nonnullstream",[f,:x])
- 
-StreamNil:= ["nullstream"]
- 
-incRgen s==Delay(function incRgen1,[s])
- 
-incRgen1(:z)==
-        [s]:=z
-        a:=shoeread_-line s
-        if NULL a
-        then (CLOSE s;StreamNil)
-
-        else cons(a,incRgen s)
- 
 incIgen n==Delay(function incIgen1,[n])
 incIgen1(:z)==
         [n]:=z
diff --git a/src/interp/i-util.boot.pamphlet b/src/interp/i-util.boot.pamphlet
index be8736f..e1b89e7 100644
--- a/src/interp/i-util.boot.pamphlet
+++ b/src/interp/i-util.boot.pamphlet
@@ -110,18 +110,6 @@ protectedPrompt(:p) ==
   msg := STRCONC(msg,str,EBCDIC 29,EBCDIC 64)  -- unprotect again
   inputPrompt msg
  
-MKPROMPT() ==
-  $inputPromptType = 'none    => '""
-  $inputPromptType = 'plain   => '"-> "
-  $inputPromptType = 'step    =>
-    STRCONC('"(",STRINGIMAGE $IOindex,'") -> ")
-  $inputPromptType = 'frame   =>
-    STRCONC(STRINGIMAGE $interpreterFrameName,
-      '" (",STRINGIMAGE $IOindex,'") -> ")
-  STRCONC(STRINGIMAGE $interpreterFrameName,
-   '" [", SUBSTRING(CURRENTTIME(),8,NIL),'"] [",
-    STRINGIMAGE $IOindex, '"] -> ")
- 
 --% Miscellaneous
  
 Zeros n ==
@@ -217,8 +205,6 @@ HasSignature(domain,[op,sig]) ==
 --   MEMQ(opOf(catform),'(Object Type)) or  --temporary hack
 --    or/[compareSigEqual(catform,cat,domain0,domain) for cat in catlist]
  
-makeInitialModemapFrame() == COPY $InitialModemapFrame
- 
 addModemap(op,mc,sig,pred,fn,$e) ==
   $InteractiveMode => $e
   if knownInfo pred then pred:=true
diff --git a/src/interp/incl.boot.pamphlet b/src/interp/incl.boot.pamphlet
index 2f82cee..bac8b6f 100644
--- a/src/interp/incl.boot.pamphlet
+++ b/src/interp/incl.boot.pamphlet
@@ -54,9 +54,6 @@ incStringStream s==
 incFile fn==
    incRenumber incLude(0,incRgen OPEN fn,0,[fn],[Top])
  
-incStream(st, fn) ==
-   incRenumber incLude(0,incRgen st,0,[fn],[Top])
-
 incFileInput    fn == incRgen  MAKE_-INSTREAM fn
 incConsoleInput () == incRgen  MAKE_-INSTREAM 0
  
diff --git a/src/interp/int-top.boot.pamphlet b/src/interp/int-top.boot.pamphlet
index 59986a4..482b395 100644
--- a/src/interp/int-top.boot.pamphlet
+++ b/src/interp/int-top.boot.pamphlet
@@ -68,13 +68,6 @@ intloopEchoParse s==
          $lines:=rest
          cons([[lines,npParse dqToList dq]],CDR s)
  
-intloopInclude0(st, name, n) ==
-    $lines:local:=incStream(st,name)
-    intloopProcess(n,false,
-      next(function intloopEchoParse,
-        next(function insertpile,
-          next(function lineoftoks,$lines))))
- 
 intloopInclude1(name,n) ==
           a:=ncloopIncFileName name
           a => intloopInclude(a,n)
diff --git a/src/interp/nci.lisp.pamphlet b/src/interp/nci.lisp.pamphlet
index d6bca72..60075c2 100644
--- a/src/interp/nci.lisp.pamphlet
+++ b/src/interp/nci.lisp.pamphlet
@@ -92,10 +92,6 @@
 	  (t (|pfPrintSrcLines| (CADDR m))))))
 
 
-(defun |intloopInclude| (name n)
-  (with-open-file (st name)
-		  (|intloopInclude0| st name n)))
-
 @
 \eject
 \begin{thebibliography}{99}
