diff --git a/changelog b/changelog
index e8a7e87..b4dd635 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+20090817 tpd src/axiom-website/patches.html 20090817.01.tpd.patch
+20090817 tpd src/interp/Makefile move hypertex.boot to hypertex.lisp
+20090817 tpd src/interp/hypertex.lisp added, rewritten from hypertex.boot
+20090817 tpd src/interp/hypertex.boot removed, rewritten to hypertex.lisp
 20090816 tpd src/axiom-website/patches.html 20090816.08.tpd.patch
 20090816 tpd src/interp/Makefile move g-util.boot to g-util.lisp
 20090816 tpd src/interp/g-util.lisp added, rewritten from g-util.boot
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index de3629c..efbc9c6 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1812,6 +1812,8 @@ g-opt.lisp rewrite from boot to lisp<br/>
 g-timer.lisp rewrite from boot to lisp<br/>
 <a href="patches/20090816.08.tpd.patch">20090816.08.tpd.patch</a>
 g-util.lisp rewrite from boot to lisp<br/>
+<a href="patches/20090817.01.tpd.patch">20090817.01.tpd.patch</a>
+hypertex.lisp rewrite from boot to lisp<br/>
 
  </body>
 </html>
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index cdbc96d..b73bc31 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -1151,47 +1151,27 @@ ${DOC}/fortcall.boot.dvi: ${IN}/fortcall.boot.pamphlet
 
 @
 
-\subsection{hypertex.boot}
+\subsection{hypertex.lisp}
 <<hypertex.o (OUT from MID)>>=
-${OUT}/hypertex.${O}: ${MID}/hypertex.clisp 
-	@ echo 276 making ${OUT}/hypertex.${O} from ${MID}/hypertex.clisp
-	@ (cd ${MID} ; \
+${OUT}/hypertex.${O}: ${MID}/hypertex.lisp
+	@ echo 136 making ${OUT}/hypertex.${O} from ${MID}/hypertex.lisp
+	@ ( cd ${MID} ; \
 	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "${MID}/hypertex.clisp"' \
+	   echo '(progn  (compile-file "${MID}/hypertex.lisp"' \
              ':output-file "${OUT}/hypertex.${O}") (${BYE}))' | ${DEPSYS} ; \
 	  else \
-	   echo '(progn  (compile-file "${MID}/hypertex.clisp"' \
+	   echo '(progn  (compile-file "${MID}/hypertex.lisp"' \
              ':output-file "${OUT}/hypertex.${O}") (${BYE}))' | ${DEPSYS} \
              >${TMP}/trace ; \
 	  fi )
 
 @
-<<hypertex.clisp (MID from IN)>>=
-${MID}/hypertex.clisp: ${IN}/hypertex.boot.pamphlet
-	@ echo 277 making ${MID}/hypertex.clisp \
-                   from ${IN}/hypertex.boot.pamphlet
+<<hypertex.lisp (MID from IN)>>=
+${MID}/hypertex.lisp: ${IN}/hypertex.lisp.pamphlet
+	@ echo 137 making ${MID}/hypertex.lisp from \
+           ${IN}/hypertex.lisp.pamphlet
 	@ (cd ${MID} ; \
-	  ${TANGLE} ${IN}/hypertex.boot.pamphlet >hypertex.boot ; \
-	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn (boottran::boottocl "hypertex.boot") (${BYE}))' \
-                | ${DEPSYS} ; \
-	  else \
-	   echo '(progn (boottran::boottocl "hypertex.boot") (${BYE}))' \
-                | ${DEPSYS} >${TMP}/trace ; \
-	  fi ; \
-	  rm hypertex.boot )
-
-@
-<<hypertex.boot.dvi (DOC from IN)>>=
-${DOC}/hypertex.boot.dvi: ${IN}/hypertex.boot.pamphlet 
-	@echo 278 making ${DOC}/hypertex.boot.dvi \
-                  from ${IN}/hypertex.boot.pamphlet
-	@(cd ${DOC} ; \
-	cp ${IN}/hypertex.boot.pamphlet ${DOC} ; \
-	${DOCUMENT} ${NOISE} hypertex.boot ; \
-	rm -f ${DOC}/hypertex.boot.pamphlet ; \
-	rm -f ${DOC}/hypertex.boot.tex ; \
-	rm -f ${DOC}/hypertex.boot )
+	   ${TANGLE} ${IN}/hypertex.lisp.pamphlet >hypertex.lisp )
 
 @
 
@@ -6650,8 +6630,7 @@ clean:
 <<ht-util.boot.dvi (DOC from IN)>>
 
 <<hypertex.o (OUT from MID)>>
-<<hypertex.clisp (MID from IN)>>
-<<hypertex.boot.dvi (DOC from IN)>>
+<<hypertex.lisp (MID from IN)>>
 
 <<i-analy.o (OUT from MID)>>
 <<i-analy.clisp (MID from IN)>>
diff --git a/src/interp/hypertex.boot.pamphlet b/src/interp/hypertex.boot.pamphlet
deleted file mode 100644
index 1214aa4..0000000
--- a/src/interp/hypertex.boot.pamphlet
+++ /dev/null
@@ -1,142 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp hypertex.boot}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
--- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
--- All rights reserved.
---
--- Redistribution and use in source and binary forms, with or without
--- modification, are permitted provided that the following conditions are
--- met:
---
---     - Redistributions of source code must retain the above copyright
---       notice, this list of conditions and the following disclaimer.
---
---     - Redistributions in binary form must reproduce the above copyright
---       notice, this list of conditions and the following disclaimer in
---       the documentation and/or other materials provided with the
---       distribution.
---
---     - Neither the name of The Numerical ALgorithms Group Ltd. nor the
---       names of its contributors may be used to endorse or promote products
---       derived from this software without specific prior written permission.
---
--- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
--- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
--- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
--- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
--- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
--- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
--- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
--- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
--- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
--- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
--- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-@
-<<*>>=
-<<license>>
-
--- HyperTex Spad interface
-
-SETANDFILEQ($SendEventToHyperTeX, 8)
-SETANDFILEQ($LinkToPage, 96)
-SETANDFILEQ($StartPage, 97)
-SETANDFILEQ($SendLine, 98)
-SETANDFILEQ($EndOfPage, 99)
-SETANDFILEQ($PopUpPage, 95)
-SETANDFILEQ($PopUpNamedPage, 94)
-SETANDFILEQ($KillPage, 93)
-SETANDFILEQ($ReplacePage, 92)
-SETANDFILEQ($ReplaceNamedPage, 91)
-SETANDFILEQ($SpadError, 90)
-SETANDFILEQ($PageStuff, 100)
-
-
-
--- Issue a line of HyperTex
-issueHT line ==
---  unescapeStringsInForm line
-  sockSendInt($MenuServer, $SendLine)
-  sockSendString($MenuServer, line)
-
-endHTPage() ==
-  sockSendInt($MenuServer, $EndOfPage)
-
-testPage() ==
-  startHTPage(50)
-  issueHT '"\page{TestPage}{Test Page generated from Lisp} "
-  issueHT '"\horizontalline\beginscroll\beginitems "
-  issueHT '"\item \downlink{Quayle Jokes}{ChickenPage} \space{2} "
-  issueHT '"The misadventures of the White House bellboy. "
-  issueHT '"\enditems\endscroll\autobuttons "
-  endHTPage()
-
--- Replace a current hypertex page
-replaceNamedHTPage(window, name) ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $ReplaceNamedPage)
-  sockSendInt($MenuServer, window)
-  sockSendString($MenuServer, name)
-
--- Start up a form page from spad
-startHTPopUpPage cols ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $PopUpPage)
-  sockSendInt($MenuServer, cols)
-  sockGetInt($MenuServer)
-
--- Start a page from spad.  Using the spcified number of columns
-startHTPage cols ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $StartPage)
-  sockSendInt($MenuServer, cols)
-
--- Start a replace page sequence
-startReplaceHTPage w ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $ReplacePage)
-  sockSendInt($MenuServer, w)
-
--- Kill a page feom scratchpad
-killHTPage w ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $KillPage)
-  sockSendInt($MenuServer, w)
-
-linkToHTPage name ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $LinkToPage)
-  sockSendString($MenuServer, name)
-
-popUpNamedHTPage(name,cols) ==
-  sockSendInt($MenuServer, $PageStuff)
-  sockSendInt($MenuServer, $currentFrameNum)
-  sockSendInt($MenuServer, $PopUpNamedPage)
-  sockSendInt($MenuServer, cols)
-  sockSendString($MenuServer, name)
-  sockGetInt($MenuServer)
-
-sendHTErrorSignal() ==
-  sockSendInt($MenuServer, $SpadError)
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/interp/hypertex.lisp.pamphlet b/src/interp/hypertex.lisp.pamphlet
new file mode 100644
index 0000000..2f184f9
--- /dev/null
+++ b/src/interp/hypertex.lisp.pamphlet
@@ -0,0 +1,214 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/interp hypertex.lisp}
+\author{The Axiom Team}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+<<*>>=
+
+(IN-PACKAGE "BOOT" )
+
+;-- HyperTex Spad interface
+;SETANDFILEQ($SendEventToHyperTeX, 8)
+
+(SETANDFILEQ |$SendEventToHyperTeX| 8) 
+
+;SETANDFILEQ($LinkToPage, 96)
+
+(SETANDFILEQ |$LinkToPage| 96) 
+
+;SETANDFILEQ($StartPage, 97)
+
+(SETANDFILEQ |$StartPage| 97) 
+
+;SETANDFILEQ($SendLine, 98)
+
+(SETANDFILEQ |$SendLine| 98) 
+
+;SETANDFILEQ($EndOfPage, 99)
+
+(SETANDFILEQ |$EndOfPage| 99)
+ 
+;SETANDFILEQ($PopUpPage, 95)
+
+(SETANDFILEQ |$PopUpPage| 95)
+ 
+;SETANDFILEQ($PopUpNamedPage, 94)
+
+(SETANDFILEQ |$PopUpNamedPage| 94) 
+
+;SETANDFILEQ($KillPage, 93)
+
+(SETANDFILEQ |$KillPage| 93) 
+
+;SETANDFILEQ($ReplacePage, 92)
+
+(SETANDFILEQ |$ReplacePage| 92) 
+
+;SETANDFILEQ($ReplaceNamedPage, 91)
+
+(SETANDFILEQ |$ReplaceNamedPage| 91) 
+
+;SETANDFILEQ($SpadError, 90)
+
+(SETANDFILEQ |$SpadError| 90) 
+
+;SETANDFILEQ($PageStuff, 100)
+
+(SETANDFILEQ |$PageStuff| 100) 
+
+;-- Issue a line of HyperTex
+;issueHT line ==
+;--  unescapeStringsInForm line
+;  sockSendInt($MenuServer, $SendLine)
+;  sockSendString($MenuServer, line)
+
+(DEFUN |issueHT| (|line|)
+ (PROGN 
+  (|sockSendInt| |$MenuServer| |$SendLine|)
+  (|sockSendString| |$MenuServer| |line|))) 
+
+;endHTPage() ==
+;  sockSendInt($MenuServer, $EndOfPage)
+
+(DEFUN |endHTPage| NIL (|sockSendInt| |$MenuServer| |$EndOfPage|)) 
+
+;testPage() ==
+;  startHTPage(50)
+;  issueHT '"\page{TestPage}{Test Page generated from Lisp} "
+;  issueHT '"\horizontalline\beginscroll\beginitems "
+;  issueHT '"\item \downlink{Quayle Jokes}{ChickenPage} \space{2} "
+;  issueHT '"The misadventures of the White House bellboy. "
+;  issueHT '"\enditems\endscroll\autobuttons "
+;  endHTPage()
+
+(DEFUN |testPage| ()
+ (PROGN 
+  (|startHTPage| 50)
+  (|issueHT| "\\page{TestPage}{Test Page generated from Lisp} ")
+  (|issueHT| "\\horizontalline\\beginscroll\\beginitems ")
+  (|issueHT| "\\item \\downlink{Quayle Jokes}{ChickenPage} \\space{2} ")
+  (|issueHT| "The misadventures of the White House bellboy. ")
+  (|issueHT| "\\enditems\\endscroll\\autobuttons ")
+  (|endHTPage|))) 
+
+;-- Replace a current hypertex page
+;replaceNamedHTPage(window, name) ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $ReplaceNamedPage)
+;  sockSendInt($MenuServer, window)
+;  sockSendString($MenuServer, name)
+
+(DEFUN |replaceNamedHTPage| (|window| |name|)
+ (PROGN 
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$ReplaceNamedPage|)
+  (|sockSendInt| |$MenuServer| |window|)
+  (|sockSendString| |$MenuServer| |name|))) 
+
+;-- Start up a form page from spad
+;startHTPopUpPage cols ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $PopUpPage)
+;  sockSendInt($MenuServer, cols)
+;  sockGetInt($MenuServer)
+
+(DEFUN |startHTPopUpPage| (|cols|)
+ (PROGN
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$PopUpPage|)
+  (|sockSendInt| |$MenuServer| |cols|)
+  (|sockGetInt| |$MenuServer|))) 
+
+;-- Start a page from spad.  Using the spcified number of columns
+;startHTPage cols ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $StartPage)
+;  sockSendInt($MenuServer, cols)
+
+(DEFUN |startHTPage| (|cols|)
+ (PROGN
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$StartPage|)
+  (|sockSendInt| |$MenuServer| |cols|))) 
+
+;-- Start a replace page sequence
+;startReplaceHTPage w ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $ReplacePage)
+;  sockSendInt($MenuServer, w)
+
+(DEFUN |startReplaceHTPage| (|w|)
+ (PROGN
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$ReplacePage|)
+  (|sockSendInt| |$MenuServer| |w|))) 
+
+;-- Kill a page feom scratchpad
+;killHTPage w ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $KillPage)
+;  sockSendInt($MenuServer, w)
+
+(DEFUN |killHTPage| (|w|)
+ (PROGN
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$KillPage|)
+  (|sockSendInt| |$MenuServer| |w|))) 
+
+;linkToHTPage name ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $LinkToPage)
+;  sockSendString($MenuServer, name)
+
+(DEFUN |linkToHTPage| (|name|)
+ (PROGN
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$LinkToPage|)
+  (|sockSendString| |$MenuServer| |name|))) 
+
+;popUpNamedHTPage(name,cols) ==
+;  sockSendInt($MenuServer, $PageStuff)
+;  sockSendInt($MenuServer, $currentFrameNum)
+;  sockSendInt($MenuServer, $PopUpNamedPage)
+;  sockSendInt($MenuServer, cols)
+;  sockSendString($MenuServer, name)
+;  sockGetInt($MenuServer)
+
+(DEFUN |popUpNamedHTPage| (|name| |cols|)
+ (PROGN 
+  (|sockSendInt| |$MenuServer| |$PageStuff|)
+  (|sockSendInt| |$MenuServer| |$currentFrameNum|)
+  (|sockSendInt| |$MenuServer| |$PopUpNamedPage|)
+  (|sockSendInt| |$MenuServer| |cols|)
+  (|sockSendString| |$MenuServer| |name|)
+  (|sockGetInt| |$MenuServer|))) 
+
+;sendHTErrorSignal() ==
+;  sockSendInt($MenuServer, $SpadError)
+
+(DEFUN |sendHTErrorSignal| NIL (|sockSendInt| |$MenuServer| |$SpadError|)) 
+
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
