diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 94faef7..74166cc 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -50319,6 +50319,159 @@ InterpolateFormsPackage(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR):_
 
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{package INTDIVP IntersectionDivisorPackage}
+<<IntersectionDivisorPackage.input>>=
+)set break resume
+)sys rm -f IntersectionDivisorPackage.output
+)spool IntersectionDivisorPackage.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show IntersectionDivisorPackage
+--R IntersectionDivisorPackage(K: Field,symb: List Symbol,PolyRing: PolynomialCategory(K,E,OrderedVariableList symb),E: DirectProductCategory(# symb,NonNegativeInteger),ProjPt: ProjectiveSpaceCategory K,PCS: LocalPowerSeriesCategory K,Plc: PlacesCategory(K,PCS),DIVISOR: DivisorCategory Plc,InfClsPoint: InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,PCS,Plc,DIVISOR,BLMET),DesTree: DesingTreeCategory InfClsPoint,BLMET: BlowUpMethodCategory)  is a package constructor
+--R Abbreviation for IntersectionDivisorPackage is INTDIVP 
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.4.pamphlet to see algebra source code for INTDIVP 
+--R
+--R------------------------------- Operations --------------------------------
+--R intersectionDivisor : (PolyRing,PolyRing,List DesTree,List ProjPt) -> DIVISOR
+--R placesOfDegree : (PositiveInteger,PolyRing,List ProjPt) -> Void
+--R
+--E 1
+
+)spool
+)lisp (bye)
+@
+<<IntersectionDivisorPackage.help>>=
+====================================================================
+IntersectionDivisorPackage examples
+====================================================================
+
+See Also:
+o )show IntersectionDivisorPackage
+
+@
+\pagehead{IntersectionDivisorPackage}{INTDIVP}
+\pagepic{ps/v104intersectiondivisorpackage.eps}{INTDIVP}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{ll}
+\cross{INTDIVP}{intersectionDivisor} &
+\cross{INTDIVP}{placesOfDegree}
+\end{tabular}
+
+<<package INTDIVP IntersectionDivisorPackage>>=
+)abbreviation package INTDIVP IntersectionDivisorPackage
+++ Author: Gaetan Hache
+++ Date Created: 17 nov 1992
+++ Date Last Updated: May 2010 by Tim Daly
+++ Description:  
+++ The following is part of the PAFF package
+IntersectionDivisorPackage(K,symb,PolyRing,E,ProjPt, PCS,Plc,DIVISOR,_
+                           InfClsPoint,DesTree,BLMET):_
+ Exports == Implementation where
+
+  K:Field
+  symb: List(Symbol)
+
+  OV ==> OrderedVariableList(symb)
+  E  : DirectProductCategory(#symb,NonNegativeInteger)
+  
+  PolyRing    : PolynomialCategory(K,E,OV)
+  ProjPt      : ProjectiveSpaceCategory(K)
+  PCS         : LocalPowerSeriesCategory(K)
+  Plc         : PlacesCategory(K,PCS)
+  DIVISOR     : DivisorCategory(Plc)
+  InfClsPoint : InfinitlyClosePointCategory(K,symb,PolyRing,E,ProjPt,_
+                                            PCS,Plc,DIVISOR,BLMET)
+  DesTree     : DesingTreeCategory(InfClsPoint)
+  BLMET       : BlowUpMethodCategory
+
+  OF          ==> OutputForm
+  PackPoly    ==> PackageForPoly(K,PolyRing,E,#symb)
+  PPFC1       ==> PolynomialPackageForCurve(K,PolyRing,E,#symb,ProjPt)
+  ParamPackFC ==> LocalParametrizationOfSimplePointPackage(K,symb,PolyRing,_
+                                                           E,ProjPt,PCS,Plc)
+  ParamPack   ==> ParametrizationPackage(K,symb,PolyRing,E,ProjPt,PCS,Plc)
+  RatSingPack ==> ProjectiveAlgebraicSetPackage(K,symb,PolyRing,E,ProjPt)
+  DesingPack  ==> DesingTreePackage(K,symb,PolyRing,E,ProjPt,PCS,Plc,_
+                                    DIVISOR,InfClsPoint,DesTree,BLMET)
+
+  Exports ==>  with
+
+    intersectionDivisor:(PolyRing,PolyRing,List DesTree,List ProjPt) -> DIVISOR
+      ++ intersectionDivisor(f,pol,listOfTree) returns the intersection 
+      ++ divisor of f with a curve defined by pol. listOfTree must contain 
+      ++ all the desingularisation trees of all singular points on the curve
+      ++  defined by pol.
+
+    placesOfDegree: (PositiveInteger, PolyRing, List ProjPt) -> Void()
+      ++ placesOfDegree(d, f, pts) compute the places of degree
+      ++ dividing d of the curve f. pts should be the singular points
+      ++ of the curve f. For d > 1 this only works if K has 
+      ++ \axiomType{PseudoAlgebraicClosureOfFiniteFieldCategory}.
+
+  Implementation ==>  add
+      
+    intersectionDivisor(pol,curve,ltr,listOfSingPt)==
+       intDeg:Integer:=  (totalDegree(pol)$PackPoly * _
+                          totalDegree(curve)$PackPoly) pretend Integer
+       -- compute at places over singular Points 
+       lDivAtSingPt:DIVISOR:=_
+         reduce("+",[divisorAtDesingTree(pol,tr)$DesingPack for tr in ltr],0)
+       -- By Bezout Thorem, if all intersection points with mult. 
+       -- have been found then return the divisor
+       degD:Integer:=degree lDivAtSingPt
+       degD = intDeg  => lDivAtSingPt
+       setOfFdPlc:List Plc:=foundPlaces()$Plc
+       plcFrSplPts:List Plc:=[pl for pl in setOfFdPlc | ^leaf?(pl)]
+       ordAtPlcFrSplPts:List Integer:=_
+         [order(parametrize(pol,pl)$ParamPack)$PCS for pl in plcFrSplPts]
+       divAtSplPts:DIVISOR:=_
+         reduce("+",[o * (pl :: DIVISOR) _
+           for o in ordAtPlcFrSplPts _
+             for pl in plcFrSplPts],0)
+       tDiv:=lDivAtSingPt+divAtSplPts
+       -- By Bezout Thorem, if all intersection points with mult. 
+       -- have been found then return the divisor
+       degD:Integer:=degree tDiv
+       degD = intDeg  => tDiv
+       intPts:List ProjPt:=algebraicSet([pol,curve])$RatSingPack
+       intPtsNotSing:=setDifference(intPts,listOfSingPt)
+       intPls:List(Plc):=_
+         [pointToPlace(pt,curve)$ParamPackFC for pt in intPtsNotSing]
+       remPlc:=setDifference(intPls , plcFrSplPts)   
+       ordAtPlcRem:List Integer:=_
+         [order(parametrize(pol,pl)$ParamPack)$PCS for pl in remPlc]
+       divAtRem:DIVISOR:=_
+        reduce("+",[o*(pl :: DIVISOR) for o in ordAtPlcRem for pl in remPlc],0)
+       theDivisor:= lDivAtSingPt +  divAtSplPts + divAtRem
+       degD:Integer:=degree theDivisor
+       if ^(degD = intDeg) then 
+         print("error while computing the intersection divisor" :: OF )
+	 print("Otherwise the Bezout Theoreme is not true !!!! " :: OF)
+	 print("Of course its the machine that make the mistake !!!!!" :: OF)
+       theDivisor
+
+    placesOfDegree(d, curve, singPts) ==
+      --Return the number of places of degree i of the functionfield, no 
+      --constant field extension
+      allPoints: List ProjPt:= rationalPoints(curve, d)$RatSingPack
+      remindingSimplePts: List ProjPt :=setDifference(allPoints,singPts)
+      for tpt in remindingSimplePts repeat
+         pointToPlace(tpt,curve)$ParamPackFC
+      Void()
+
+@
+<<INTDIVP.dotabb>>=
+"INTDIVP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INTDIVP"]
+"DTP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=DTP"]
+"INTDIVP" -> "DTP"
+
+@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{package IRREDFFX IrredPolyOverFiniteField}
 \pagehead{IrredPolyOverFiniteField}{IRREDFFX}
 \pagepic{ps/v104irredpolyoverfinitefield.ps}{IRREDFFX}{1.00}
@@ -158321,7 +158474,6 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where
 <<package ISUMP InnerPolySum>>
 <<package ITRIGMNP InnerTrigonometricManipulations>>
 <<package INFORM1 InputFormFunctions1>>
-<<package INTERGB InterfaceGroebnerPackage>>
 <<package INTBIT IntegerBits>>
 <<package COMBINAT IntegerCombinatoricFunctions>>
 <<package INTFACT IntegerFactorizationPackage>>
@@ -158337,9 +158489,11 @@ ZeroDimensionalSolvePackage(R,ls,ls2): Exports == Implementation where
 <<package IRRF2F IntegrationResultRFToFunction>>
 <<package IR2F IntegrationResultToFunction>>
 <<package INTTOOLS IntegrationTools>>
+<<package INTERGB InterfaceGroebnerPackage>>
 <<package IPRNTPK InternalPrintPackage>>
 <<package IRURPK InternalRationalUnivariateRepresentationPackage>>
 <<package INTFRSP InterpolateFormsPackage>>
+<<package INTDIVP IntersectionDivisorPackage>>=
 <<package IRREDFFX IrredPolyOverFiniteField>>
 <<package IRSN IrrRepSymNatPackage>>
 <<package INVLAPLA InverseLaplaceTransform>>
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index bdfee06..ce11c9d 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -23997,6 +23997,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|IntegrationResultToFunction| . IR2F)
    (|InterfaceGroebnerPackage| . INTERGB)
    (|InterpolateFormsPackage| . INTFRSP)
+   (|IntersectionDivisorPackage| . INTDIVP)
    (|Interval| . INTRVL)
    (|InventorDataSink| . IVDATA)
    (|InventorViewPort| . IVVIEW)
diff --git a/books/ps/v104intersectiondivisorpackage.eps b/books/ps/v104intersectiondivisorpackage.eps
new file mode 100644
index 0000000..6cb8eda
--- /dev/null
+++ b/books/ps/v104intersectiondivisorpackage.eps
@@ -0,0 +1,266 @@
+%!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: 1
+%%BoundingBox: 36 36 118 152
+%%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 118 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 82 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% INTDIVP
+gsave
+[ /Rect [ 0 72 74 108 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=INTDIVP) >>
+  /Subtype /Link
+/ANN pdfmark
+0.939 0.733 1.000 nodecolor
+newpath 74 108 moveto
+0 108 lineto
+0 72 lineto
+74 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.939 0.733 1.000 nodecolor
+newpath 74 108 moveto
+0 108 lineto
+0 72 lineto
+74 72 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+7.5 85.9 moveto 59 (INTDIVP) alignedtext
+grestore
+% DTP
+gsave
+[ /Rect [ 10 0 64 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=DTP) >>
+  /Subtype /Link
+/ANN pdfmark
+0.939 0.733 1.000 nodecolor
+newpath 64 36 moveto
+10 36 lineto
+10 0 lineto
+64 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.939 0.733 1.000 nodecolor
+newpath 64 36 moveto
+10 36 lineto
+10 0 lineto
+64 0 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+22.5 13.9 moveto 29 (DTP) alignedtext
+grestore
+% INTDIVP->DTP
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 37 72 moveto
+37 64 37 55 37 46 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 40.5 46 moveto
+37 36 lineto
+33.5 46 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 40.5 46 moveto
+37 36 lineto
+33.5 46 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 504b417..1a0d09e 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20100524 tpd src/axiom-website/patches.html 20100524.01.tpd.patch
+20100524 tpd src/algebra/Makefile help and test for IntersectionDivisorPackage
+20100524 tpd books/bookvol5 expose IntersectionDivisorPackage
+20100524 tpd books/bookvol10.4 add IntersectionDivisorPackage
+20100524 tpd books/ps/v104intersectiondivisorpackage.eps added
 20100523 tpd src/axiom-website/patches.html 20100523.04.tpd.patch
 20100523 tpd src/algebra/Makefile help and test for InterpolateFormsPackage
 20100523 tpd books/bookvol5 expose InterpolateFormsPackage
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index cc43afe..5ada953 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -15025,7 +15025,7 @@ LAYER18=\
   ${OUT}/ESCONT.o   ${OUT}/EXPR.o     ${OUT}/EXPRSOL.o  ${OUT}/EXPR2UPS.o \
   ${OUT}/FACTEXT.o  \
   ${OUT}/FDIV.o     ${OUT}/FSCINT.o   ${OUT}/FSINT.o    ${OUT}/FS2EXPXP.o \
-  ${OUT}/GSERIES.o  ${OUT}/HELLFDIV.o \
+  ${OUT}/GSERIES.o  ${OUT}/HELLFDIV.o ${OUT}/INTDIVP.o  \
   ${OUT}/INVLAPLA.o ${OUT}/IR2F.o     \
   ${OUT}/IRRF2F.o   ${OUT}/LAPLACE.o  ${OUT}/LIMITPS.o  ${OUT}/LODEEF.o   \
   ${OUT}/NODE1.o    ${OUT}/NOTTING.o \
@@ -15339,6 +15339,25 @@ LAYER18=\
 /*"HELLFDIV" -> {"IXAGG"; "HOAGG"; "AGG"; "ELTAGG"; "CLAGG"; "VECTOR"}*/
 /*"HELLFDIV" -> {"IVECTOR"; "IARRAY1"; "INS"; "CFCAT"; "PI"}*/
 
+"INTDIVP" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INTDIVP"]
+"INTDIVP" -> "DTP"
+/*"INTDIVP" -> {"PRSPCAT"; "SETCATD"; "LOCPOWC"; "PLACESC"; "DIVCAT"}*/
+/*"INTDIVP" -> {"INFCLCT"; "DSTRCAT"; "BLMETCT"; "PFORP"; "PARAMP"}*/
+/*"INTDIVP" -> {"PRJALGPK"; "LPARSPT"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"}*/
+/*"INTDIVP" -> {"INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"; "CABMON"}*/
+/*"INTDIVP" -> {"ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"; "KOERCE"}*/
+/*"INTDIVP" -> {"SGROUP"; "MONOID"; "LMODULE"; "BMODULE"; "RMODULE"}*/
+/*"INTDIVP" -> {"ALGEBRA"; "MODULE"; "ENTIRER"; "UFD"; "DIVRING"}*/
+/*"INTDIVP" -> {"POLYCAT"; "PDRING"; "FAMR"; "AMR"; "CHARZ"; "CHARNZ"}*/
+/*"INTDIVP" -> {"FRETRCT"; "RETRACT"; "EVALAB"; "IEVALAB"; "FLINEXP"}*/
+/*"INTDIVP" -> {"LINEXP"; "ORDSET"; "KONVERT"; "PATMAB"; "PFECAT"}*/
+/*"INTDIVP" -> {"DIRPCAT"; "IXAGG"; "HOAGG"; "AGG"; "TYPE"; "ELTAGG"}*/
+/*"INTDIVP" -> {"ELTAB"; "DIFEXT"; "DIFRING"; "FINITE"; "ORDRING"; "OAGROUP"}*/
+/*"INTDIVP" -> {"OCAMON"; "OAMON"; "OASGP"; "OAMONS"; "VSPACE"; "UPSCAT"}*/
+/*"INTDIVP" -> {"PSCAT"; "FAMONC"; "RCAGG"; "LSAGG"; "STAGG"; "URAGG"}*/
+/*"INTDIVP" -> {"LNAGG"; "CLAGG"; "FLAGG"; "ELAGG"; "OM"; "INT"; "LIST"}*/
+/*"INTDIVP" -> {"ILIST"; "LSAGG-"; "BOOLEAN"; "NNI"; "OUTFORM"}*/
+
 "INVLAPLA" [color="#FF4488",href="bookvol10.4.pdf#nameddest=INVLAPLA"]
 /*"INVLAPLA" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"}*/
 /*"INVLAPLA" -> {"RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SETCAT"}*/
@@ -17184,6 +17203,22 @@ ${MID}/INTFRSP.nrlib/code.o: ${MID}/INTFRSP.spad
 	      | ${INTERPSYS} >${TMP}/trace ; \
 	   fi )
 @
+<<newcode>>=
+
+INTDIVPDEPS = PRSPCAT SETCATD LOCPOWC PLACESC DIVCAT INFCLCT DSTRCAT \
+              BLMETCT PFORP DTP PARAMP PRJALGPK LPARSPT
+
+${MID}/INTDIVP.nrlib/code.o: ${MID}/INTDIVP.spad
+	@echo P3 making ${MID}/INTDIVP.nrlib/code.o from ${MID}/INTDIVP.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${INTDIVPDEPS} \n )co INTDIVP.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${INTDIVPDEPS} \n )co AFALGRES.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
 
 \section{Broken Files}
 These files are Aldor files
@@ -17963,6 +17998,7 @@ SPADHELP=\
  ${HELP}/IntegerNumberTheoryFunctions.help \
  ${HELP}/InterfaceGroebnerPackage.help \
  ${HELP}/InterpolateFormsPackage.help \
+ ${HELP}/IntersectionDivisorPackage.help \
  ${HELP}/Interval.help \
  ${HELP}/Kernel.help \
  ${HELP}/KeyedAccessFile.help \
@@ -18172,6 +18208,7 @@ REGRESS= \
  IntegerNumberTheoryFunctions.regress \
  InterfaceGroebnerPackage.regress \
  InterpolateFormsPackage.regress \
+ IntersectionDivisorPackage.regress \
  Interval.regress \
  Kernel.regress \
  KeyedAccessFile.regress \
@@ -19161,6 +19198,18 @@ ${HELP}/InterpolateFormsPackage.help: ${BOOKS}/bookvol10.4.pamphlet
             >${INPUT}/InterpolateFormsPackage.input
 	@echo "InterpolateFormsPackage (INTFRSP)" >>${HELPFILE}
 
+${HELP}/IntersectionDivisorPackage.help: ${BOOKS}/bookvol10.4.pamphlet
+	@echo 7456 create IntersectionDivisorPackage.help from \
+           ${BOOKS}/bookvol10.4.pamphlet
+	@${TANGLE} -R"IntersectionDivisorPackage.help" \
+           ${BOOKS}/bookvol10.4.pamphlet \
+           >${HELP}/IntersectionDivisorPackage.help
+	@cp ${HELP}/IntersectionDivisorPackage.help ${HELP}/INTDIVP.help
+	@${TANGLE} -R"IntersectionDivisorPackage.input" \
+            ${BOOKS}/bookvol10.4.pamphlet \
+            >${INPUT}/IntersectionDivisorPackage.input
+	@echo "IntersectionDivisorPackage (INTDIVP)" >>${HELPFILE}
+
 ${HELP}/Interval.help: ${BOOKS}/bookvol10.3.pamphlet
 	@echo 7457 create Interval.help from ${BOOKS}/bookvol10.3.pamphlet
 	@${TANGLE} -R"Interval.help" ${BOOKS}/bookvol10.3.pamphlet \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 0f5f261..7afd192 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2793,5 +2793,7 @@ books/bookvol10.4 add LocalParametrizationOfSimplePointPackage<br/>
 books/bookvol10.4 add DesingTreePackage, ParametrizationPackage<br/>
 <a href="patches/20100523.04.tpd.patch">20100523.04.tpd.patch</a>
 books/bookvol10.4 add InterpolateFormsPackage<br/>
+<a href="patches/20100524.01.tpd.patch">20100524.01.tpd.patch</a>
+books/bookvol10.4 add IntersectionDivisorPackage<br/>
  </body>
 </html>
