Index: /trunk/psModules/src/imcombine/pmSubtraction.c
===================================================================
--- /trunk/psModules/src/imcombine/pmSubtraction.c	(revision 14514)
+++ /trunk/psModules/src/imcombine/pmSubtraction.c	(revision 14515)
@@ -4,6 +4,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-08-15 23:17:56 $
+ *  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-08-16 00:32:43 $
  *
  *  Copyright 2004-2007 Institute for Astronomy, University of Hawaii
@@ -332,18 +332,20 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-psImage *pmSubtractionMask(const psImage *inMask, const psImage *refMask, psMaskType maskVal,
+psImage *pmSubtractionMask(const psImage *refMask, const psImage *inMask, psMaskType maskVal,
                            int size, int footprint)
 {
-    PS_ASSERT_IMAGE_NON_NULL(inMask, NULL);
-    PS_ASSERT_IMAGE_TYPE(inMask, PS_TYPE_MASK, NULL);
     PS_ASSERT_IMAGE_NON_NULL(refMask, NULL);
     PS_ASSERT_IMAGE_TYPE(refMask, PS_TYPE_MASK, NULL);
-    PS_ASSERT_IMAGES_SIZE_EQUAL(inMask, refMask, NULL);
+    if (inMask) {
+        PS_ASSERT_IMAGE_NON_NULL(inMask, NULL);
+        PS_ASSERT_IMAGE_TYPE(inMask, PS_TYPE_MASK, NULL);
+        PS_ASSERT_IMAGES_SIZE_EQUAL(inMask, refMask, NULL);
+    }
     PS_ASSERT_INT_NONNEGATIVE(size, NULL);
     PS_ASSERT_INT_NONNEGATIVE(footprint, NULL);
 
     // Size of the images
-    int numCols = inMask->numCols;
-    int numRows = inMask->numRows;
+    int numCols = refMask->numCols;
+    int numRows = refMask->numRows;
 
     // Worried about the masks for bad pixels and bad stamps colliding, so make our own mask
@@ -353,5 +355,8 @@
     // Dereference for convenience
     psMaskType **maskData = mask->data.PS_TYPE_MASK_DATA;
-    psMaskType **inData = inMask->data.PS_TYPE_MASK_DATA;
+    psMaskType **inData = NULL;
+    if (inMask) {
+        inData = inMask->data.PS_TYPE_MASK_DATA;
+    }
     psMaskType **refData = refMask->data.PS_TYPE_MASK_DATA;
 
@@ -383,5 +388,5 @@
     for (int y = 0; y < numRows; y++) {
         for (int x = 0; x < numCols; x++) {
-            if (inData[y][x] & maskVal) {
+            if (inData && inData[y][x] & maskVal) {
                 maskData[y][x] |= PM_SUBTRACTION_MASK_INPUT;
                 // Block out the entire stamp footprint around this pixel
Index: /trunk/psModules/src/imcombine/pmSubtraction.h
===================================================================
--- /trunk/psModules/src/imcombine/pmSubtraction.h	(revision 14514)
+++ /trunk/psModules/src/imcombine/pmSubtraction.h	(revision 14515)
@@ -6,6 +6,6 @@
  * @author GLG, MHPCC
  *
- * @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-08-14 02:14:30 $
+ * @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2007-08-16 00:32:43 $
  * Copyright 2004-207 Institute for Astronomy, University of Hawaii
  */
@@ -31,6 +31,6 @@
 
 /// Generate a mask for use in the subtraction process
-psImage *pmSubtractionMask(const psImage *inMask, ///< Mask for the input image
-                           const psImage *refMask, ///< Mask for the reference image (will be convolved)
+psImage *pmSubtractionMask(const psImage *refMask, ///< Mask for the reference image (will be convolved)
+                           const psImage *inMask, ///< Mask for the input image, or NULL
                            psMaskType maskVal, ///< Value to mask out
                            int size, ///< Half-size of the kernel (pmSubtractionKernels.size)
