Index: branches/eam_branches/ipp-20110505/psphot/src/psphotChoosePSF.c
===================================================================
--- branches/eam_branches/ipp-20110505/psphot/src/psphotChoosePSF.c	(revision 31522)
+++ branches/eam_branches/ipp-20110505/psphot/src/psphotChoosePSF.c	(revision 31546)
@@ -373,4 +373,6 @@
     }
 
+
+
     char *modelName = pmModelClassGetName (psf->type);
     psLogMsg ("psphot.pspsf", PS_LOG_INFO, "select psf model: %f sec\n", psTimerMark ("psphot.choose.psf"));
@@ -503,4 +505,5 @@
       }
       psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "PSF_EXT1", PS_META_REPLACE, "PSF extra param 1", stats->sampleMean);
+      psLogMsg ("psphot", PS_LOG_DETAIL, "PSF extra parameter 1: %f +/- %f", stats->sampleMean, stats->sampleStdev);
     }
 
@@ -511,8 +514,11 @@
       }
       psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "PSF_EXT2", PS_META_REPLACE, "PSF extra param 2", stats->sampleMean);
-    }
-
-    psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "ANGLE",    PS_META_REPLACE, "PSF angle",           axes.theta);
+      psLogMsg ("psphot", PS_LOG_DETAIL, "PSF extra parameter 2: %f +/- %f", stats->sampleMean, stats->sampleStdev);
+    }
+
+    // psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "ANGLE",    PS_META_REPLACE, "PSF angle",           axes.theta);
     psMetadataAddS32 (readout->analysis, PS_LIST_TAIL, "NPSFSTAR", PS_META_REPLACE, "Number of stars used to make PSF", psf->nPSFstars);
+
+    // psLogMsg ("psphot", PS_LOG_DETAIL, "PSF angle: %f, nstars: %d", axes.theta, psf->nPSFstars);
 
     char *psfModelName = pmModelClassGetName(psf->type);
Index: branches/eam_branches/ipp-20110505/psphot/src/psphotExtendedSourceFits.c
===================================================================
--- branches/eam_branches/ipp-20110505/psphot/src/psphotExtendedSourceFits.c	(revision 31522)
+++ branches/eam_branches/ipp-20110505/psphot/src/psphotExtendedSourceFits.c	(revision 31546)
@@ -268,4 +268,5 @@
     float radius;
     psScalar *scalar = NULL;
+    pmMoments psfMoments;
 
     // arguments: readout, sources, models, region, psfSize, maskVal, markVal
@@ -333,7 +334,9 @@
 	// this uses the footprint to judge both radius and aperture?
 	// XXX save the psf-based moments for output
+	psfMoments = *source->moments;
 	if (!pmSourceMoments (source, radius, 0.0, 0.0, 0.0, maskVal)) {
+	    // subtract the best fit from the object, leave local sky
 	    fprintf (stderr, "skipping (2) %f, %f\n", source->peak->xf, source->peak->yf);
-	    // subtract the best fit from the object, leave local sky
+	    *source->moments = psfMoments;
 	    pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
 	    // XXX raise an error flag of some kind
@@ -348,4 +351,5 @@
 	    if (!modelFluxStart) {
 		fprintf (stderr, "skipping (3) %f, %f\n", source->peak->xf, source->peak->yf);
+		*source->moments = psfMoments;
 		pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
 		// XXX raise an error of some kind?
@@ -467,4 +471,5 @@
           source->modelFlux = modelFluxStart;
 
+	  *source->moments = psfMoments;
           pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
 
@@ -492,4 +497,7 @@
         source->modelFlux = psMemIncrRefCounter (modelFluxes->data[minModel]);
 
+	// replace the original moments
+	*source->moments = psfMoments;
+
         // subtract the best fit from the object, leave local sky
         pmSourceSub (source, PM_MODEL_OP_FULL, maskVal);
