Index: trunk/psphot/src/psphotSourceStats.c
===================================================================
--- trunk/psphot/src/psphotSourceStats.c	(revision 5617)
+++ trunk/psphot/src/psphotSourceStats.c	(revision 5802)
@@ -5,4 +5,5 @@
     bool     status  = false;
     psArray *sources = NULL;
+    float BIG_RADIUS;
 
     psTimerStart ("psphot");
@@ -35,14 +36,26 @@
 
 	// measure basic source moments
-	// XXX EAM : choose between these two versions
 	status = pmSourceMoments (source, RADIUS);
-	if (!status) {
-	  psFree (source);
-	  continue;
+	if (status) {
+	    // add to the source array
+	    psArrayAdd (sources, 100, source);
+	    psFree (source);
+	    continue;
 	}
-	
-	// add to the source array
-	psArrayAdd (sources, 100, source);
+
+	// if no valid pixels, or massive swing, likely saturated source,
+	// try a much larger box
+	BIG_RADIUS = PS_MIN (INNER, 3*RADIUS);
+	psTrace ("psphot", 4, "retrying moments for %d, %d\n", source->peak->x, source->peak->y);
+	status = pmSourceMoments (source, BIG_RADIUS);
+	if (status) {
+	    // add to the source array
+	    psArrayAdd (sources, 100, source);
+	    psFree (source);
+	    continue;
+	}
+
 	psFree (source);
+	continue;
     }
      
