Index: trunk/ppStack/src/ppStackReject.c
===================================================================
--- trunk/ppStack/src/ppStackReject.c	(revision 27309)
+++ trunk/ppStack/src/ppStackReject.c	(revision 27319)
@@ -31,5 +31,4 @@
 
     float threshold = psMetadataLookupF32(NULL, recipe, "THRESHOLD.MASK"); // Threshold for mask deconvolution
-    float poorFrac = psMetadataLookupF32(NULL, recipe, "POOR.FRACTION"); // Fraction for "poor"
     float imageRej = psMetadataLookupF32(NULL, recipe, "IMAGE.REJ"); // Maximum fraction of image to reject
                                                                      // before rejecting entire image
@@ -109,5 +108,5 @@
 
         psPixels *reject = pmStackReject(options->inspect->data[i], options->numCols, options->numRows,
-                                         threshold, poorFrac, stride, options->regions->data[i],
+                                         threshold, stride, options->regions->data[i],
                                          options->kernels->data[i]); // Rejected pixels
 
@@ -130,11 +129,9 @@
                 options->inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] |= PPSTACK_MASK_BAD;
                 numRejected++;
+            } else {
+                // Add to list of pixels already rejected
+                reject = psPixelsConcatenate(reject, options->rejected->data[i]);
+                options->rejected->data[i] = psPixelsDuplicates(options->rejected->data[i], reject);
             }
-        }
-
-        if (reject) {
-            // Add to list of pixels already rejected
-            reject = psPixelsConcatenate(reject, options->rejected->data[i]);
-            options->rejected->data[i] = psPixelsDuplicates(options->rejected->data[i], reject);
         }
 
@@ -170,6 +167,4 @@
 
     psFree(options->inspect); options->inspect = NULL;
-    psFree(options->kernels); options->kernels = NULL;
-    psFree(options->regions); options->regions = NULL;
 
     if (numRejected >= num) {
