Index: trunk/pswarp/src/pswarpTransformReadout_Opt.c
===================================================================
--- trunk/pswarp/src/pswarpTransformReadout_Opt.c	(revision 13240)
+++ trunk/pswarp/src/pswarpTransformReadout_Opt.c	(revision 13522)
@@ -16,5 +16,5 @@
     psMaskType maskIn = psMetadataLookupU8(NULL, config->arguments, "MASK.IN"); // Mask for input data
     psMaskType maskPoor = psMetadataLookupU8(NULL, config->arguments, "MASK.POOR"); // Mask for "poor" data
-    psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.IN"); // Mask for bad data
+    psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Mask for bad data
     float poorFrac = psMetadataLookupF32(NULL, config->arguments, "POOR.FRAC"); // Flux fraction for "poor"
 
@@ -64,10 +64,12 @@
 
     psPlane *inPix = psPlaneAlloc();    // Coordinates on the input detector
+    psImageInit(output->image, NAN);
     psF32 **outImageData = output->image->data.F32; // Output image pixels
-    psF32 **outVarData = NULL;		// Output variance pixels
-    psMaskType **outMaskData = NULL;	// Output mask pixels
+    psF32 **outVarData = NULL;          // Output variance pixels
+    psMaskType **outMaskData = NULL;    // Output mask pixels
     if (inVar) {
         if (!output->weight) {
             output->weight = psImageAlloc(output->image->numCols, output->image->numRows, PS_TYPE_F32);
+            psImageInit(output->weight, NAN);
         }
         outVarData = output->weight->data.F32;
@@ -76,4 +78,5 @@
         if (!output->mask) {
             output->mask = psImageAlloc(output->image->numCols, output->image->numRows, PS_TYPE_MASK);
+            psImageInit(output->mask, maskBad);
         }
         outMaskData = output->mask->data.PS_TYPE_MASK_DATA;
