Index: /trunk/pswarp/src/pswarpTransformTile.c
===================================================================
--- /trunk/pswarp/src/pswarpTransformTile.c	(revision 19135)
+++ /trunk/pswarp/src/pswarpTransformTile.c	(revision 19136)
@@ -41,7 +41,8 @@
     pswarpMapGridCoordRange (args->grid, args->gridX, args->gridY, &minPt, &maxPt);
 
-    psF32 **outImageData     = (args->output->image)  ? args->output->image->data.F32  : NULL;
+    psF32 **outImageData     = (args->output->image)  ? args->output->image->data.F32 : NULL;
     psF32 **outVarData       = (args->output->weight) ? args->output->weight->data.F32 : NULL;
-    psMaskType **outMaskData = (args->output->mask)   ? args->output->mask->data.U8    : NULL;
+    psMaskType **outMaskData = (args->output->mask)   ? args->output->mask->data.PS_TYPE_MASK_DATA : NULL;
+    psMaskType **inMaskData  = (args->input->mask)    ? args->input->mask->data.PS_TYPE_MASK_DATA : NULL;
 
     pswarpMap *map = args->grid->maps[args->gridX][args->gridY];
@@ -86,4 +87,5 @@
 
             // psImagePixelInterpolate determines the value at pixel coordinate (x,y) in child coordinates
+            maskValue = inMaskData ? inMaskData[(int)round(yIn)][(int)round(xIn)] : 0;
             if (!psImageInterpolate(&imageValue, &varValue, &maskValue, xIn, yIn, args->interp)) {
                 psError(PS_ERR_UNKNOWN, false, "Unable to interpolate image.");
