Index: trunk/psphot/src/psphotSourceSize.c
===================================================================
--- trunk/psphot/src/psphotSourceSize.c	(revision 34201)
+++ trunk/psphot/src/psphotSourceSize.c	(revision 34258)
@@ -462,4 +462,14 @@
     psImageMaskType maskVal = options->maskVal | options->markVal;
 
+    // in the ppSub context, do we get sensible values for ApResid?
+    float ApResidPSF = options->ApResid;
+    if (!isfinite(ApResidPSF)) {
+      ApResidPSF = 0.0;
+    }
+    float ApSysErrPSF = options->ApSysErr;
+    if (!isfinite(ApSysErrPSF)) {
+      ApSysErrPSF = 0.0;
+    }
+
     for (psS32 i = 0 ; i < sources->n ; i++) {
 
@@ -529,5 +539,5 @@
         // set nSigmaMAG to include both systematic and poisson error terms.  we include a hard
 	// floor on the Ap Sys Err (to be a bit generous).  XXX put the floor in the recipe...
-        float nSigmaMAG = (dMag - options->ApResid) / hypot(source->psfMagErr, hypot(options->ApSysErr, 0.02));
+        float nSigmaMAG = (dMag - ApResidPSF) / hypot(source->psfMagErr, hypot(ApSysErrPSF, 0.02));
         source->extNsigma = nSigmaMAG;
 
