Index: /trunk/ppStack/src/ppStack.h
===================================================================
--- /trunk/ppStack/src/ppStack.h	(revision 16985)
+++ /trunk/ppStack/src/ppStack.h	(revision 16986)
@@ -3,5 +3,5 @@
 
 #define PPSTACK_RECIPE "PPSTACK"        // Name of the recipe
-#define PPSTACK_REJECTED_PIXELS "PPSTACK.PIXELS" // Name of rejected pixels metadata items
+#define PPSTACK_INSPECT_PIXELS "PPSTACK.PIXELS" // Name of rejected pixels metadata items
 
 #include <psmodules.h>
Index: /trunk/ppStack/src/ppStackLoop.c
===================================================================
--- /trunk/ppStack/src/ppStackLoop.c	(revision 16985)
+++ /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
Index: /trunk/ppStack/src/ppStackReadout.c
===================================================================
--- /trunk/ppStack/src/ppStackReadout.c	(revision 16985)
+++ /trunk/ppStack/src/ppStackReadout.c	(revision 16986)
@@ -12,7 +12,7 @@
 #define WCS_TOLERANCE 0.001             // Tolerance for WCS
 
-//#define REJECTION_FILES                 // Write rejection mask?
-//#define INSPECTION_FILES                // Write inspection mask?
-//#define COMBINED_FILES                  // Write combined images?
+#define REJECTION_FILES                 // Write rejection mask?
+#define INSPECTION_FILES                // Write inspection mask?
+#define COMBINED_FILES                  // Write combined images?
 
 
@@ -36,5 +36,5 @@
     psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Value to mask
     psMaskType maskBlank = psMetadataLookupU8(NULL, config->arguments, "MASK.BLANK"); // Mask for blank reg.
-    float threshold = psMetadataLookupF32(NULL, config->arguments, "THRESHOLD.MASK"); // Threshold for mask deconvolution
+//    float threshold = psMetadataLookupF32(NULL, config->arguments, "THRESHOLD.MASK"); // Threshold for mask deconvolution
     bool useVariance = psMetadataLookupBool(&mdok, config->arguments, "VARIANCE"); // Use variance for rejection?
     bool safe = psMetadataLookupBool(&mdok, config->arguments, "SAFE"); // Play safe when combining small numbers of pixels?
@@ -99,20 +99,11 @@
 #endif
 
-    // Reject pixels
+    // Save list of pixels to inspect
     for (int i = 0; i < num; i++) {
         pmStackData *data = stack->data[i]; // Data for this image
         pmReadout *readout = data->readout; // Readout of interest
-        int col0 = readout->col0, row0 = readout->row0; // Offset for readout
-        int numCols = readout->image->numCols, numRows = readout->image->numRows; // Size of image
-
-        psRegion *valid = psRegionAlloc(col0, col0 + numCols, row0, row0 + numRows); // Valid region for rej
-        psPixels *reject = pmStackReject(data->pixels, valid, threshold, regions->data[i],
-                                         kernels->data[i]); // Pixels to reject
-        psFree(valid);
-
-        psMetadataAddPtr(readout->analysis, PS_LIST_TAIL, PPSTACK_REJECTED_PIXELS,
-                         PS_DATA_PIXELS | PS_META_DUPLICATE_OK, "Rejected pixels from initial combination",
-                         reject);
-        psFree(reject);                 // Drop reference
+        psMetadataAddPtr(readout->analysis, PS_LIST_TAIL, PPSTACK_INSPECT_PIXELS,
+                         PS_DATA_PIXELS | PS_META_DUPLICATE_OK, "Pixels to inspect from initial combination",
+                         data->pixels);
     }
 
