diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet
index ee90588..06a2a5a 100644
--- a/books/bookvol10.2.pamphlet
+++ b/books/bookvol10.2.pamphlet
@@ -49767,6 +49767,261 @@ digraph pic {
 
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pagehead{InfinitlyClosePointCategory}{INFCLCT}
+\pagepic{ps/v102infinitlyclosepointcategory.eps}{INFCLCT}{0.50}
+<<InfinitlyClosePointCategory.input>>=
+)set break resume
+)sys rm -f InfinitlyClosePointCategory.output
+)spool InfinitlyClosePointCategory.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show InfinitlyClosePointCategory
+--I InfinitlyClosePointCategory(K: Field,
+--I symb: List Symbol,
+--I PolyRing: PolynomialCategory(t#1,t#4,OrderedVariableList t#2),
+--I E: DirectProductCategory(# t#2,NonNegativeInteger),
+--I ProjPt: ProjectiveSpaceCategory t#1,
+--I PCS: LocalPowerSeriesCategory t#1,
+--I Plc: PlacesCategory(t#1,t#6),
+--I DIVISOR: DivisorCategory t#7,
+--I BLMET: BlowUpMethodCategory) is a category constructor
+--I Abbreviation for InfinitlyClosePointCategory is INFCLCT 
+--I This constructor is exposed in this frame.
+--I Issue )edit bookvol10.2.pamphlet to see algebra source code for INFCLCT 
+--I
+--I------------------------------- Operations --------------------------------
+--I ?=? : (%,%) -> Boolean                actualExtensionV : % -> K
+--I chartV : % -> BLMET                   coerce : % -> OutputForm
+--I create : (ProjPt,PolyRing) -> %       degree : % -> PositiveInteger
+--I excpDivV : % -> DIVISOR               hash : % -> SingleInteger
+--I latex : % -> String                   localParamV : % -> List PCS
+--I localPointV : % -> AffinePlane K      multV : % -> NonNegativeInteger
+--I pointV : % -> ProjPt                  setchart! : (%,BLMET) -> BLMET
+--I setpoint! : (%,ProjPt) -> ProjPt      symbNameV : % -> Symbol
+--I ?~=? : (%,%) -> Boolean              
+--I create : (ProjPt,
+--I  DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),
+--I  AffinePlane K,
+--I  NonNegativeInteger,
+--I  BLMET,
+--I  NonNegativeInteger,
+--I  DIVISOR,
+--I  K,
+--I  Symbol) -> %
+--I curveV : % -> 
+--I  DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+--I setcurve! : 
+--I  (%,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)) -> 
+--I  DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+--I setexcpDiv! : (%,DIVISOR) -> DIVISOR
+--I setlocalParam! : (%,List PCS) -> List PCS
+--I setlocalPoint! : (%,AffinePlane K) -> AffinePlane K
+--I setmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+--I setsubmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+--I setsymbName! : (%,Symbol) -> Symbol
+--I subMultV : % -> NonNegativeInteger
+--I
+--E 1
+
+)spool
+)lisp (bye)
+@
+<<InfinitlyClosePointCategory.help>>=
+====================================================================
+InfinitlyClosePointCategory examples
+====================================================================
+
+See Also:
+o )show InfinitlyClosePointCategory
+
+@
+
+\pagefrom{SetCategoryWithDegree}{SETCATD}
+
+{\bf Exports:}\\
+\begin{tabular}{llll}
+\cross{INFCLCT}{?=?} &
+\cross{INFCLCT}{?\~{}=?} &
+\cross{INFCLCT}{actualExtensionV} &
+\cross{INFCLCT}{chartV} \\
+\cross{INFCLCT}{coerce} &
+\cross{INFCLCT}{create} &
+\cross{INFCLCT}{curveV} &
+\cross{INFCLCT}{degree} \\
+\cross{INFCLCT}{excpDivV} &
+\cross{INFCLCT}{hash} &
+\cross{INFCLCT}{latex} &
+\cross{INFCLCT}{localParamV} \\
+\cross{INFCLCT}{localPointV} &
+\cross{INFCLCT}{multV} &
+\cross{INFCLCT}{pointV} &
+\cross{INFCLCT}{setchart!} \\
+\cross{INFCLCT}{setcurve!} &
+\cross{INFCLCT}{setexcpDiv!} &
+\cross{INFCLCT}{setlocalParam!} &
+\cross{INFCLCT}{setlocalPoint!} \\
+\cross{INFCLCT}{setmult!} &
+\cross{INFCLCT}{setpoint!} &
+\cross{INFCLCT}{setsubmult!} &
+\cross{INFCLCT}{setsymbName!} \\
+\cross{INFCLCT}{subMultV} &
+\cross{INFCLCT}{symbNameV} &&
+\end{tabular} 
+
+These are directly exported but not implemented:
+\begin{verbatim}
+ actualExtensionV : % -> K
+ chartV : % -> BLMET                  
+ create :
+  (ProjPt,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K),
+   AffinePlane K,NonNegativeInteger,BLMET,NonNegativeInteger,DIVISOR,K,Symbol)
+     -> %
+ create : (ProjPt,PolyRing) -> %      
+ curveV : % -> DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+ excpDivV : % -> DIVISOR              
+ localParamV : % -> List PCS
+ localPointV : % -> AffinePlane K     
+ multV : % -> NonNegativeInteger
+ pointV : % -> ProjPt                 
+ setchart! : (%,BLMET) -> BLMET
+ setcurve! :
+   (%,DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)) -> 
+     DistributedMultivariatePolynomial([construct,QUOTEX,QUOTEY],K)
+ setexcpDiv! : (%,DIVISOR) -> DIVISOR
+ setlocalParam! : (%,List PCS) -> List PCS
+ setlocalPoint! : (%,AffinePlane K) -> AffinePlane K
+ setmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+ setpoint! : (%,ProjPt) -> ProjPt     
+ setsubmult! : (%,NonNegativeInteger) -> NonNegativeInteger
+ setsymbName! : (%,Symbol) -> Symbol
+ subMultV : % -> NonNegativeInteger
+ symbNameV : % -> Symbol
+\end{verbatim}
+
+These exports come from \refto{SetCategoryWithDegree}:
+\begin{verbatim}
+ ?=? : (%,%) -> Boolean               
+ ?~=? : (%,%) -> Boolean
+ coerce : % -> OutputForm
+ degree : % -> PositiveInteger        
+ hash : % -> SingleInteger
+ latex : % -> String                  
+\end{verbatim}
+
+<<category INFCLCT InfinitlyClosePointCategory>>=
+)abbrev category INFCLCT InfinitlyClosePointCategory
+++ Authors: Gaetan Hache
+++ Date Created: may 1997 
+++ Date Last Updated: April 2010, by Tim Daly
+++ Description: 
+++ This category is part of the PAFF package
+InfinitlyClosePointCategory(_
+     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),_
+     BLMET    :BlowUpMethodCategory_
+       ):Category == Exports where
+
+ bls      ==> ['X,'Y]
+ BlUpRing ==> DistributedMultivariatePolynomial(bls , K)
+ AFP      ==> AffinePlane(K)
+
+ Exports ==> SetCategoryWithDegree with
+
+    create:  (ProjPt ,  BlUpRing, AFP , NonNegativeInteger,BLMET, _
+              NonNegativeInteger,  DIVISOR,K,Symbol) -> %  
+      ++ create an infinitly close point
+
+    create:  (ProjPt,PolyRing) -> %
+      
+    setpoint_!:  (%,ProjPt) -> ProjPt
+
+    setcurve_!:  (%,BlUpRing) -> BlUpRing
+
+    setlocalPoint_!:   (%,AFP) -> AFP
+ 
+    setsubmult_! : (%, NonNegativeInteger) -> NonNegativeInteger
+
+    setmult_!:    (%,NonNegativeInteger) -> NonNegativeInteger
+ 
+    setchart_!:   (%,BLMET) -> BLMET -- CHH
+
+    setexcpDiv_!: (%,DIVISOR) -> DIVISOR
+
+    setlocalParam_!: (%,List PCS) -> List(PCS)
+
+    setsymbName_!: (%,Symbol) -> Symbol
+ 
+    subMultV: % -> NonNegativeInteger
+
+    localParamV: % -> List PCS
+
+    symbNameV: % -> Symbol
+
+    pointV:  % -> ProjPt
+      ++ pointV returns the infinitly close point.
+
+    curveV:  % -> BlUpRing
+      ++ curveV(p) returns the defining polynomial of the strict transform 
+      ++ on which lies the corresponding infinitly close point.
+
+    localPointV: % -> AFP
+      ++ localPointV returns the coordinates of the local infinitly 
+      ++ close point
+
+    multV:       % -> NonNegativeInteger
+      ++ multV returns the multiplicity of the infinitly close point.
+
+    chartV:      % -> BLMET -- CHH
+      ++ chartV is the chart of the infinitly close point. The first integer 
+      ++ correspond to variable defining the exceptional line, the last one 
+      ++ the affine  neighboorhood and the second one is the 
+      ++ remaining integer. For example [1,2,3] means that
+      ++ Z=1, X=X and Y=XY. [2,3,1] means that X=1, Y=Y and Z=YZ.     
+
+    excpDivV:    % -> DIVISOR
+      ++ excpDivV returns the exceptional divisor of the infinitly close point.
+
+    actualExtensionV: % -> K
+
+@
+<<INFCLCT.dotabb>>=
+"INFCLCT" [color=lightblue,href="bookvol10.2.pdf#nameddest=INFCLCT"];
+"ALIST" [color="#88FF44",href="bookvol10.3.pdf#nameddest=ALIST"]
+"INFCLCT" -> "ALIST"
+
+@
+<<INFCLCT.dotfull>>=
+"InfinitlyClosePointCategory"
+ [color=lightblue,href="bookvol10.2.pdf#nameddest=INFCLCT"];
+"InfinitlyClosePointCategory" -> "AssocationList(SetCategory,SetCategory)"
+
+@
+<<INFCLCT.dotpic>>=
+digraph pic {
+ fontsize=10;
+ bgcolor="#FFFF66";
+ node [shape=box, color=white, style=filled];
+
+"InfinitlyClosePointCategory" [color=lightblue];
+"InfinitlyClosePointCategory" -> "AssocationList(SetCategory,SetCategory)"
+
+"AssocationList(SetCategory,SetCategory)" -> "AssocationList()"
+
+"AssocationList()" [color=lightblue];
+
+}
+
+@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pagehead{PseudoAlgebraicClosureOfPerfectFieldCategory}{PACPERC}
 \pagepic{ps/v102pseudoalgebraicclosureofperfectfieldcategory.ps}{PACPERC}{0.50}
 <<PseudoAlgebraicClosureOfPerfectFieldCategory.input>>=
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 1f8b634..c945503 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -24430,6 +24430,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|HyperbolicFunctionCategory| . HYPCAT)
    (|IndexedAggregate| . IXAGG)
    (|IndexedDirectProductCategory| . IDPC)
+   (|InfinitlyClosePointCategory| . INFCLCT)
    (|InnerEvalable| . IEVALAB)
    (|IntegerNumberSystem| . INS)
    (|IntegralDomain| . INTDOM)
diff --git a/books/ps/v102infinitlyclosepointcategory.eps b/books/ps/v102infinitlyclosepointcategory.eps
new file mode 100644
index 0000000..08f5949
--- /dev/null
+++ b/books/ps/v102infinitlyclosepointcategory.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 120 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 120 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 84 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% INFCLCT
+gsave
+[ /Rect [ 0 72 76 108 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=INFCLCT) >>
+  /Subtype /Link
+/ANN pdfmark
+0.537 0.247 0.902 nodecolor
+newpath 76 108 moveto
+0 108 lineto
+0 72 lineto
+76 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.537 0.247 0.902 nodecolor
+newpath 76 108 moveto
+0 108 lineto
+0 72 lineto
+76 72 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+8 85.9 moveto 60 (INFCLCT) alignedtext
+grestore
+% ALIST
+gsave
+[ /Rect [ 10 0 66 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=ALIST) >>
+  /Subtype /Link
+/ANN pdfmark
+0.273 0.733 1.000 nodecolor
+newpath 66 36 moveto
+10 36 lineto
+10 0 lineto
+66 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.273 0.733 1.000 nodecolor
+newpath 66 36 moveto
+10 36 lineto
+10 0 lineto
+66 0 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+17.5 13.9 moveto 41 (ALIST) alignedtext
+grestore
+% INFCLCT->ALIST
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 38 72 moveto
+38 64 38 55 38 46 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 41.5 46 moveto
+38 36 lineto
+34.5 46 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 41.5 46 moveto
+38 36 lineto
+34.5 46 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 180fa9c..f395745 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20100518 tpd src/axiom-website/patches.html 20100518.05.tpd.patch
+20100518 tpd src/algebra/Makefile help and test for INFCLPT
+20100518 tpd books/bookvol5 expose InfinitlyClosePointCategory
+20100518 tpd books/bookvol10.2 add InfinitlyClosePointCategory
+20100518 tpd books/ps/v102infinitlyclosepointcategory.eps added
 20100518 tpd src/axiom-website/patches.html 20100518.04.tpd.patch
 20100518 tpd books/bookvol10.2 PLACES  use eps form for bounding box
 20100518 tpd books/ps/v102placescategory.eps use eps form for bounding box
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index f1760dd..7ee9db0 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -10118,6 +10118,7 @@ LAYER16=\
   ${OUT}/FR.o       ${OUT}/FRNAALG.o  ${OUT}/FRNAALG-.o ${OUT}/FS.o       \
   ${OUT}/FS-.o      ${OUT}/FST.o      ${OUT}/FUNCTION.o ${OUT}/GDMP.o     \
   ${OUT}/GOPT.o     ${OUT}/GOPT0.o    ${OUT}/HACKPI.o   ${OUT}/IDEAL.o    \
+  ${OUT}/INFCLCT.o  \
   ${OUT}/INFORM.o   ${OUT}/INFORM1.o  ${OUT}/IPRNTPK.o  ${OUT}/IR.o       \
   ${OUT}/ISUPS.o    ${OUT}/KERNEL.o   ${OUT}/LIB.o      ${OUT}/LMDICT.o   \
   ${OUT}/LODO.o     ${OUT}/LODOOPS.o  ${OUT}/MATRIX.o   ${OUT}/MKFLCFN.o  \
@@ -11020,6 +11021,15 @@ LAYER16=\
 /*"IDEAL" -> {"IARRAY1"; "VECTCAT-"; "IXAGG-"; "CLAGG-"; "HOAGG-"; "ORDSET-"}*/
 /*"IDEAL" -> {"AGG-"; "ELTAGG-"; "SETCAT-"; "BASTYPE-"; "VECTCAT"; "A1AGG"}*/
 
+"INFCLCT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=INFCLCT"]
+/*"INFCLCT" -> {"PRSPCT"; LOCPOWC"; PLACESC"; DIVCAT"; BLMETCT"; "AFFPL"}*/
+/*"INFCLCT" -> {SETCATD"; SETCAT"; BASTYPE"; KOERCE"; NNI"; INT"; "OUTFORM"}*/
+/*"INFCLCT" -> {LIST"; SYMBOL"; "REF"}*/
+"INFCLCT" -> "ALIST"
+/*"INFCLCT" -> {STRING"; CHAR"; SINT"; PRIMARR"; A1AGG-"; "ISTRING"}*/
+/*"INFCLCT" -> {SRAGG-"; FLAGG-"; LNAGG-"; ILIST"; LSAGG-"; "STAGG-"}*/
+/*"INFCLCT" -> {ELAGG-"; "URAGG-"}*?
+
 "INFORM" [color="#88FF44",href="bookvol10.3.pdf#nameddest=INFORM"]
 /*"INFORM" -> {"SEXCAT"; "SETCAT"; "BASTYPE"; "KOERCE"; "KONVERT"; "ORDSET"}*/
 /*"INFORM" -> {"INS"; "UFD"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"; "RNG"}*/
@@ -16604,6 +16614,21 @@ ${MID}/PLACESPS.nrlib/code.o: ${MID}/PLACESPS.spad
 	      | ${INTERPSYS} >${TMP}/trace ; \
 	   fi )
 @
+<<newcode>>=
+ 
+INFCLCTDEPS = PRSPCT LOCPOWC PLACESC DIVCAT BLMETCT AFFPL SETCATD
+
+${MID}/INFCLCT.nrlib/code.o: ${MID}/INFCLCT.spad
+	@echo P3 making ${MID}/INFCLCT.nrlib/code.o from ${MID}/INFCLCT.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${INFCLCTDEPS} \n )co INFCLCT.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${INFCLCTDEPS} \n )co INFCLCT.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
 
 \section{Broken Files}
 These files are Aldor files
@@ -17367,6 +17392,7 @@ SPADHELP=\
  ${HELP}/HexadecimalExpansion.help \
  ${HELP}/HomogeneousDistributedMultivariatePolynomial.help \
  ${HELP}/IndexedBits.help \
+ ${HELP}/InfinitlyClosePointCategory.help \
  ${HELP}/Integer.help \
  ${HELP}/IntegerCombinatoricFunctions.help \
  ${HELP}/IntegerLinearDependence.help \
@@ -17558,6 +17584,7 @@ REGRESS= \
  HexadecimalExpansion.regress \
  HomogeneousDistributedMultivariatePolynomial.regress \
  IndexedBits.regress \
+ InfinitlyClosePointCategory.regress \
  Integer.regress \
  IntegerCombinatoricFunctions.regress \
  IntegerLinearDependence.regress \
@@ -18332,6 +18359,18 @@ ${HELP}/IndexedBits.help: ${BOOKS}/bookvol10.3.pamphlet
             >${INPUT}/IndexedBits.input
 	@echo "IndexedBits (IBITS)" >>${HELPFILE}
 
+${HELP}/InfinitlyClosePointCategory.help: ${BOOKS}/bookvol10.2.pamphlet
+	@echo 7417 create InfinitlyClosePointCategory.help from \
+           ${BOOKS}/bookvol10.2.pamphlet
+	@${TANGLE} -R"InfinitlyClosePointCategory.help" \
+           ${BOOKS}/bookvol10.2.pamphlet \
+           >${HELP}/InfinitlyClosePointCategory.help
+	@cp ${HELP}/InfinitlyClosePointCategory.help ${HELP}/INFCLCT.help
+	@${TANGLE} -R"InfinitlyClosePointCategory.input" \
+           ${BOOKS}/bookvol10.2.pamphlet \
+           >${INPUT}/InfinitlyClosePointCategory.input
+	@echo "InfinitlyClosePointCategory (INFCLCT)" >>${HELPFILE}
+
 ${HELP}/Integer.help: ${BOOKS}/bookvol10.3.pamphlet
 	@echo 7420 create Integer.help from ${BOOKS}/bookvol10.3.pamphlet
 	@${TANGLE} -R"Integer.help" ${BOOKS}/bookvol10.3.pamphlet \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a6ff992..423bf47 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2755,5 +2755,7 @@ books/ps/v103places.eps add new constraint<br/>
 books/bookvol10.3 add PlacesOverPseudoAlgebraicClosureOfFiniteField
 <a href="patches/20100518.04.tpd.patch">20100518.04.tpd.patch</a>
 books/bookvol10.2 PLACES  use eps form for bounding box<br/>
+<a href="patches/20100518.05.tpd.patch">20100518.05.tpd.patch</a>
+books/bookvol10.2 add InfinitlyClosePointCategory<br/>
  </body>
 </html>
