Index: trunk/ppStack/src/ppStackReadout.c
===================================================================
--- trunk/ppStack/src/ppStackReadout.c	(revision 19475)
+++ trunk/ppStack/src/ppStackReadout.c	(revision 19532)
@@ -22,6 +22,8 @@
     psArray *subRegions = args->data[3]; // Regions for PSF-matching
     psArray *subKernels = args->data[4]; // Kernels for PSF-matching
-
-    psArray *inspect = ppStackReadoutInitial(config, outRO, thread->readouts, subRegions, subKernels);
+    psVector *addVariance = args->data[5]; // Additional variance when rejecting
+
+    psArray *inspect = ppStackReadoutInitial(config, outRO, thread->readouts,
+                                             subRegions, subKernels, addVariance);
 
     job->results = inspect;
@@ -75,5 +77,5 @@
 
 psArray *ppStackReadoutInitial(const pmConfig *config, pmReadout *outRO, const psArray *readouts,
-                               const psArray *regions, const psArray *kernels)
+                               const psArray *regions, const psArray *kernels, const psVector *addVariance)
 {
     assert(config);
@@ -84,4 +86,5 @@
     assert(readouts->n == regions->n);
     assert(regions->n == kernels->n);
+    assert(addVariance && addVariance->n == readouts->n && addVariance->type.type == PS_TYPE_F32);
     static int sectionNum = 0;          // Section number; for debugging outputs
 
@@ -127,5 +130,5 @@
         }
 
-        stack->data[i] = pmStackDataAlloc(ro, weighting);
+        stack->data[i] = pmStackDataAlloc(ro, weighting, addVariance->data.F32[i]);
     }
 
@@ -221,5 +224,5 @@
         }
 
-        pmStackData *data = pmStackDataAlloc(ro, weighting);
+        pmStackData *data = pmStackDataAlloc(ro, weighting, NAN);
         data->reject = psMemIncrRefCounter(rejected->data[i]);
         stack->data[i] = data;
