diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index 6e96318..d66005d 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -10744,6 +10744,111 @@ Bits(): Exports == Implementation where
 
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain BLHN BlowUpWithHamburgerNoether}
+<<BlowUpWithHamburgerNoether.input>>=
+)set break resume
+)sys rm -f BlowUpWithHamburgerNoether.output
+)spool BlowUpWithHamburgerNoether.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show BlowUpWithHamburgerNoether
+--R BlowUpWithHamburgerNoether  is a domain constructor
+--R Abbreviation for BlowUpWithHamburgerNoether is BLHN 
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for BLHN 
+--R
+--R------------------------------- Operations --------------------------------
+--R ?=? : (%,%) -> Boolean                chartCoord : % -> Integer
+--R coerce : List Integer -> %            coerce : % -> OutputForm
+--R excepCoord : % -> Integer             hash : % -> SingleInteger
+--R infClsPt? : % -> Boolean              latex : % -> String
+--R quotValuation : % -> Integer          ramifMult : % -> Integer
+--R transCoord : % -> Integer             ?~=? : (%,%) -> Boolean
+--R createHN : (Integer,Integer,Integer,Integer,Integer,Boolean,Union(left,center,right,vertical,horizontal)) -> %
+--R type : % -> Union(left,center,right,vertical,horizontal)
+--R
+--E 1
+
+)spool
+)lisp (bye)
+
+@
+<<BlowUpWithHamburgerNoether.help>>=
+====================================================================
+BlowUpWithHamburgerNoether examples
+====================================================================
+
+See Also:
+o )show BlowUpWithHamburgerNoether
+
+@
+\pagehead{BlowUpWithHamburgerNoether}{BLHN}
+\pagepic{ps/v103blowupwithquadtrans.ps}{BLHN}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lllll}
+\cross{BLHN}{?=?} &
+\cross{BLHN}{?\~{}=?} &
+\cross{BLHN}{chartCoord} &
+\cross{BLHN}{coerce} &
+\cross{BLHN}{createHN} \\
+\cross{BLHN}{excepCoord} &
+\cross{BLHN}{hash} &
+\cross{BLHN}{infClsPt?} &
+\cross{BLHN}{latex} &
+\cross{BLHN}{quotValuation} \\
+\cross{BLHN}{ramifMult} &
+\cross{BLHN}{transCoord} &
+\cross{BLHN}{type} &&
+\end{tabular}
+
+<<domain BLHN BlowUpWithHamburgerNoether>>=
+)abbrev domain BLHN BlowUpWithHamburgerNoether
+++ Authors: Gaetan Hache
+++ Date Created: june 1996 
+++ Date Last Updated: May 2010 by Tim Daly
+++ Description: 
+++ This domain is part of the PAFF package
+BlowUpWithHamburgerNoether: Exports == Implementation where
+  MetRec ==> Record(_
+     ex:Integer, tr:Integer, ch:Integer , quotVal:Integer, _
+     ramif:Integer, infClsPt:Boolean, _
+     type:Union("left","center","right","vertical","horizontal") )
+
+  Exports ==> BlowUpMethodCategory with HamburgerNoether
+    
+  Implementation ==  add
+    Rep := MetRec
+
+    infClsPt_? a == a.infClsPt
+
+    createHN( a,b,c,d,e,f,g)==[a,b,c,d,e,f,g]$Rep
+
+    excepCoord a == a.ex
+
+    chartCoord a == a.ch
+
+    transCoord a == a.tr
+
+    ramifMult a == a.ramif
+
+    quotValuation a == a.quotVal
+
+    type a == a.type
+
+    coerce(c:%):OutputForm== ( (c :: Rep ) :: MetRec) :: OutputForm  
+@
+<<BLHN.dotabb>>=
+"BLHN" [color="#88FF44",href="bookvol10.3.pdf#nameddest=BLHN",
+           shape=ellipse]
+"BLMETCT" [color="#4488FF",href="bookvol10.3.pdf#nameddest=BLMETCT"]
+"BLHN" -> "BLMETCT"
+
+@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{domain BLQT BlowUpWithQuadTrans}
 <<BlowUpWithQuadTrans.input>>=
 )set break resume
@@ -10846,7 +10951,7 @@ BlowUpWithQuadTrans: Exports == Implementation where
 "BLQT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=BLQT",
            shape=ellipse]
 "BLMETCT" [color="#4488FF",href="bookvol10.3.pdf#nameddest=BLMETCT"]
-"BLQT" -> "ALIST"
+"BLQT" -> "BLMETCT"
 
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -124348,6 +124453,7 @@ Note that this code is not included in the generated catdef.spad file.
 <<domain BTOURN BinaryTournament>>
 <<domain BTREE BinaryTree>>
 <<domain BITS Bits>>
+<<domain BLHN BlowUpWithHamburgerNoether>>
 <<domain BLQT BlowUpWithQuadTrans>>
 <<domain BOOLEAN Boolean>>
 
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 1602ad2..81cf809 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -23854,6 +23854,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|BinaryTree| . BTREE)
    (|Bits| . BITS)
    (|BlasLevelOne| . BLAS1)
+   (|BlowUpWithHamburgerNoether| . BLHN)
    (|BlowUpWithQuadTrans| . BLQT)
    (|Boolean| . BOOLEAN)
    (|CardinalNumber| . CARD)
diff --git a/books/ps/v103blowupwithhamburgernoether.ps b/books/ps/v103blowupwithhamburgernoether.ps
new file mode 100644
index 0000000..c17298d
--- /dev/null
+++ b/books/ps/v103blowupwithhamburgernoether.ps
@@ -0,0 +1,260 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009)
+%%For: (root) root
+%%Title: pic
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 126 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 90 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% BLHN
+gsave
+[ /Rect [ 3 72 79 108 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=BLHN) >>
+  /Subtype /Link
+/ANN pdfmark
+0.273 0.733 1.000 nodecolor
+41 90 38.22 18 ellipse_path fill
+1 setlinewidth
+filled
+0.273 0.733 1.000 nodecolor
+41 90 38.22 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+21.5 85.9 moveto 39 (BLHN) alignedtext
+grestore
+% BLMETCT
+gsave
+[ /Rect [ 0 0 82 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=BLMETCT) >>
+  /Subtype /Link
+/ANN pdfmark
+0.606 0.733 1.000 nodecolor
+newpath 82 36 moveto
+0 36 lineto
+0 0 lineto
+82 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.606 0.733 1.000 nodecolor
+newpath 82 36 moveto
+0 36 lineto
+0 0 lineto
+82 0 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+8 13.9 moveto 66 (BLMETCT) alignedtext
+grestore
+% BLHN->BLMETCT
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 41 72 moveto
+41 64 41 55 41 46 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 44.5 46 moveto
+41 36 lineto
+37.5 46 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 44.5 46 moveto
+41 36 lineto
+37.5 46 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 126 152
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index bca2359..801aaf8 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20100514 tpd src/axiom-website/patches.html 20100514.01.tpd.patch
+20100514 tpd src/algebra/Makefile help and test files for BLHN
+20100514 tpd books/bookvol5 expose BlowUpWithHamburgerNoether
+20100514 tpd books/bookvol10.3 add BlowUpWithHamburgerNoether
+20100514 tpd books/ps/v103blowupwithhamburgernoether.ps added
 20100513 tpd src/axiom-website/patches.html 20100513.04.tpd.patch
 20100513 tpd books/ps/v103blowupwithquadtrans.ps corrected
 20100513 tpd src/axiom-website/patches.html 20100513.03.tpd.patch
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 915eaa1..4349f8c 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -789,7 +789,8 @@ OASGP PDRING
 
 LAYER2=\
   ${OUT}/API.o      ${OUT}/ASP29.o    ${OUT}/ATRIG.o    ${OUT}/ATRIG-.o   \
-  ${OUT}/BEZIER.o   ${OUT}/BLQT.o     ${OUT}/BMODULE.o  ${OUT}/CACHSET.o  \
+  ${OUT}/BEZIER.o   ${OUT}/BLHN.o     \
+  ${OUT}/BLQT.o     ${OUT}/BMODULE.o  ${OUT}/CACHSET.o  \
   ${OUT}/CHARNZ.o   ${OUT}/CHARZ.o    ${OUT}/DVARCAT.o  ${OUT}/DVARCAT-.o \
   ${OUT}/ELEMFUN.o  ${OUT}/ELEMFUN-.o ${OUT}/ESTOOLS2.o ${OUT}/EVALAB.o   \
   ${OUT}/EVALAB-.o  ${OUT}/FAMONC.o   ${OUT}/FCOMP.o    ${OUT}/FEVALAB.o  \
@@ -874,6 +875,10 @@ LAYER2=\
 
 "BLQT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=BLQT"]
 "BLQT" -> "BLMETCT"
+/*"BLQT" -> {"SETCAT"; "BASTYPE"; "KOERCE"}*/
+
+"BLQT" [color="#88FF44",href="bookvol10.3.pdf#nameddest=BLQT"]
+"BLQT" -> "BLMETCT"
 /*"BLQT" -> {"SETCAT"; "BASTYPE"; "KOERCE"; "INT"; "LIST"; "ILIST"; "LSAGG-"}*/
 /*"BLQT" -> {"STAGG-"; "PI"; "NNI"}*/
 
@@ -16223,6 +16228,21 @@ ${MID}/BLQT.nrlib/code.o: ${MID}/BLQT.spad
 	      | ${INTERPSYS} >${TMP}/trace ; \
 	   fi )
 @
+<<newcode>>=
+
+BLHNDEPS = BLMETCT
+
+${MID}/BLHN.nrlib/code.o: ${MID}/BLHN.spad
+	@echo P3 making ${MID}/BLHN.nrlib/code.o from ${MID}/BLHN.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${BLHNDEPS} \n )co BLHN.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${BLHNDEPS} \n )co BLHN.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
 
 \section{Broken Files}
 These files are Aldor files
@@ -16939,6 +16959,7 @@ SPADHELP=\
  ${HELP}/BinarySearchTree.help \
  ${HELP}/BlasLevelOne.help \
  ${HELP}/BlowUpMethodCategory.help \
+ ${HELP}/BlowUpWithHamburgerNoether.help \
  ${HELP}/BlowUpWithQuadTrans.help \
  ${HELP}/CardinalNumber.help \
  ${HELP}/CartesianTensor.help \
@@ -17114,6 +17135,7 @@ REGRESS= \
  BinarySearchTree.regress \
  BlasLevelOne.regress \
  BlowUpMethodCategory.regress \
+ BlowUpWithHamburgerNoether.regress \
  BlowUpWithQuadTrans.regress \
  CardinalNumber.regress \
  CartesianTensor.regress \
@@ -17397,8 +17419,20 @@ ${HELP}/BlowUpMethodCategory.help: ${BOOKS}/bookvol10.2.pamphlet
             >${INPUT}/BlowUpMethodCategory.input
 	@echo "BlowUpMethodCategory (BLMETCT)" >>${HELPFILE}
 
+${HELP}/BlowUpWithHamburgerNoether.help: ${BOOKS}/bookvol10.3.pamphlet
+	@echo 7084 create BlowUpWithHamburgerNoether.help from \
+            ${BOOKS}/bookvol10.3.pamphlet
+	@${TANGLE} -R"BlowUpWithHamburgerNoether.help" \
+            ${BOOKS}/bookvol10.3.pamphlet \
+            >${HELP}/BlowUpWithHamburgerNoether.help
+	@cp ${HELP}/BlowUpWithHamburgerNoether.help ${HELP}/BLHN.help
+	@${TANGLE} -R"BlowUpWithHamburgerNoether.input" \
+            ${BOOKS}/bookvol10.3.pamphlet \
+            >${INPUT}/BlowUpWithHamburgerNoether.input
+	@echo "BlowUpWithHamburgerNoether (BLHN)" >>${HELPFILE}
+
 ${HELP}/BlowUpWithQuadTrans.help: ${BOOKS}/bookvol10.3.pamphlet
-	@echo 7084 create BlowUpWithQuadTrans.help from \
+	@echo 7085 create BlowUpWithQuadTrans.help from \
             ${BOOKS}/bookvol10.3.pamphlet
 	@${TANGLE} -R"BlowUpWithQuadTrans.help" \
             ${BOOKS}/bookvol10.3.pamphlet \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 8844bc3..27b38be 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2709,5 +2709,7 @@ books/bookvol10.2 add BLMETCT to algebra chunks<br/>
 books/bookvol10.3 add BlowUpWithQuadTrans<br/>
 <a href="patches/20100513.04.tpd.patch">20100513.04.tpd.patch</a>
 books/ps/v103blowupwithquadtrans.ps corrected<br/>
+<a href="patches/20100514.01.tpd.patch">20100514.01.tpd.patch</a>
+books/bookvol10.3 add BlowUpWithHamburgerNoether<br/>
  </body>
 </html>
