Index: /trunk/psLib/src/imageops/psImageConvolve.c
===================================================================
--- /trunk/psLib/src/imageops/psImageConvolve.c	(revision 14865)
+++ /trunk/psLib/src/imageops/psImageConvolve.c	(revision 14866)
@@ -7,6 +7,6 @@
 /// @author Eugene Magnier, IfA
 ///
-/// @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
-/// @date $Date: 2007-08-30 20:15:23 $
+/// @version $Revision: 1.57 $ $Name: not supported by cvs2svn $
+/// @date $Date: 2007-09-17 20:49:51 $
 ///
 /// Copyright 2004-2007 Institute for Astronomy, University of Hawaii
@@ -363,4 +363,6 @@
 
 psImage *psImageConvolveFFT(const psImage *in,
+                            const psImage *mask,
+                            psMaskType maskVal,
                             const psKernel *kernel,
                             float pad)
@@ -393,5 +395,14 @@
     // Generate padded image
     psImage *paddedImage = psImageAlloc(paddedCols,paddedRows,in->type.type); // Padded input image
-    psImageOverlaySection(paddedImage, in, 0, 0, "=");
+    if (mask && maskVal) {
+        for (int y = 0; y < numRows; y++) {
+            for (int x = 0; x < numCols; x++) {
+                paddedImage->data.F32[y][x] = (mask->data.PS_TYPE_MASK_DATA[y][x] & maskVal) ? pad :
+                    in->data.F32[y][x];
+            }
+        }
+    } else {
+        psImageOverlaySection(paddedImage, in, 0, 0, "=");
+    }
     for (int y = 0; y < numRows; y++) {
         for (int x = numCols; x < paddedCols; x++) {
Index: /trunk/psLib/src/imageops/psImageConvolve.h
===================================================================
--- /trunk/psLib/src/imageops/psImageConvolve.h	(revision 14865)
+++ /trunk/psLib/src/imageops/psImageConvolve.h	(revision 14866)
@@ -5,6 +5,6 @@
  * @author Robert DeSonia, MHPCC
  *
- * @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-09-05 23:52:11 $
+ * @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2007-09-17 20:49:51 $
  * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
  */
@@ -136,6 +136,6 @@
 ///
 psImage *psImageConvolveDirect(
-    psImage *out,                       ///< return output to here
-    const psImage *in,                  ///< the psImage to convolve
+    psImage *out,                       ///< Output image, or NULL
+    const psImage *in,                  ///< Image to convolve
     const psKernel *kernel              ///< kernel to colvolve with
 );
@@ -146,5 +146,7 @@
 /// are suitably padded to avoid wrap-around effects.
 psImage *psImageConvolveFFT(
-    const psImage *in,                  ///< the psImage to convolve
+    const psImage *in,                  ///< Image to convolve
+    const psImage *mask,                ///< Corresponding mask
+    psMaskType maskVal,                 ///< Value to mask
     const psKernel *kernel,             ///< kernel to colvolve with
     float pad                           ///< Value to use to pad the input image
@@ -155,5 +157,8 @@
 /// Returns a mask, grown by the supplied kernel.  Only those pixels specified by the maskVal are grown; the
 /// rest are simply propagated.
-psImage *psImageConvolveMask(const psImage *mask, psMaskType maskVal, const psKernel *kernel);
+psImage *psImageConvolveMask(const psImage *mask, ///< Mask to convolve
+                             psMaskType maskVal, ///< Mask value to convolve
+                             const psKernel *kernel ///< Kernel by which to convolve
+    );
 
 
Index: /trunk/psLib/test/imageops/convolutionBench.c
===================================================================
--- /trunk/psLib/test/imageops/convolutionBench.c	(revision 14865)
+++ /trunk/psLib/test/imageops/convolutionBench.c	(revision 14866)
@@ -47,5 +47,5 @@
             psKernel *kernel = generateKernel(kernelCols, kernelRows);
             psTimerStart("fft");
-            psImage *convolved = psImageConvolveFFT(image, kernel, 0.0);
+            psImage *convolved = psImageConvolveFFT(image, NULL, 0, kernel, 0.0);
             fft += psTimerMark("fft");
             psFree(convolved);
