Index: trunk/ppStack/src/ppStackLoop.c
===================================================================
--- trunk/ppStack/src/ppStackLoop.c	(revision 16865)
+++ trunk/ppStack/src/ppStackLoop.c	(revision 16986)
@@ -188,4 +188,6 @@
         return false;
     }
+
+    float threshold = psMetadataLookupF32(NULL, config->arguments, "THRESHOLD.MASK"); // Threshold for mask deconvolution
 
     const char *statsName = psMetadataLookupStr(&mdok, config->arguments, "STATS"); // Filename for statistics
@@ -449,26 +451,29 @@
         // Reset for the second read
         // Extract the rejection lists
-        psFree(subKernels);
-        psFree(subRegions);
-        psArray *rejected = psArrayAlloc(num); // Rejected pixels
+        psArray *rejected = psArrayAlloc(num); // Pixels to inspect
         for (int i = 0; i < num; i++) {
             pmReadout *ro = readouts->data[i]; // Readout of interest
-            pmReadoutFreeData(ro);
-
-            psPixels *rejects = NULL;   // Rejection list for this readout
+            psPixels *inspect = NULL;   // Inspection list for this readout
             psMetadataIterator *iter = psMetadataIteratorAlloc(ro->analysis, PS_LIST_HEAD,
-                                                               "^" PPSTACK_REJECTED_PIXELS "$"); // Iterator
+                                                               "^" PPSTACK_INSPECT_PIXELS "$"); // Iterator
             psMetadataItem *item;
             while ((item = psMetadataGetAndIncrement(iter))) {
                 psPixels *pixels = item->data.V; // Rejected pixels
-                psTrace("ppStack", 5, "Adding %ld rejected pixels to image %d", pixels->n, i);
-                rejects = psPixelsConcatenate(rejects, pixels);
+                psTrace("ppStack", 5, "Adding %ld pixels to inspect to image %d", pixels->n, i);
+                inspect = psPixelsConcatenate(inspect, pixels);
             }
             psFree(iter);
-            psTrace("ppStack", 5, "%ld rejected pixels rejected from image %d", rejects->n, i);
-            psMetadataRemoveKey(ro->analysis, PPSTACK_REJECTED_PIXELS);
-            rejected->data[i] = rejects;
-        }
-
+            psMetadataRemoveKey(ro->analysis, PPSTACK_INSPECT_PIXELS);
+            pmReadoutFreeData(ro);
+
+            psTrace("ppStack", 5, "%ld total pixels to inspect from image %d", inspect->n, i);
+
+            psPixels *reject = pmStackReject(inspect, NULL, threshold, subRegions->data[i],
+                                             subKernels->data[i]); // Pixels to reject
+            psTrace("ppStack", 5, "%ld pixels rejected from image %d", reject->n, i);
+            rejected->data[i] = reject;
+        }
+        psFree(subKernels);
+        psFree(subRegions);
 
         // Read convolutions by chunks
