Index: /trunk/pswarp/src/pswarpTransformReadout_Opt.c
===================================================================
--- /trunk/pswarp/src/pswarpTransformReadout_Opt.c	(revision 13659)
+++ /trunk/pswarp/src/pswarpTransformReadout_Opt.c	(revision 13660)
@@ -61,5 +61,5 @@
     psImageInterpolateOptions *interp = psImageInterpolateOptionsAlloc(interpolationMode, inImage,
                                                                        inVar, inMask, maskIn, NAN, NAN,
-                                                                       maskPoor, maskBad, poorFrac);
+                                                                       maskBad, maskPoor, poorFrac);
 
     psPlane *inPix = psPlaneAlloc();    // Coordinates on the input detector
@@ -75,5 +75,5 @@
         outVarData = output->weight->data.F32;
     }
-    if (inMask) {
+    if (inMask || maskPoor || maskBad) {
         if (!output->mask) {
             output->mask = psImageAlloc(output->image->numCols, output->image->numRows, PS_TYPE_MASK);
@@ -130,9 +130,11 @@
                 outVarData[y-outRow0][x-outCol0] = varValue;
             }
-            if (inMask) {
+            if (outMaskData) {
                 outMaskData[y-outRow0][x-outCol0] = maskValue;
             }
         }
     }
+
+    output->data_exists = true;
 
     psFree(interp);
