Index: branches/eam_branches/ipp-20120805/psModules/src/objects/Makefile.am
===================================================================
--- branches/eam_branches/ipp-20120805/psModules/src/objects/Makefile.am	(revision 34292)
+++ branches/eam_branches/ipp-20120805/psModules/src/objects/Makefile.am	(revision 34367)
@@ -49,4 +49,5 @@
 	pmSourceIO_CMF_PS1_DV1.c \
 	pmSourceIO_CMF_PS1_DV2.c \
+	pmSourceIO_CMF_PS1_DV3.c \
 	pmSourceIO_MatchedRefs.c \
 	pmSourcePlots.c \
@@ -133,5 +134,5 @@
 
 # pmSourceID_CMF_* functions use a common framework
-BUILT_SOURCES = pmSourceIO_CMF_PS1_V1.c pmSourceIO_CMF_PS1_V2.c pmSourceIO_CMF_PS1_V3.c pmSourceIO_CMF_PS1_DV1.c pmSourceIO_CMF_PS1_DV2.c pmSourceIO_CMF_PS1_SV1.c
+BUILT_SOURCES = pmSourceIO_CMF_PS1_V1.c pmSourceIO_CMF_PS1_V2.c pmSourceIO_CMF_PS1_V3.c pmSourceIO_CMF_PS1_DV1.c pmSourceIO_CMF_PS1_DV2.c pmSourceIO_CMF_PS1_DV3.c pmSourceIO_CMF_PS1_SV1.c
 
 pmSourceIO_CMF_PS1_V1.c : pmSourceIO_CMF.c.in mksource.pl
@@ -153,4 +154,7 @@
 	mksource.pl pmSourceIO_CMF.c.in PS1_DV2 pmSourceIO_CMF_PS1_DV2.c
 
+pmSourceIO_CMF_PS1_DV3.c : pmSourceIO_CMF.c.in mksource.pl
+	mksource.pl pmSourceIO_CMF.c.in PS1_DV3 pmSourceIO_CMF_PS1_DV3.c
+
 pmSourceIO_CMF_PS1_SV1.c : pmSourceIO_CMF.c.in mksource.pl
 	mksource.pl pmSourceIO_CMF.c.in PS1_SV1 pmSourceIO_CMF_PS1_SV1.c
Index: branches/eam_branches/ipp-20120805/psModules/src/objects/pmSource.c
===================================================================
--- branches/eam_branches/ipp-20120805/psModules/src/objects/pmSource.c	(revision 34292)
+++ branches/eam_branches/ipp-20120805/psModules/src/objects/pmSource.c	(revision 34367)
@@ -650,4 +650,13 @@
         if (source->peak->y >= region->y1) continue;
 
+# define DEBUG 0
+# define TEST_X 2792
+# define TEST_Y 1741
+# if (DEBUG) 
+	if ((fabs(source->peak->x - TEST_X) < 5) && (fabs(source->peak->y - TEST_Y) < 5)) {
+	  fprintf (stderr, "test peak\n");
+	}
+# endif	
+
         // should be set by pmSourceAlloc
         psAssert (source->type == PM_SOURCE_TYPE_UNKNOWN, "source type was not init-ed?");
@@ -665,4 +674,5 @@
 
         // XXX EAM : can we use the value of SATURATE if mask is NULL?
+	// XXX a 5x5 box centered on the peak is a rather small region to check for
         inner = psRegionForSquare (source->peak->x, source->peak->y, 2);
         inner = psRegionForImage (source->maskView, inner);
Index: branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceExtendedPars.c
===================================================================
--- branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceExtendedPars.c	(revision 34292)
+++ branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceExtendedPars.c	(revision 34367)
@@ -190,4 +190,7 @@
 bool pmSourceRadialProfileSortPair (psVector *index, psVector *extra) {
 
+    psAssert (index->n == extra->n, "mismatched vector lengths");
+    if (index->n < 2) return true;
+
     // sort the vector set by the radius
     PSSORT (index->n, COMPARE_INDEX, SWAP_INDEX, NONE);
Index: branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO.h
===================================================================
--- branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO.h	(revision 34292)
+++ branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO.h	(revision 34367)
@@ -38,4 +38,5 @@
 MK_PROTO(CMF_PS1_DV1);
 MK_PROTO(CMF_PS1_DV2);
+MK_PROTO(CMF_PS1_DV3);
 
 int pmSourceGetDophotType (pmSource *source);
Index: branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO_CMF.c.in
===================================================================
--- branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 34292)
+++ branches/eam_branches/ipp-20120805/psModules/src/objects/pmSourceIO_CMF.c.in	(revision 34367)
@@ -733,4 +733,6 @@
     }
 
+    @PS1_DV3@ pmChip *chip = readout->parent->parent;
+
     table = psArrayAllocEmpty (sources->n);
 
@@ -766,4 +768,11 @@
             yErr = dPAR[PM_PAR_YPOS];
 
+	    @PS1_DV3@ psSphere ptSky = {0.0, 0.0, 0.0, 0.0};
+	    @PS1_DV3@ float posAngle = 0.0;
+	    @PS1_DV3@ float pltScale = 0.0;
+	    @PS1_DV3@ pmSourceLocalAstrometry (&ptSky, &posAngle, &pltScale, chip, xPos, yPos);
+	    @PS1_DV3@ double raPos = ptSky.r*PS_DEG_RAD;
+	    @PS1_DV3@ double decPos = ptSky.d*PS_DEG_RAD;
+
 	    float kronFlux = source->moments ? source->moments->KronFlux : NAN;
 	    float kronMag = isfinite(kronFlux) ? -2.5*log10(kronFlux) : NAN;
@@ -777,4 +786,6 @@
             psMetadataAddF32 (row, PS_LIST_TAIL, "X_EXT_SIG",        0, "Sigma in EXT x coordinate",                  xErr);
             psMetadataAddF32 (row, PS_LIST_TAIL, "Y_EXT_SIG",        0, "Sigma in EXT y coordinate",                  yErr);
+            @PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "RA_EXT",           0, "EXT model ra coordinate",                    raPos);
+            @PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "DEC_EXT",          0, "EXT model dec coordinate",                   decPos);
             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_MAG",     0, "EXT fit instrumental magnitude",             model->mag);
             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_INST_MAG_SIG", 0, "Sigma of PSF instrumental magnitude",        model->magErr);
@@ -790,5 +801,6 @@
             psMetadataAddF32 (row, PS_LIST_TAIL, "KRON_MAG",         0, "Kron Mag",                                   kronMag);
 
-            psMetadataAddF32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
+            @ALL, !PS1_DV3@ psMetadataAddF32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
+            @PS1_DV3@       psMetadataAddS32 (row, PS_LIST_TAIL, "NPARAMS",          0, "number of model parameters",                 model->params->n);
             psMetadataAddStr (row, PS_LIST_TAIL, "MODEL_TYPE",       0, "name of model",                              pmModelClassGetName (model->type));
 
