diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 98dac92..55496a3 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -1703,6 +1703,18 @@ This function receives the output from the parser.
 
 @
 
+\defdollar{ProcessInteractiveValue}
+<<initvars>>=
+(defvar |$ProcessInteractiveValue| nil "If true, no output or record") 
+
+@
+
+\defdollar{HTCompanionWindowID}
+<<initvars>>=
+(defvar |$HTCompanionWindowID| nil)
+
+@
+
 \defun{processInteractive1}{processInteractive1}
 This calls the analysis and output printing routines
 \calls{processInteractive1}{recordFrame}
diff --git a/changelog b/changelog
index f0c9549..d7e8ff5 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+20100117 tpd src/axiom-website/patches.html 20100117.03.tpd.patch
+20100117 tpd src/interp/util.lisp move start from i-toplev
+20100117 tpd src/interp/clam.lisp move typeTimePrin from i-toplev
+20100117 tpd src/interp/Makefile remove i-toplev
+20100117 tpd src/interp/i-toplev.lisp removed
+20100117 tpd books/bookvol5 merge and remove i-toplev
 20100117 tpd src/axiom-website/patches.html 20100117.02.tpd.patch
 20100117 tpd src/interp/i-toplev.lisp treeshake
 20100117 tpd books/bookvol5 treeshake i-toplev
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 3daa243..79edc09 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2380,5 +2380,7 @@ books/bookvol5 merge and remove exposed.lsp<br/>
 books/bookvol5 treeshake i-toplev, server<br/>
 <a href="patches/20100117.02.tpd.patch">20100117.02.tpd.patch</a>
 books/bookvol5 treeshake i-toplev<br/>
+<a href="patches/20100117.03.tpd.patch">20100117.03.tpd.patch</a>
+books/bookvol5 merge and remove i-toplev<br/>
  </body>
 </html>
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index fa94191..82434ab 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -161,7 +161,7 @@ OBJS= ${OUT}/vmlisp.${O}      \
       ${OUT}/i-output.${O}    ${OUT}/i-resolv.${O} \
       ${OUT}/i-spec1.${O}    \
       ${OUT}/i-spec2.${O}     ${OUT}/i-syscmd.${O} \
-      ${OUT}/i-toplev.${O}    ${OUT}/i-util.${O} \
+      ${OUT}/i-util.${O} \
       ${OUT}/intfile.${O}    \
       ${OUT}/lisplib.${O}     ${OUT}/macex.${O} \
       ${OUT}/match.${O}    \
@@ -2546,30 +2546,6 @@ ${MID}/i-syscmd.lisp: ${IN}/i-syscmd.lisp.pamphlet
 
 @
 
-\subsection{i-toplev.lisp}
-<<i-toplev.o (OUT from MID)>>=
-${OUT}/i-toplev.${O}: ${MID}/i-toplev.lisp
-	@ echo 136 making ${OUT}/i-toplev.${O} from ${MID}/i-toplev.lisp
-	@ ( cd ${MID} ; \
-	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "${MID}/i-toplev.lisp"' \
-             ':output-file "${OUT}/i-toplev.${O}") (${BYE}))' | ${DEPSYS} ; \
-	  else \
-	   echo '(progn  (compile-file "${MID}/i-toplev.lisp"' \
-             ':output-file "${OUT}/i-toplev.${O}") (${BYE}))' | ${DEPSYS} \
-             >${TMP}/trace ; \
-	  fi )
-
-@
-<<i-toplev.lisp (MID from IN)>>=
-${MID}/i-toplev.lisp: ${IN}/i-toplev.lisp.pamphlet
-	@ echo 137 making ${MID}/i-toplev.lisp from \
-          ${IN}/i-toplev.lisp.pamphlet
-	@ (cd ${MID} ; \
-	   ${TANGLE} ${IN}/i-toplev.lisp.pamphlet >i-toplev.lisp )
-
-@
-
 \subsection{i-util.lisp}
 <<i-util.o (OUT from MID)>>=
 ${OUT}/i-util.${O}: ${MID}/i-util.lisp
@@ -4072,9 +4048,6 @@ clean:
 <<iterator.o (OUT from MID)>>
 <<iterator.lisp (MID from IN)>>
 
-<<i-toplev.o (OUT from MID)>>
-<<i-toplev.lisp (MID from IN)>>
-
 <<i-util.o (OUT from MID)>>
 <<i-util.lisp (MID from IN)>>
 
diff --git a/src/interp/clam.lisp.pamphlet b/src/interp/clam.lisp.pamphlet
index 65340dc..0aee9f1 100644
--- a/src/interp/clam.lisp.pamphlet
+++ b/src/interp/clam.lisp.pamphlet
@@ -13,6 +13,16 @@
 
 (in-package "BOOT")
 
+;typeTimePrin x ==
+;  $highlightDelta: local:= 0
+;  maprinSpecial(x,0,79)
+
+(DEFUN |typeTimePrin| (|x|)
+  (PROG (|$highlightDelta|)
+    (DECLARE (SPECIAL |$highlightDelta|))
+    (RETURN
+      (PROGN (SPADLET |$highlightDelta| 0) (|maprinSpecial| |x| 0 79)))))
+
 ;--% Cache Lambda Facility
 ;-- for remembering previous values to functions
 ;
diff --git a/src/interp/i-toplev.lisp.pamphlet b/src/interp/i-toplev.lisp.pamphlet
deleted file mode 100644
index ce4dabc..0000000
--- a/src/interp/i-toplev.lisp.pamphlet
+++ /dev/null
@@ -1,182 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp i-toplev.lisp}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\begin{verbatim}
-This file contains the top-most code for receiving parser output,
-calling the analysis routines and printing the result output. It
-also contains several flavors of routines that start the interpreter
-from LISP.
-\end{verbatim}
-<<*>>=
-
-(IN-PACKAGE "BOOT" )
-
-;-- When $ProcessInteractiveValue is true, we don't want the value printed
-;-- or recorded.
-;SETANDFILEQ($ProcessInteractiveValue, NIL)
-
-(SETANDFILEQ |$ProcessInteractiveValue| NIL) 
-
-;SETANDFILEQ($HTCompanionWindowID, NIL)
-
-(SETANDFILEQ |$HTCompanionWindowID| NIL) 
-
-;--% Starting the interpreter from LISP
-;spadpo() ==
-;  -- starts the interpreter but only displays parsed input
-;  $PrintOnly: local:= true
-;  spad()
-
-(DEFUN |spadpo| ()
-  (PROG (|$PrintOnly|)
-    (DECLARE (SPECIAL |$PrintOnly|))
-    (RETURN (PROGN (SPADLET |$PrintOnly| 'T) (|spad|)))))
-
-;start(:l) ==
-;  -- The function  start  begins the interpreter process, reading in
-;  -- the profile and printing start-up messages.
-;  $PrintCompilerMessageIfTrue: local := nil
-;  $inLispVM : local := nil
-;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"interpreter"])
-;  initializeTimedNames($interpreterTimedNames,$interpreterTimedClasses)
-;  statisticsInitialization()
-;  $InteractiveFrame := makeInitialModemapFrame()
-;  initializeSystemCommands()
-;  initializeInterpreterFrameRing()
-;  SETQ(ERROROUTSTREAM,
-;    DEFIOSTREAM('((DEVICE . CONSOLE)(MODE . OUTPUT)),80,0))
-;  setOutputAlgebra "%initialize%"
-;  loadExposureGroupData()
-;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"database"])
-;  mkLowerCaseConTable()
-;  if not $ruleSetsInitialized then initializeRuleSets()
-;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"constructors"])
-;  makeConstructorsAutoLoad()
-;  GCMSG(NIL)
-;  SETQ($IOindex,1)
-;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"history"])
-;  initHist()
-;  if functionp 'addtopath then addtopath CONCAT($SPADROOT,'"bin")
-;  SETQ($CURRENT_-DIRECTORY,_*DEFAULT_-PATHNAME_-DEFAULTS_*)
-;  if null(l) then
-;    if $displayStartMsgs then
-;      sayKeyedMsg("S2IZ0053",[namestring ['_.axiom,'input]])
-;    readSpadProfileIfThere()
-;  if $displayStartMsgs then spadStartUpMsgs()
-;  if $OLDLINE then
-;    SAY fillerSpaces($LINELENGTH,'"=")
-;    sayKeyedMsg("S2IZ0050",[namestring ['axiom,'input]])
-;    if $OLDLINE ^= 'END__UNIT
-;      then
-;        centerAndHighlight($OLDLINE,$LINELENGTH,'" ")
-;        sayKeyedMsg("S2IZ0051",NIL)
-;      else sayKeyedMsg("S2IZ0052",NIL)
-;    SAY fillerSpaces($LINELENGTH,'"=")
-;    TERPRI()
-;    $OLDLINE := NIL
-;  $superHash := MAKE_-HASHTABLE('UEQUAL)
-;  if null l then runspad()
-;  'EndOfSpad
-
-(DEFUN |start| (&REST G166080 &AUX |l|)
-  (DSETQ |l| G166080)
-  (PROG (|$PrintCompilerMessageIfTrue| |$inLispVM|)
-    (DECLARE (SPECIAL |$PrintCompilerMessageIfTrue| |$inLispVM| |$superHash|
-                      $OLDLINE $LINELENGTH |$displayStartMsgs|
-                      $CURRENT-DIRECTORY *DEFAULT-PATHNAME-DEFAULTS*
-                      $SPADROOT |$IOindex| |$ruleSetsInitialized|
-                      |$InteractiveFrame| |$interpreterTimedClasses|
-                      |$interpreterTimedNames|))
-    (RETURN
-      (PROGN
-        (SPADLET |$PrintCompilerMessageIfTrue| NIL)
-        (SPADLET |$inLispVM| NIL)
-        (COND
-          (|$displayStartMsgs|
-              (|sayKeyedMsg| 'S2IZ0053
-                  (CONS (MAKESTRING "interpreter") NIL))))
-        (|initializeTimedNames| |$interpreterTimedNames|
-            |$interpreterTimedClasses|)
-        (|statisticsInitialization|)
-        (SPADLET |$InteractiveFrame| (|makeInitialModemapFrame|))
-        (|initializeSystemCommands|)
-        (|initializeInterpreterFrameRing|)
-        (SETQ ERROROUTSTREAM
-              (DEFIOSTREAM '((DEVICE . CONSOLE) (MODE . OUTPUT)) 80 0))
-        (|setOutputAlgebra| '|%initialize%|)
-        (COND
-          (|$displayStartMsgs|
-              (|sayKeyedMsg| 'S2IZ0053
-                  (CONS (MAKESTRING "database") NIL))))
-        (|mkLowerCaseConTable|)
-        (COND ((NULL |$ruleSetsInitialized|) (|initializeRuleSets|)))
-        (COND
-          (|$displayStartMsgs|
-              (|sayKeyedMsg| 'S2IZ0053
-                  (CONS (MAKESTRING "constructors") NIL))))
-        (|makeConstructorsAutoLoad|)
-        (GCMSG NIL)
-        (SETQ |$IOindex| 1)
-        (COND
-          (|$displayStartMsgs|
-              (|sayKeyedMsg| 'S2IZ0053
-                  (CONS (MAKESTRING "history") NIL))))
-        (|initHist|)
-        (COND
-          ((|functionp| '|addtopath|)
-           (|addtopath| (CONCAT $SPADROOT (MAKESTRING "bin")))))
-        (SETQ $CURRENT-DIRECTORY *DEFAULT-PATHNAME-DEFAULTS*)
-        (COND
-          ((NULL |l|)
-           (COND
-             (|$displayStartMsgs|
-                 (|sayKeyedMsg| 'S2IZ0053
-                     (CONS (|namestring|
-                               (CONS (INTERN ".axiom" "BOOT")
-                                     (CONS '|input| NIL)))
-                           NIL))))
-           (|readSpadProfileIfThere|)))
-        (COND (|$displayStartMsgs| (|spadStartUpMsgs|)))
-        (COND
-          ($OLDLINE (SAY (|fillerSpaces| $LINELENGTH (MAKESTRING "=")))
-              (|sayKeyedMsg| 'S2IZ0050
-                  (CONS (|namestring|
-                            (CONS '|axiom| (CONS '|input| NIL)))
-                        NIL))
-              (COND
-                ((NEQUAL $OLDLINE 'END_UNIT)
-                 (|centerAndHighlight| $OLDLINE $LINELENGTH
-                     (MAKESTRING " "))
-                 (|sayKeyedMsg| 'S2IZ0051 NIL))
-                ('T (|sayKeyedMsg| 'S2IZ0052 NIL)))
-              (SAY (|fillerSpaces| $LINELENGTH (MAKESTRING "=")))
-              (TERPRI) (SPADLET $OLDLINE NIL)))
-        (SPADLET |$superHash| (MAKE-HASHTABLE 'UEQUAL))
-        (COND ((NULL |l|) (|runspad|)))
-        '|EndOfSpad|))))
-
-
-;typeTimePrin x ==
-;  $highlightDelta: local:= 0
-;  maprinSpecial(x,0,79)
-
-(DEFUN |typeTimePrin| (|x|)
-  (PROG (|$highlightDelta|)
-    (DECLARE (SPECIAL |$highlightDelta|))
-    (RETURN
-      (PROGN (SPADLET |$highlightDelta| 0) (|maprinSpecial| |x| 0 79)))))
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/interp/util.lisp.pamphlet b/src/interp/util.lisp.pamphlet
index 7ed5152..8754647 100644
--- a/src/interp/util.lisp.pamphlet
+++ b/src/interp/util.lisp.pamphlet
@@ -158,6 +158,134 @@ After this function is called the image is clean and can be saved.
  )
 
 @
+
+;start(:l) ==
+;  -- The function  start  begins the interpreter process, reading in
+;  -- the profile and printing start-up messages.
+;  $PrintCompilerMessageIfTrue: local := nil
+;  $inLispVM : local := nil
+;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"interpreter"])
+;  initializeTimedNames($interpreterTimedNames,$interpreterTimedClasses)
+;  statisticsInitialization()
+;  $InteractiveFrame := makeInitialModemapFrame()
+;  initializeSystemCommands()
+;  initializeInterpreterFrameRing()
+;  SETQ(ERROROUTSTREAM,
+;    DEFIOSTREAM('((DEVICE . CONSOLE)(MODE . OUTPUT)),80,0))
+;  setOutputAlgebra "%initialize%"
+;  loadExposureGroupData()
+;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"database"])
+;  mkLowerCaseConTable()
+;  if not $ruleSetsInitialized then initializeRuleSets()
+;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"constructors"])
+;  makeConstructorsAutoLoad()
+;  GCMSG(NIL)
+;  SETQ($IOindex,1)
+;  if $displayStartMsgs then sayKeyedMsg("S2IZ0053",['"history"])
+;  initHist()
+;  if functionp 'addtopath then addtopath CONCAT($SPADROOT,'"bin")
+;  SETQ($CURRENT_-DIRECTORY,_*DEFAULT_-PATHNAME_-DEFAULTS_*)
+;  if null(l) then
+;    if $displayStartMsgs then
+;      sayKeyedMsg("S2IZ0053",[namestring ['_.axiom,'input]])
+;    readSpadProfileIfThere()
+;  if $displayStartMsgs then spadStartUpMsgs()
+;  if $OLDLINE then
+;    SAY fillerSpaces($LINELENGTH,'"=")
+;    sayKeyedMsg("S2IZ0050",[namestring ['axiom,'input]])
+;    if $OLDLINE ^= 'END__UNIT
+;      then
+;        centerAndHighlight($OLDLINE,$LINELENGTH,'" ")
+;        sayKeyedMsg("S2IZ0051",NIL)
+;      else sayKeyedMsg("S2IZ0052",NIL)
+;    SAY fillerSpaces($LINELENGTH,'"=")
+;    TERPRI()
+;    $OLDLINE := NIL
+;  $superHash := MAKE_-HASHTABLE('UEQUAL)
+;  if null l then runspad()
+;  'EndOfSpad
+
+<<defun start>>=
+(DEFUN |start| (&REST G166080 &AUX |l|)
+  (DSETQ |l| G166080)
+  (PROG (|$PrintCompilerMessageIfTrue| |$inLispVM|)
+    (DECLARE (SPECIAL |$PrintCompilerMessageIfTrue| |$inLispVM| |$superHash|
+                      $OLDLINE $LINELENGTH |$displayStartMsgs|
+                      $CURRENT-DIRECTORY *DEFAULT-PATHNAME-DEFAULTS*
+                      $SPADROOT |$IOindex| |$ruleSetsInitialized|
+                      |$InteractiveFrame| |$interpreterTimedClasses|
+                      |$interpreterTimedNames|))
+    (RETURN
+      (PROGN
+        (SPADLET |$PrintCompilerMessageIfTrue| NIL)
+        (SPADLET |$inLispVM| NIL)
+        (COND
+          (|$displayStartMsgs|
+              (|sayKeyedMsg| 'S2IZ0053
+                  (CONS (MAKESTRING "interpreter") NIL))))
+        (|initializeTimedNames| |$interpreterTimedNames|
+            |$interpreterTimedClasses|)
+        (|statisticsInitialization|)
+        (SPADLET |$InteractiveFrame| (|makeInitialModemapFrame|))
+        (|initializeSystemCommands|)
+        (|initializeInterpreterFrameRing|)
+        (SETQ ERROROUTSTREAM
+              (DEFIOSTREAM '((DEVICE . CONSOLE) (MODE . OUTPUT)) 80 0))
+        (|setOutputAlgebra| '|%initialize%|)
+        (COND
+          (|$displayStartMsgs|
+              (|sayKeyedMsg| 'S2IZ0053
+                  (CONS (MAKESTRING "database") NIL))))
+        (|mkLowerCaseConTable|)
+        (COND ((NULL |$ruleSetsInitialized|) (|initializeRuleSets|)))
+        (COND
+          (|$displayStartMsgs|
+              (|sayKeyedMsg| 'S2IZ0053
+                  (CONS (MAKESTRING "constructors") NIL))))
+        (|makeConstructorsAutoLoad|)
+        (GCMSG NIL)
+        (SETQ |$IOindex| 1)
+        (COND
+          (|$displayStartMsgs|
+              (|sayKeyedMsg| 'S2IZ0053
+                  (CONS (MAKESTRING "history") NIL))))
+        (|initHist|)
+        (COND
+          ((|functionp| '|addtopath|)
+           (|addtopath| (CONCAT $SPADROOT (MAKESTRING "bin")))))
+        (SETQ $CURRENT-DIRECTORY *DEFAULT-PATHNAME-DEFAULTS*)
+        (COND
+          ((NULL |l|)
+           (COND
+             (|$displayStartMsgs|
+                 (|sayKeyedMsg| 'S2IZ0053
+                     (CONS (|namestring|
+                               (CONS (INTERN ".axiom" "BOOT")
+                                     (CONS '|input| NIL)))
+                           NIL))))
+           (|readSpadProfileIfThere|)))
+        (COND (|$displayStartMsgs| (|spadStartUpMsgs|)))
+        (COND
+          ($OLDLINE (SAY (|fillerSpaces| $LINELENGTH (MAKESTRING "=")))
+              (|sayKeyedMsg| 'S2IZ0050
+                  (CONS (|namestring|
+                            (CONS '|axiom| (CONS '|input| NIL)))
+                        NIL))
+              (COND
+                ((NEQUAL $OLDLINE 'END_UNIT)
+                 (|centerAndHighlight| $OLDLINE $LINELENGTH
+                     (MAKESTRING " "))
+                 (|sayKeyedMsg| 'S2IZ0051 NIL))
+                ('T (|sayKeyedMsg| 'S2IZ0052 NIL)))
+              (SAY (|fillerSpaces| $LINELENGTH (MAKESTRING "=")))
+              (TERPRI) (SPADLET $OLDLINE NIL)))
+        (SPADLET |$superHash| (MAKE-HASHTABLE 'UEQUAL))
+        (COND ((NULL |l|) (|runspad|)))
+        '|EndOfSpad|))))
+
+
+@
+
 \subsubsection{GCL porting changes}
 GCL likes to output lines of the form:
 \begin{verbatim}
@@ -1364,6 +1492,7 @@ function assumes that \\ can only appear as first character of name.
 <<setBootAutoLoadProperty>>
 <<mkBootAutoLoad>>
 <<build-interpsys>>
+<<defun start>>
 <<setNAGBootAutloadProperties>>
 <<get-NAG-chapter>>
 <<nag-files>>
