Index: /branches/pap/ppStack/src/ppStackOptions.c
===================================================================
--- /branches/pap/ppStack/src/ppStackOptions.c	(revision 25823)
+++ /branches/pap/ppStack/src/ppStackOptions.c	(revision 25824)
@@ -13,4 +13,6 @@
     }
     psFree(options->origImages);
+    psFree(options->origMasks);
+    psFree(options->origVariances);
     psFree(options->convImages);
     psFree(options->convMasks);
@@ -42,4 +44,6 @@
     options->statsFile = NULL;
     options->origImages = NULL;
+    options->origMasks = NULL;
+    options->origVariances = NULL;
     options->convImages = NULL;
     options->convMasks = NULL;
Index: /branches/pap/ppStack/src/ppStackOptions.h
===================================================================
--- /branches/pap/ppStack/src/ppStackOptions.h	(revision 25823)
+++ /branches/pap/ppStack/src/ppStackOptions.h	(revision 25824)
@@ -11,5 +11,5 @@
     psMetadata *stats;                  // Statistics for output
     FILE *statsFile;                    // File to which to write statistics
-    psArray *origImages;                // Filenames of the original images
+    psArray *origImages, *origMasks, *origVariances; // Filenames of the original images
     psArray *convImages, *convMasks, *convVariances; // Filenames for the temporary convolved images
     int num;                            // Number of inputs
@@ -27,5 +27,5 @@
     psVector *matchChi2;                // chi^2 for stamps from matching
     psVector *weightings;               // Combination weightings for images (1/noise^2)
-    psArray *covariances;               // Covariance matrices
+    psArray *covariances;                 // Convolved covariance matrices
     // Combine initial
     pmReadout *outRO;                   // Output readout
Index: /branches/pap/ppStack/src/ppStackSetup.c
===================================================================
--- /branches/pap/ppStack/src/ppStackSetup.c	(revision 25823)
+++ /branches/pap/ppStack/src/ppStackSetup.c	(revision 25824)
@@ -48,8 +48,20 @@
     // Original images
     options->origImages = psArrayAlloc(num);
+    options->origMasks = psArrayAlloc(num);
+    options->origVariances = psArrayAlloc(num);
     pmFPAview *view = pmFPAviewAlloc(0);
     for (int i = 0; i < num; i++) {
-        pmFPAfile *file = pmFPAfileSelectSingle(config->files, "PPSTACK.INPUT", i); // File of interest
-        options->origImages->data[i] = pmFPAfileName(file, view, config);
+        {
+            pmFPAfile *file = pmFPAfileSelectSingle(config->files, "PPSTACK.INPUT", i);
+            options->origImages->data[i] = pmFPAfileName(file, view, config);
+        }
+        {
+            pmFPAfile *file = pmFPAfileSelectSingle(config->files, "PPSTACK.INPUT.MASK", i);
+            options->origMasks->data[i] = pmFPAfileName(file, view, config);
+        }
+        {
+            pmFPAfile *file = pmFPAfileSelectSingle(config->files, "PPSTACK.INPUT.VARIANCE", i);
+            options->origVariances->data[i] = pmFPAfileName(file, view, config);
+        }
     }
     psFree(view);
Index: /branches/pap/ppStack/src/ppStackThread.c
===================================================================
--- /branches/pap/ppStack/src/ppStackThread.c	(revision 25823)
+++ /branches/pap/ppStack/src/ppStackThread.c	(revision 25824)
@@ -63,13 +63,19 @@
     const psArray *cells = options->cells; // Array of input cells
     const psArray *imageNames = conv ? options->convImages : options->origImages; // Names of images to read
-    const psArray *maskNames = conv ? options->convMasks : NULL; // Names of masks to read
-    const psArray *varianceNames = conv ? options->convVariances : NULL; // Names of variance maps to read
-    const psArray *covariances = conv ? options->covariances : NULL; // Covariance matrices (already read)
+    const psArray *maskNames = conv ? options->convMasks : options->origMasks; // Names of masks to read
+    const psArray *varianceNames = conv ? options->convVariances : NULL; // Variance names
+    const psArray *covariances = conv ? options->covariances : NULL; // Covariance matrices
 
     PS_ASSERT_ARRAY_NON_NULL(cells, NULL);
-    PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, imageNames, NULL);
-    if (conv) {
+    if (imageNames) {
+        PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, imageNames, NULL);
+    }
+    if (maskNames) {
         PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, maskNames, NULL);
+    }
+    if (varianceNames) {
         PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, varianceNames, NULL);
+    }
+    if (covariances) {
         PS_ASSERT_ARRAYS_SIZE_EQUAL(cells, covariances, NULL);
     }
@@ -120,5 +126,5 @@
             }
             pmReadout *ro = pmReadoutAlloc(cell); // Readout for thread
-            if (conv) {
+            if (covariances) {
                 ro->covariance = psMemIncrRefCounter(covariances->data[j]);
             }
@@ -191,5 +197,4 @@
                 psFits *maskFits   = stack->maskFits->data[i]; // FITS file for mask
                 psFits *varianceFits = stack->varianceFits->data[i]; // FITS file for variance
-
 
                 int zMax = 0;
