Index: trunk/ppSub/src/ppSubReadout.c
===================================================================
--- trunk/ppSub/src/ppSubReadout.c	(revision 21024)
+++ trunk/ppSub/src/ppSubReadout.c	(revision 21183)
@@ -103,9 +103,9 @@
     float penalty = psMetadataLookupF32(NULL, recipe, "PENALTY"); // Penalty for wideness
     psString maskValStr = psMetadataLookupStr(NULL, recipe, "MASK.IN"); // Name of bits to mask going in
-    psMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
+    psImageMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
     psString maskPoorStr = psMetadataLookupStr(NULL, recipe, "MASK.POOR"); // Name of bits to mask for poor
-    psMaskType maskPoor = pmConfigMaskGet(maskPoorStr, config); // Bits to mask for poor pixels
+    psImageMaskType maskPoor = pmConfigMaskGet(maskPoorStr, config); // Bits to mask for poor pixels
     psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits to mask for bad
-    psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
+    psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     float badFrac = psMetadataLookupF32(NULL, recipe, "BADFRAC"); // Maximum bad fraction
     const char *stampsName = psMetadataLookupStr(&mdok, config->arguments, "STAMPS"); // Filename for stamps
@@ -146,5 +146,5 @@
             pmReadoutSetMask(inRO, pmConfigMaskGet("SAT", config), pmConfigMaskGet("BAD", config));
         } else {
-            inRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_MASK);
+            inRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK);
             psImageInit(inRO->mask, 0);
         }
@@ -154,5 +154,5 @@
             pmReadoutSetMask(refRO, pmConfigMaskGet("SAT", config), pmConfigMaskGet("BAD", config));
         } else {
-            refRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_MASK);
+            refRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK);
             psImageInit(refRO->mask, 0);
         }
@@ -363,10 +363,10 @@
         }
         if (minuend->mask) {
-            outRO->mask = psImageCopy(outRO->mask, minuend->mask, PS_TYPE_MASK);
+            outRO->mask = psImageCopy(outRO->mask, minuend->mask, PS_TYPE_IMAGE_MASK);
         }
         outRO->data_exists = outCell->data_exists = outCell->parent->data_exists = true;
 
         if (psMetadataLookupBool(&mdok, recipe, "RENORM")) {
-            psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
+            psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
             if (!pmReadoutWeightRenormPhot(outRO, maskValue, renormNum, renormWidth,
                                            renormMean, renormStdev, NULL)) {
@@ -399,8 +399,8 @@
 
         // set maskValue and markValue in the psphot recipe
-        psMaskType maskValue = maskVal;
-        psMaskType markValue = pmConfigMaskGet("MARK.VALUE", config); // Bits to use for marking
-        psMetadataAddU8(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "Bits to mask", maskValue);
-        psMetadataAddU8(psphotRecipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "Bits to use for marking",
+        psImageMaskType maskValue = maskVal;
+        psImageMaskType markValue = pmConfigMaskGet("MARK.VALUE", config); // Bits to use for marking
+        psMetadataAddImageMask(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "Bits to mask", maskValue);
+        psMetadataAddImageMask(psphotRecipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "Bits to use for marking",
                         markValue);
 
@@ -477,6 +477,6 @@
     for (int y = 0; y < outRO->image->numRows; y++) {
         for (int x = 0; x < outRO->image->numCols; x++) {
-            if (isnan(outRO->image->data.F32[y][x]) && !(outRO->mask->data.U8[y][x] & maskVal)) {
-                printf("Unmasked NAN at %d %d --> %d\n", x, y, outRO->mask->data.U8[y][x]);
+            if (isnan(outRO->image->data.F32[y][x]) && !(outRO->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & maskVal)) {
+                printf("Unmasked NAN at %d %d --> %d\n", x, y, outRO->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x]);
             }
         }
@@ -568,5 +568,5 @@
 
         if (psMetadataLookupBool(&mdok, recipe, "RENORM")) {
-            psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
+            psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
             if (!pmReadoutWeightRenormPhot(outRO, maskValue, renormNum, renormWidth,
                                            renormMean, renormStdev, NULL)) {
@@ -669,5 +669,5 @@
     // Renormalising for pixels, because that's what magic desires
     if (psMetadataLookupBool(&mdok, recipe, "RENORM")) {
-        psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
+        psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
         if (!pmReadoutWeightRenormPixels(outRO, maskValue, renormMean, renormStdev, NULL)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to renormalise variances.");
