diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index d873759..fb36ea7 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -78337,6 +78337,201 @@ PlaneAlgebraicCurvePlot(): PlottablePlaneCurveCategory _
 
 @
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{domain PLCS Plcs}
+<<Plcs.input>>=
+)set break resume
+)sys rm -f Plcs.output
+)spool Plcs.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 1
+)show Plcs
+--R Plcs(K: Field,PCS: LocalPowerSeriesCategory K)  is a domain constructor
+--R Abbreviation for Plcs is PLCS 
+--R This constructor is exposed in this frame.
+--R Issue )edit bookvol10.3.pamphlet to see algebra source code for PLCS 
+--R
+--R------------------------------- Operations --------------------------------
+--R ?*? : (Integer,%) -> Divisor %        ?+? : (%,%) -> Divisor %
+--R -? : % -> Divisor %                   ?-? : (%,%) -> Divisor %
+--R ?=? : (%,%) -> Boolean                coerce : % -> OutputForm
+--R create : Symbol -> %                  create : List K -> %
+--R degree : % -> PositiveInteger         ?.? : (%,Integer) -> K
+--R foundPlaces : () -> List %            hash : % -> SingleInteger
+--R itsALeaf! : % -> Void                 latex : % -> String
+--R leaf? : % -> Boolean                  localParam : % -> List PCS
+--R reduce : List % -> Divisor %          setParam! : (%,List PCS) -> Void
+--R ?~=? : (%,%) -> Boolean              
+--R ?+? : (%,Divisor %) -> Divisor %
+--R ?+? : (Divisor %,%) -> Divisor %
+--R ?-? : (%,Divisor %) -> Divisor %
+--R ?-? : (Divisor %,%) -> Divisor %
+--R setDegree! : (%,PositiveInteger) -> Void
+--R setFoundPlacesToEmpty : () -> List %
+--R
+--E 1
+
+)spool
+)lisp (bye)
+@
+<<Plcs.help>>=
+====================================================================
+Plcs examples
+====================================================================
+
+See Also:
+o )show Plcs
+
+@
+\pagehead{Plcs}{PLCS}
+\pagepic{ps/v103plcs.eps}{PLCS}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lllll}
+\end{tabular}
+
+<<domain PLCS Plcs>>=
+)abbrev domain PLCS Plcs
+++ 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
+Plcs(K:Field,PCS:LocalPowerSeriesCategory(K)):Exports == Implementation where
+  
+  nameOfPlace ==> Union( List(K), Symbol )
+  
+  rec ==> Record(theName:nameOfPlace,_
+                 locPar: List PCS,_
+		 deg: PositiveInteger,_
+		 isALeaf:Boolean,_
+		 inName:Symbol,_
+		 actualSet:Symbol)
+  
+  Exports ==> PlacesCategory(K,PCS) 
+    
+  Implementation ==>   add
+
+    Rep:= rec
+
+    setOfPlacesName:Symbol:=new(ActualSetOfPlacesName)$Symbol
+
+    a:% + b:% == (a:: Divisor(%)) +$Divisor(%) (b::Divisor(%))
+
+    a:% - b:% == (a:: Divisor(%)) -$Divisor(%) (b::Divisor(%))
+
+    n:Integer * b:% == n *$Divisor(%) (b :: Divisor(%))
+
+    reduce(lp)==
+      lpd:List Divisor(%):= [p :: Divisor(%) for p in lp]
+      reduce("+", lpd, 0$Divisor(%))
+
+    d:Divisor(%) + b:% == d + (b::Divisor(%))
+
+    a:% + d:Divisor(%) == (a::Divisor(%)) + d
+
+    d:Divisor(%) - b:% == d - (b::Divisor(%))
+
+    a:% - d:Divisor(%) == (a::Divisor(%)) - d
+
+    -a:% == - ( a::Divisor(%))
+    
+    outName: nameOfPlace -> OutputForm
+
+    outName(pt)==
+      pt case Symbol => pt :: OutputForm
+      dd:OutputForm:= ":" :: OutputForm
+      llout:List(OutputForm):=[ hconcat(dd, a::OutputForm) for a in rest pt]
+      lout:= cons( (first pt)::OutputForm , llout)
+      out:= hconcat lout
+      bracket(out)
+      
+    coerce(pt:%):OutputForm == 
+      nn:OutputForm:= outName(pt.theName)
+      ee:OutputForm:= degree(pt) :: OutputForm
+      nn ** ee
+
+    a:% = b:% == 
+      ^(a.actualSet =$Symbol b.actualSet) => 
+        a:String:=
+         "From Places Domain: Cannot use old places with new places."
+          " You have declared two different package PAFF or PAFFFF with the "
+           "same arguments. This is not allowed because in that case the two "
+            "packages used the same domain to represent the set of places. "
+             "Two packages having the same arguments should be used in "
+              "different frame"
+        error a
+      a.inName =$Symbol b.inName
+
+    elt(pl,n)== 
+      pt:= (pl :: Rep).theName
+      pt case Symbol => _
+        error "From Places domain : cannot return the coordinates of a leaf"
+      elt(pt,n)$List(K)
+
+    leaf?(pl)==pl.isALeaf
+    
+    itsALeaf_!(pl)==
+      pl.isALeaf := true()
+      void()
+
+    listOfFoundPlaces:List %:=[]
+
+    foundPlaces()==listOfFoundPlaces
+    
+    setFoundPlacesToEmpty()==
+      tmp:=copy listOfFoundPlaces
+      listOfFoundPlaces:=[]
+      setOfPlacesName:Symbol:=new(ActualSetOfPlacesName)$Symbol
+      tmp
+
+    findInExistOnes: % -> %
+    findInExistOnes(pt)==
+      ll:=listOfFoundPlaces
+      found:Boolean:=false()
+      fpl:%
+      while ^found and  ^empty?(ll) repeat
+        fpl:= first ll
+	-- remember: the "=" test is on done on the symbolic name
+	found:= pt.theName = fpl.theName
+	ll:=rest ll
+      ^found => 
+        listOfFoundPlaces:=cons(pt,listOfFoundPlaces)
+        pt
+      fpl
+      
+    create(pt:List(K)):%==
+      newName:=new(SIMPLE)$Symbol
+      newPt:%:=[pt,[],1,false(),newName,setOfPlacesName]$rec
+      findInExistOnes(newPt)
+
+    create(pt:Symbol):%==
+      newPt:%:=[pt,[],1,false(),pt,setOfPlacesName]$rec
+      findInExistOnes(newPt)
+
+    setDegree_!(pt,d)==
+      pt.deg := d
+      void()
+
+    setParam_!(pt,ls)==
+      pt.locPar:=ls
+      void()
+
+    localParam(pt)==pt.locPar
+
+    degree(pl)==pl.deg
+
+
+@
+<<PLCS.dotabb>>=
+"PLCS" [color="#88FF44",href="bookvol10.3.pdf#nameddest=PLCS"];
+"LOCPOWC" [color=lightblue,href="bookvol10.2.pdf#nameddest=LOCPOWC"];
+"PLCS" -> "LOCPOWC"
+
+@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{domain PLOT Plot}
 <<Plot.input>>=
 )set break resume
@@ -125715,6 +125910,7 @@ Note that this code is not included in the generated catdef.spad file.
 <<domain PERMGRP PermutationGroup>>
 <<domain HACKPI Pi>>
 <<domain ACPLOT PlaneAlgebraicCurvePlot>>
+<<domain PLCS Plcs>>
 <<domain PLOT Plot>>
 <<domain PLOT3D Plot3D>>
 <<domain PBWLB PoincareBirkhoffWittLyndonBasis>>
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 2fc88e6..d456252 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -24089,6 +24089,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|Permutation| . PERM)
    (|Pi| . HACKPI)
    (|PiCoercions| . PICOERCE)
+   (|Plcs| . PLCS)
    (|PointFunctions2| . PTFUNC2)
    (|PolyGroebner| . PGROEB)
    (|Polynomial| . POLY)
@@ -24478,6 +24479,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
    (|Patternable| . PATAB)
    (|PatternMatchable| . PATMAB)
    (|PermutationCategory| . PERMCAT)
+   (|PlacesCategory| . PLACESC)
    (|PlottablePlaneCurveCategory| . PPCURVE)
    (|PlottableSpaceCurveCategory| . PSCURVE)
    (|PointCategory| . PTCAT)
diff --git a/books/ps/v103plcs.eps b/books/ps/v103plcs.eps
new file mode 100644
index 0000000..e489d48
--- /dev/null
+++ b/books/ps/v103plcs.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 134 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 134 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 98 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% PLCS
+gsave
+[ /Rect [ 18 72 72 108 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=PLCS) >>
+  /Subtype /Link
+/ANN pdfmark
+0.273 0.733 1.000 nodecolor
+newpath 72 108 moveto
+18 108 lineto
+18 72 lineto
+72 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.273 0.733 1.000 nodecolor
+newpath 72 108 moveto
+18 108 lineto
+18 72 lineto
+72 72 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+27 85.9 moveto 36 (PLCS) alignedtext
+grestore
+% LOCPOWC
+gsave
+[ /Rect [ 0 0 90 36 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=LOCPOWC) >>
+  /Subtype /Link
+/ANN pdfmark
+0.537 0.247 0.902 nodecolor
+newpath 90 36 moveto
+0 36 lineto
+0 0 lineto
+90 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.537 0.247 0.902 nodecolor
+newpath 90 36 moveto
+0 36 lineto
+0 0 lineto
+90 0 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+8 13.9 moveto 74 (LOCPOWC) alignedtext
+grestore
+% PLCS->LOCPOWC
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 45 72 moveto
+45 64 45 55 45 46 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 48.5 46 moveto
+45 36 lineto
+41.5 46 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 48.5 46 moveto
+45 36 lineto
+41.5 46 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 16787e3..32d038a 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20100517 tpd src/axiom-website/patches.html 20100517.05.tpd.patch
+20100517 tpd src/algebra/Makefile help and test for Plcs
+20100517 tpd books/bookvol5 expose Plcs
+20100517 tpd books/bookvol10.3 add Plcs
+20100517 tpd books/ps/v103plcs.eps added
 20100517 tpd src/axiom-website/patches.html 20100517.04.tpd.patch
 20100517 tpd books/bookvol10.2 fix the image to use .eps
 20100517 tpd books/ps/v102placescategory.eps use eps for bounding box
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 1b8a4c6..4c941a2 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -808,7 +808,7 @@ LAYER2=\
   ${OUT}/NARNG.o    ${OUT}/NARNG-.o   ${OUT}/NSUP2.o    ${OUT}/OASGP.o    \
   ${OUT}/ODVAR.o    ${OUT}/OPQUERY.o  ${OUT}/ORDFIN.o   ${OUT}/ORDMON.o   \
   ${OUT}/PATMATCH.o ${OUT}/PERMCAT.o  ${OUT}/PDRING.o   ${OUT}/PDRING-.o  \
-  ${OUT}/PRSPCAT.o  \
+  ${OUT}/PLACESC.o  ${OUT}/PRSPCAT.o  \
   ${OUT}/SDVAR.o    ${OUT}/SEGXCAT.o  ${OUT}/SUP2.o     ${OUT}/TRIGCAT.o  \
   ${OUT}/TRIGCAT-.o ${OUT}/ULS2.o     ${OUT}/UP2.o \
   layer2done
@@ -817,7 +817,7 @@ LAYER2=\
 <<layerpic>>=
 /* layer 2 */
 /* AGG ELTAGG FINITE FORTCAT IDPC IEVALAB LMODULE MONAD ORDSET */
-/* PATMAB RETRACT RMODULE SEGCAT SGROUP */
+/* PATMAB RETRACT RMODULE SEGCAT SGROUP SETCATD */
 
 "AFSPCAT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=AFSPCAT",
           shape=ellipse]
@@ -1197,6 +1197,11 @@ LAYER2=\
 /*"RNG" -> "KOERCE"*/
 "RNG" -> "SGROUP"
 
+"PLACESC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PLACESC",
+          shape=ellipse]
+"PLACESC" -> "SETCATD"
+/*"PLACESC" -> {"SETCAT"; "BASTYPE"; "KOERCE"}*/
+
 "PRSPCAT" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PRSPCAT",
           shape=ellipse]
 "PRSPCAT" -> "SETCATD"
@@ -4635,7 +4640,7 @@ LAYER9=\
 
 @
 \subsection{Layer10}
-Depends on: IVECTOR PTCAT STRICAT\\
+Depends on: IVECTOR PTCAT STRICAT LOCPOWC\\
 Used by next layer: DIRPCAT FAXF PFECAT STRING
 <<layer10>>=
 
@@ -10124,7 +10129,7 @@ LAYER16=\
   ${OUT}/OC.o       ${OUT}/OC-.o      ${OUT}/ODEPACK.o  ${OUT}/ODERAT.o   \
   ${OUT}/OMERR.o    ${OUT}/OMERRK.o   ${OUT}/OPTPACK.o  ${OUT}/OSI.o      \
   ${OUT}/OVAR.o     ${OUT}/PACOFF.o   ${OUT}/PACRAT.o  \
-  ${OUT}/PATTERN.o  ${OUT}/PMKERNEL.o ${OUT}/PMSYM.o    \
+  ${OUT}/PATTERN.o  ${OUT}/PLCS.o     ${OUT}/PMKERNEL.o ${OUT}/PMSYM.o    \
   ${OUT}/POLY.o     ${OUT}/PRIMELT.o  ${OUT}/QALGSET2.o ${OUT}/QEQUAT.o   \
   ${OUT}/QUATCAT.o  ${OUT}/QUATCAT-.o ${OUT}/RECLOS.o   ${OUT}/REP1.o     \
   ${OUT}/RESULT.o   ${OUT}/RFFACT.o   ${OUT}/RMATRIX.o  ${OUT}/ROMAN.o    \
@@ -11633,6 +11638,23 @@ LAYER16=\
 /*"PATTERN" -> {"ELTAGG-"; "SETCAT-"; "BASTYPE-"; "PATMAB"; "MONOID"}*/
 /*"PATTERN" -> {"SGROUP"; "ABELMON"; "ABELSG"; "PI"}*/
 
+"PLCS" [color="#88FF44",href="bookvol10.3.pdf#nameddest=PLCS"]
+/*"PLCS" -> {"PLACESC"; "SETCATD"; "SETCAT"; "BASTYPE"; "KOERCE"; "FIELD"}*/
+/*"PLCS" -> {"EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"; "RING"; "RNG"}*/
+/*"PLCS" -> {"ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"; "SGROUP"; "MONOID"}*/
+/*"PLCS" -> {"LMODULE"; "BMODULE"; "RMODULE"; "ALGEBRA"; "MODULE"; "ENTIRER"}*/
+/*"PLCS" -> {"UFD"; "DIVRING"}*/
+"PLCS" -> "ALIST"
+/*"PLCS" -> {"UPSCAT"; "PSCAT"; "AMR"; "CHARZ"; "CHARNZ"; "ELTAB"; "DIFRING"}*/
+/*"PLCS" -> {"PDRING"; "SYMBOL"; "INT"; "REF"; "LOCPOWC"; "LIST"; "STRING"}*/
+/*"PLCS" -> {"CHAR"; "SINT"; "OUTFORM"; "PRIMARR"; "A1AGG-"; "ISTRING"}*/
+/*"PLCS" -> {"SRAGG-"; "FLAGG-"; "LNAGG-"; "LSAGG"; "STAGG"; "URAGG"}*/
+/*"PLCS" -> {"RCAGG"; "HOAGG"; "AGG"; "TYPE"; "EVALAB"; "IEVALAB"; "LNAGG"}*/
+/*"PLCS" -> {"IXAGG"; "ELTAGG"; "CLAGG"; "KONVERT"; "FLAGG"; "ORDSET"}*/
+/*"PLCS" -> {"ELAGG"; "OM"; "ILIST"; "LSAGG-"; "STAGG-"; "ELAGG-"; "URAGG-"}*/
+/*"PLCS" -> {"RCAGG-"; "IXAGG-"; "CLAGG-"; "HOAGG-"; "ORDSET-"; "AGG-"}*/
+/*"PLCS" -> {"ELTAGG-"; "SETCAT-"; "BASTYPE-"; "PI"; "NNI"; "BOOLEAN"}*/
+
 "PMKERNEL" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PMKERNEL"]
 /*"PMKERNEL" -> {"SETCAT"; "BASTYPE"; "KOERCE"; "ORDSET"; "RETRACT"}*/
 /*"PMKERNEL" -> {"KONVERT"; "PATMAB"; "LSAGG"; "STAGG"; "URAGG"; "RCAGG"}*/
@@ -16501,6 +16523,36 @@ ${MID}/DIV.nrlib/code.o: ${MID}/DIV.spad
 	      | ${INTERPSYS} >${TMP}/trace ; \
 	   fi )
 @
+<<newcode>>=
+ 
+PLACESCDEPS = SETCATD 
+
+${MID}/PLACESC.nrlib/code.o: ${MID}/PLACESC.spad
+	@echo P3 making ${MID}/PLACESC.nrlib/code.o from ${MID}/PLACESC.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${PLACESCDEPS} \n )co PLACESC.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${PLACESCDEPS} \n )co PLACESC.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
+<<newcode>>=
+ 
+PLCSDEPS = LOCPOWC PLACESC SETCATD DIV
+
+${MID}/PLCS.nrlib/code.o: ${MID}/PLCS.spad
+	@echo P3 making ${MID}/PLCS.nrlib/code.o from ${MID}/PLCS.spad
+	@ (cd ${MID} ; \
+	   if [ -z "${NOISE}" ] ; then \
+	    echo -e ")lib ${PLCSDEPS} \n )co PLCS.spad" \
+              | ${INTERPSYS} ; \
+           else \
+	    echo -e ")lib ${PLCSDEPS} \n )co PLCS.spad" \
+	      | ${INTERPSYS} >${TMP}/trace ; \
+	   fi )
+@
 
 \section{Broken Files}
 These files are Aldor files
@@ -17320,10 +17372,12 @@ SPADHELP=\
  ${HELP}/OrderlyDifferentialPolynomial.help \
  ${HELP}/PartialFraction.help \
  ${HELP}/PartialFractionPackage.help \
- ${HELP}/PlaneAlgebraicCurvePlot.help \
- ${HELP}/Plot.help \
  ${HELP}/Permanent.help \
  ${HELP}/Permutation.help \
+ ${HELP}/PlacesCategory.help \
+ ${HELP}/PlaneAlgebraicCurvePlot.help \
+ ${HELP}/Plcs.help \
+ ${HELP}/Plot.help \
  ${HELP}/Polynomial.help \
  ${HELP}/Product.help \
  ${HELP}/ProjectivePlane.help \
@@ -17495,7 +17549,9 @@ REGRESS= \
  PartialFractionPackage.regress \
  Permanent.regress \
  Permutation.regress \
+ PlacesCategory.regress \
  PlaneAlgebraicCurvePlot.regress \
+ Plcs.regress \
  Plot.regress \
  Polynomial.regress \
  Product.regress \
@@ -18818,6 +18874,18 @@ ${HELP}/Permutation.help: ${BOOKS}/bookvol10.3.pamphlet
             >${INPUT}/Permutation.input
 	@echo "Permutation (PERM)" >>${HELPFILE}
 
+${HELP}/PlacesCategory.help: ${BOOKS}/bookvol10.2.pamphlet
+	@echo 7905 create PlacesCategory.help from \
+            ${BOOKS}/bookvol10.2.pamphlet
+	@${TANGLE} -R"PlacesCategory.help" \
+          ${BOOKS}/bookvol10.2.pamphlet \
+           >${HELP}/PlacesCategory.help
+	@cp ${HELP}/PlacesCategory.help ${HELP}/PLACESC.help
+	@${TANGLE} -R"PlacesCategory.input" \
+           ${BOOKS}/bookvol10.2.pamphlet \
+            >${INPUT}/PlacesCategory.input
+	@echo "PlacesCategory (PLACESC)" >>${HELPFILE}
+
 ${HELP}/PlaneAlgebraicCurvePlot.help: ${BOOKS}/bookvol10.3.pamphlet
 	@echo 7910 create PlaneAlgebraicCurvePlot.help from \
             ${BOOKS}/bookvol10.3.pamphlet
@@ -18830,6 +18898,15 @@ ${HELP}/PlaneAlgebraicCurvePlot.help: ${BOOKS}/bookvol10.3.pamphlet
             >${INPUT}/PlaneAlgebraicCurvePlot.input
 	@echo "PlaneAlgebraicCurvePlot (ACPLOT)" >>${HELPFILE}
 
+${HELP}/Plcs.help: ${BOOKS}/bookvol10.3.pamphlet
+	@echo 7915 create Plcs.help from ${BOOKS}/bookvol10.3.pamphlet
+	@${TANGLE} -R"Plcs.help" ${BOOKS}/bookvol10.3.pamphlet \
+            >${HELP}/Plcs.help
+	@cp ${HELP}/Plcs.help ${HELP}/PLCS.help
+	@${TANGLE} -R"Plcs.input" ${BOOKS}/bookvol10.3.pamphlet \
+            >${INPUT}/Plcs.input
+	@echo "Plcs (PLCS)" >>${HELPFILE}
+
 ${HELP}/Plot.help: ${BOOKS}/bookvol10.3.pamphlet
 	@echo 7920 create Plot.help from ${BOOKS}/bookvol10.3.pamphlet
 	@${TANGLE} -R"Plot.help" ${BOOKS}/bookvol10.3.pamphlet \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ec7e453..a1d4b45 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2745,5 +2745,7 @@ books/bookvol10.2 add DIVCAT Description documentation<br/>
 books/bookvol10.3 add Divisor<br/>
 <a href="patches/20100517.04.tpd.patch">20100517.04.tpd.patch</a>
 books/bookvol10.2 fix the image to use .eps<br/>
+<a href="patches/20100517.05.tpd.patch">20100517.05.tpd.patch</a>
+books/bookvol10.3 add Plcs<br/>
  </body>
 </html>
