Index: trunk/ppMerge/src/ppMergeLoop.c
===================================================================
--- trunk/ppMerge/src/ppMergeLoop.c	(revision 23609)
+++ trunk/ppMerge/src/ppMergeLoop.c	(revision 24118)
@@ -36,4 +36,5 @@
     bool mdok;                          ///< Status of MD lookup
     bool haveMasks = psMetadataLookupBool(&mdok, arguments, "INPUTS.MASKS"); // Do we have masks?
+    bool useMasks = psMetadataLookupBool(&mdok, arguments, "INPUTS.MASKS.USE"); // Do we have masks?
     bool haveVariances = psMetadataLookupBool(&mdok, arguments, "INPUTS.VARIANCES"); // Do we have variances?
 
@@ -73,5 +74,5 @@
 
     pmCombineParams *combination = pmCombineParamsAlloc(combineStat); ///< Combination parameters
-    combination->maskVal = maskVal;
+    combination->maskVal = useMasks ? maskVal : 0;
     combination->blank = pmConfigMaskGet("BLANK", config);
     combination->nKeep = nKeep;
@@ -149,4 +150,8 @@
         }
         pmCell *outCell;                ///< Cell of interest
+
+	// XXX TEST : force a single loop
+        // outCell = pmFPAviewNextCell(view, outFPA, 1); {
+
         while ((outCell = pmFPAviewNextCell(view, outFPA, 1))) {
             if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) {
@@ -232,5 +237,5 @@
                 psAssert (fileGroups->n > 0, "no valid file groups defined");
                 fileGroup = fileGroups->data[0];
-                if (!pmShutterCorrectionGeneratePrepare(outRO, pattern, fileGroup->readouts, maskVal)) {
+                if (!pmShutterCorrectionGeneratePrepare(outRO, pattern, fileGroup->readouts, combination->maskVal)) {
                     goto ERROR;
                 }
@@ -427,4 +432,15 @@
                 psImageMaskType cteMaskValue = pmConfigMaskGet(cteMaskName, config);
 
+		if (0) {
+		  psFits *fits = NULL;
+		  fits = psFitsOpen ("combine.fits", "w");
+		  psFitsWriteImage (fits, NULL, outRO->image, 0, NULL);
+		  psFitsClose (fits);
+
+		  fits = psFitsOpen ("inmask.fits", "w");
+		  psFitsWriteImage (fits, NULL, outRO->mask, 0, NULL);
+		  psFitsClose (fits);
+		}
+
                 psF32 **outputImage = outRO->image->data.F32;
                 psImageMaskType **outputMask = outRO->mask->data.PS_TYPE_IMAGE_MASK_DATA;
@@ -436,4 +452,12 @@
                     }
                 }
+
+		if (0) {
+		  psFits *fits = NULL;
+		  fits = psFitsOpen ("otmask.fits", "w");
+		  psFitsWriteImage (fits, NULL, outRO->mask, 0, NULL);
+		  psFitsClose (fits);
+		}
+
             }
 
