Index: trunk/psphot/src/psphotApResid.c
===================================================================
--- trunk/psphot/src/psphotApResid.c	(revision 24877)
+++ trunk/psphot/src/psphotApResid.c	(revision 24878)
@@ -168,4 +168,7 @@
         if (source->mode &  PM_SOURCE_MODE_POOR) SKIPSTAR ("POOR STAR");
 
+	if (source->mode &  PM_SOURCE_MODE_EXT_LIMIT) SKIPSTAR ("EXTENDED");
+	if (source->mode &  PM_SOURCE_MODE_CR_LIMIT) SKIPSTAR ("COSMIC RAY");
+	    
         if (!isfinite(source->apMag) || !isfinite(source->psfMag)) {
             continue;
@@ -317,4 +320,5 @@
 */
 
+// XXX this still sucks...  need a better way to estimate the error floor...
 bool psphotMagErrorScale (float *errorScale, float *errorFloor, psVector *dMag, psVector *dap, psVector *mask, int nGroup) {
 
@@ -385,4 +389,5 @@
     for (int i = 0; i < dSo->n; i++) {
         *errorFloor = dSo->data.F32[i];
+        if (fabs(*errorFloor) <= FLT_EPSILON) continue;
         if (isfinite(*errorFloor)) break;
     }
