Index: trunk/psModules/src/imcombine/pmStack.c
===================================================================
--- trunk/psModules/src/imcombine/pmStack.c	(revision 34842)
+++ trunk/psModules/src/imcombine/pmStack.c	(revision 35081)
@@ -1385,4 +1385,5 @@
 
   psVector *pixelData = psVectorAlloc(input->n,PS_TYPE_F32);
+  psVector *pixelMask = psVectorAlloc(input->n,PS_TYPE_VECTOR_MASK);
   psStats  *stats     = psStatsAlloc(PS_STAT_ROBUST_MEDIAN);
 
@@ -1392,10 +1393,25 @@
 	pmReadout *ro  = stack->data[i];
 	psImage *image = ro->image;
+	pixelMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 0;
 	pixelData->data.F32[i] = image->data.F32[y][x];
+	if (isfinite(image->data.F32[y][x])&&
+	    (fabs(image->data.F32[y][x]) < 1e5)) {
+	  pixelMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 0;
+	}
+	else {
+	  pixelMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 1;
+	}
+#if (0)
+      if ((x == 59)&&(y > 40)&&(y < 50)) {
+	  fprintf(stderr,"%d %d %d %d %g\n",
+		  x,y,i,pixelMask->data.PS_TYPE_VECTOR_MASK_DATA[i],pixelData->data.F32[i]);
+	}
       }
-      if (!psVectorStats(stats,pixelData,NULL,NULL,0)) {
+#endif
+      if (!psVectorStats(stats,pixelData,NULL,pixelMask,1)) {
 	psError(PS_ERR_UNKNOWN, false, "Unable to calculate median");
 	psFree(stats);
 	psFree(pixelData);
+	psFree(pixelMask);
 	psFree(stack);
 	return(false);
@@ -1403,4 +1419,11 @@
       combined->image->data.F32[y][x] = stats->robustMedian;
       combined->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = 0;
+#if (0)
+      if ((x == 59)&&(y > 40)&&(y < 50)) {
+	fprintf(stderr,"%d %d %d %d %g\n",
+		x,y,-1,combined->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x],
+		combined->image->data.F32[y][x]);
+      }
+#endif
     }
   }
@@ -1408,4 +1431,5 @@
   psFree(stats);
   psFree(pixelData);
+  psFree(pixelMask);
   psFree(stack);
   return (true);
