Index: /trunk/ppSub/src/ppSubArguments.c
===================================================================
--- /trunk/ppSub/src/ppSubArguments.c	(revision 15303)
+++ /trunk/ppSub/src/ppSubArguments.c	(revision 15304)
@@ -201,4 +201,5 @@
     psMetadataAddU8(arguments,  PS_LIST_TAIL, "-mask-bad", 0, "Mask value for bad pixels", 0);
     psMetadataAddU8(arguments,  PS_LIST_TAIL, "-mask-blank", 0, "Mask value for blank region", 0);
+    psMetadataAddF32(arguments, PS_LIST_TAIL, "-badfrac", 0, "Maximum fraction of bad pixels to accept", 1.0);
     psMetadataAddBool(arguments,  PS_LIST_TAIL, "-reverse", 0, "Reverse sense of subtraction?", false);
     psMetadataAddBool(arguments,  PS_LIST_TAIL, "-generate-mask", 0, "Generate mask if not supplied?", false);
@@ -257,4 +258,5 @@
     VALUE_ARG_RECIPE_INT("-iter",         "ITER",            S32, -1);
     VALUE_ARG_RECIPE_FLOAT("-rej",        "REJ",             F32);
+    VALUE_ARG_RECIPE_FLOAT("-badfrac",    "BADFRAC",         F32);
 
     valueArgRecipeStr(arguments, recipe, "-mask-bad",   "MASK.BAD",   config->arguments);
Index: /trunk/ppSub/src/ppSubReadout.c
===================================================================
--- /trunk/ppSub/src/ppSubReadout.c	(revision 15303)
+++ /trunk/ppSub/src/ppSubReadout.c	(revision 15304)
@@ -51,4 +51,5 @@
     psMaskType maskBlank = pmConfigMask(psMetadataLookupStr(NULL, config->arguments, "MASK.BLANK"),
                                         config); // Mask for blank reg.
+    float badFrac = psMetadataLookupF32(NULL, config->arguments, "BADFRAC"); // Maximum bad fraction
     const char *stampsName = psMetadataLookupStr(&mdok, config->arguments, "STAMPS"); // Filename for stamps
 
@@ -92,5 +93,5 @@
                             stampsName, NAN, type, size, order, widths, orders, inner, ringsOrder,
                             binning, optimum, optWidths, optOrder, optThresh, iter, rej, maskBad,
-                            maskBlank)) {
+                            maskBlank, badFrac)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to match images.");
         psFree(outRO);
