Index: branches/pap/ppStack/src/ppStack.h
===================================================================
--- branches/pap/ppStack/src/ppStack.h	(revision 25811)
+++ branches/pap/ppStack/src/ppStack.h	(revision 25812)
@@ -83,5 +83,6 @@
                          const psArray *rejected, // Array with pixels rejected in each image
                          const psVector *weightings, // Weighting factors for each image
-                         const psVector *addVariance // Additional variance for rejection
+                         const psVector *addVariance, // Additional variance for rejection
+                         bool full                    // Combine full image?
     );
 
Index: branches/pap/ppStack/src/ppStackCombineFinal.c
===================================================================
--- branches/pap/ppStack/src/ppStackCombineFinal.c	(revision 25811)
+++ branches/pap/ppStack/src/ppStackCombineFinal.c	(revision 25812)
@@ -11,5 +11,5 @@
 
 bool ppStackCombineFinal(pmReadout *target, ppStackThreadData *stack,
-                         ppStackOptions *options, pmConfig *config)
+                         ppStackOptions *options, pmConfig *config, bool full)
 {
     psAssert(stack, "Require stack");
@@ -41,4 +41,5 @@
         psArrayAdd(job->args, 1, options);
         psArrayAdd(job->args, 1, config);
+        PS_ARRAY_ADD_SCALAR(job->args, full, PS_TYPE_BOOL);
         if (!psThreadJobAddPending(job)) {
             psFree(job);
Index: branches/pap/ppStack/src/ppStackLoop.c
===================================================================
--- branches/pap/ppStack/src/ppStackLoop.c	(revision 25811)
+++ branches/pap/ppStack/src/ppStackLoop.c	(revision 25812)
@@ -97,5 +97,5 @@
     // Final combination
     psTrace("ppStack", 2, "Final stack of convolved images....\n");
-    if (!ppStackCombineFinal(options->outRO, stack, options, config)) {
+    if (!ppStackCombineFinal(options->outRO, stack, options, config, false)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to perform final combination.");
         psFree(stack);
@@ -132,5 +132,5 @@
         }
         psTrace("ppStack", 2, "Stack of unconvolved images....\n");
-        if (!ppStackCombineFinal(options->unconvRO, stack, options, config)) {
+        if (!ppStackCombineFinal(options->unconvRO, stack, options, config, true)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to perform unconvolved combination.");
             psFree(stack);
Index: branches/pap/ppStack/src/ppStackLoop.h
===================================================================
--- branches/pap/ppStack/src/ppStackLoop.h	(revision 25811)
+++ branches/pap/ppStack/src/ppStackLoop.h	(revision 25812)
@@ -59,5 +59,6 @@
     ppStackThreadData *stack,           // Stack
     ppStackOptions *options,            // Options
-    pmConfig *config                    // Configuration
+    pmConfig *config,                   // Configuration
+    bool full                           // Combine full image?
     );
 
Index: branches/pap/ppStack/src/ppStackReadout.c
===================================================================
--- branches/pap/ppStack/src/ppStackReadout.c	(revision 25811)
+++ branches/pap/ppStack/src/ppStackReadout.c	(revision 25812)
@@ -43,4 +43,5 @@
     ppStackOptions *options = args->data[2]; // Options
     pmConfig *config = args->data[3];   // Configuration
+    bool full = PS_SCALAR_VALUE(args->data[4], U8); // Combine full image?
 
     psVector *mask = options->inputMask; // Mask for inputs
@@ -49,6 +50,7 @@
     psVector *addVariance = options->matchChi2; // Additional variance when rejecting
 
+
     bool status = ppStackReadoutFinal(config, target, thread->readouts, mask, rejected,
-                                      weightings, addVariance); // Status of operation
+                                      weightings, addVariance, full); // Status of operation
 
     thread->busy = false;
@@ -180,5 +182,5 @@
 bool ppStackReadoutFinal(const pmConfig *config, pmReadout *outRO, const psArray *readouts,
                          const psVector *mask, const psArray *rejected, const psVector *weightings,
-                         const psVector *addVariance)
+                         const psVector *addVariance, bool full)
 {
     assert(config);
@@ -211,8 +213,6 @@
     psArray *stack = psArrayAlloc(num); // Array for stacking
 
-    bool entire = true;                 // Combine entire image?
-    if (rejected) {
+    if (!rejected) {
         // We have rejection from a previous combination: combine without flagging pixels to inspect
-        entire = false;
         safe = false;
         iter = 0;
@@ -225,5 +225,5 @@
         if (mask->data.U8[i] & (PPSTACK_MASK_REJECT | PPSTACK_MASK_BAD)) {
             // Image completely rejected since previous combination
-            entire = true;
+            full = true;
             continue;
         } else if (mask->data.U8[i]) {
@@ -256,5 +256,5 @@
     if (!pmStackCombine(outRO, stack, maskVal | maskBad, maskBad, 0,
                         iter, combineRej, combineSys, combineDiscard,
-                        entire, useVariance, safe, !rejected)) {
+                        full, useVariance, safe, !rejected)) {
         psError(PS_ERR_UNKNOWN, false, "Unable to combine input readouts.");
         psFree(stack);
Index: branches/pap/ppStack/src/ppStackThread.c
===================================================================
--- branches/pap/ppStack/src/ppStackThread.c	(revision 25811)
+++ branches/pap/ppStack/src/ppStackThread.c	(revision 25812)
@@ -277,5 +277,5 @@
 
     {
-        psThreadTask *task = psThreadTaskAlloc("PPSTACK_FINAL_COMBINE", 4);
+        psThreadTask *task = psThreadTaskAlloc("PPSTACK_FINAL_COMBINE", 5);
         task->function = &ppStackReadoutFinalThread;
         psThreadTaskAdd(task);
