Index: trunk/psModules/src/imcombine/pmSubtractionMatch.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtractionMatch.c	(revision 15285)
+++ trunk/psModules/src/imcombine/pmSubtractionMatch.c	(revision 15305)
@@ -98,5 +98,5 @@
                         int inner, int ringsOrder, int binning, bool optimum, const psVector *optFWHMs,
                         int optOrder, float optThreshold, int iter, float rej, psMaskType maskBad,
-                        psMaskType maskBlank)
+                        psMaskType maskBlank, float badFrac)
 {
     PS_ASSERT_PTR_NON_NULL(convolved, false);
@@ -165,4 +165,8 @@
     // Don't care about maskBad
     // Don't care about maskBlank
+    if (isfinite(badFrac)) {
+        PS_ASSERT_FLOAT_LARGER_THAN(badFrac, 0.0, NULL);
+        PS_ASSERT_FLOAT_LESS_THAN_OR_EQUAL(badFrac, 1.0, NULL);
+    }
 
     // If the stamp footprint is smaller than the kernel size, then we won't get much signal in the outer
@@ -219,5 +223,9 @@
     memCheck("start");
 
-    subMask = pmSubtractionMask(reference->mask, inMask, maskBad, size, footprint);
+    subMask = pmSubtractionMask(reference->mask, inMask, maskBad, size, footprint, badFrac);
+    if (subMask) {
+        psError(PS_ERR_UNKNOWN, false, "Unable to generate subtraction mask.");
+        return false;
+    }
 
     memCheck("mask");
