Index: trunk/ppSub/src/ppSubReadoutSubtract.c
===================================================================
--- trunk/ppSub/src/ppSubReadoutSubtract.c	(revision 28006)
+++ trunk/ppSub/src/ppSubReadoutSubtract.c	(revision 29003)
@@ -51,9 +51,16 @@
     outRO->variance = (psImage*)psBinaryOp(outRO->variance, minuend->variance, "+", subtrahend->variance);
 
+    // NAN the masked pixels in the diff image (pixels masked in A are not yet NAN'ed in B)
+    psImageMaskType maskVal = pmConfigMaskGet("MASK.VALUE", config) | pmConfigMaskGet("BLANK", config); // Bits to mask in inputs
+    for (int iy = 0; iy < outRO->image->numRows; iy++) {
+	for (int ix = 0; ix < outRO->image->numCols; ix++) {
+	    if ((outRO->mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] & maskVal) == 0) continue;
+	    outRO->image->data.F32[iy][ix] = NAN;
+	}
+    }
+
     // Measure the variance scales
     psStats *varStats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN); // Statistics for variance images
     psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS);           // Random number generator
-    psImageMaskType maskVal = pmConfigMaskGet("MASK.VALUE", config) |
-        pmConfigMaskGet("BLANK", config); // Bits to mask in inputs
     psImageBackground(varStats, NULL, minuend->variance, minuend->mask, maskVal, rng);
     float minuendVar = varStats->robustMedian; // Mean variance for minuend
