Index: trunk/psphot/src/psphotEnsemblePSF.c
===================================================================
--- trunk/psphot/src/psphotEnsemblePSF.c	(revision 5772)
+++ trunk/psphot/src/psphotEnsemblePSF.c	(revision 5802)
@@ -6,5 +6,4 @@
     float x;
     float y;
-    float Sky;
 
     psTimerStart ("psphot");
@@ -14,4 +13,5 @@
 
     float OUTER_RADIUS     = psMetadataLookupF32 (&status, config, "SKY_OUTER_RADIUS");
+    float INNER_RADIUS     = psMetadataLookupF32 (&status, config, "SKY_INNER_RADIUS");
     float PSF_FIT_NSIGMA   = psMetadataLookupF32 (&status, config, "PSF_FIT_NSIGMA");
     float PSF_FIT_PADDING  = psMetadataLookupF32 (&status, config, "PSF_FIT_PADDING");
@@ -38,7 +38,19 @@
 	pmSource *otSource = pmSourceAlloc ();
 
+	// really saturated stars should be re-measured for a better centroid
+	// XXX EAM : move this to a 'clear satstar function'
+	// XXX EAM : extend size of fit box around SATSTAR
+	if (inSource->mode &  PM_SOURCE_SATSTAR) {
+	    status = pmSourceMoments (inSource, INNER_RADIUS);
+	}
+
 	// XXX EAM : add option to use FLT or PSF form
 	// use the source moments, etc to guess basic model parameters
 	pmModel *modelFLT = pmSourceModelGuess (inSource, psf->type); 
+	if (inSource->mode &  PM_SOURCE_SATSTAR) {
+	    modelFLT->params->data.F32[2] = inSource->moments->x;
+	    modelFLT->params->data.F32[3] = inSource->moments->y;
+	}
+	// XXX EAM : add option to peak-up on peak (for non-sat objects)
 
 	// set PSF parameters for this model
@@ -69,9 +81,4 @@
 	psImage *flux = otSource->pixels;
 	psImage *mask = otSource->mask;
-
-	// XXX EAM : use these lines to fit to the peak
-	// model->params->data.F32[2] = inSource->peak->x;
-	// model->params->data.F32[3] = inSource->peak->y;
-	// XXX EAM : better option: improve the peak with 2D poly fit 3x3
 
 	// set model to unit peak, zero sky (we assume sky is constant)
@@ -136,11 +143,10 @@
 
 	Fi->modelPSF = Mi->modelPSF;
+
+	// assign linearly-fitted normalization
 	Fi->modelPSF->params->data.F32[1] = norm->data.F32[i];
 
 	// subtract object
 	pmSourceSubModel (Fi->pixels, Fi->mask, Fi->modelPSF, false, false);
-
-	Fi->modelPSF->params->data.F32[0] = Sky; 
-	// need to set this!
     }
 
