Index: trunk/ppStack/src/ppStackConvolve.c
===================================================================
--- trunk/ppStack/src/ppStackConvolve.c	(revision 23601)
+++ trunk/ppStack/src/ppStackConvolve.c	(revision 23602)
@@ -112,24 +112,22 @@
 
         // Write the temporary convolved files
-        if (options->convolve) {
-            pmHDU *hdu = readout->parent->parent->parent->hdu; // HDU for convolved image
-            assert(hdu);
-            ppStackWriteImage(options->imageNames->data[i], hdu->header, readout->image, config);
-            psMetadata *maskHeader = psMetadataCopy(NULL, hdu->header); // Copy of header, for mask
-            pmConfigMaskWriteHeader(config, maskHeader);
-            ppStackWriteImage(options->maskNames->data[i], maskHeader, readout->mask, config);
-            psFree(maskHeader);
-            psImageCovarianceTransfer(readout->variance, readout->covariance);
-            ppStackWriteImage(options->varianceNames->data[i], hdu->header, readout->variance, config);
+        pmHDU *hdu = readout->parent->parent->parent->hdu; // HDU for convolved image
+        assert(hdu);
+        ppStackWriteImage(options->imageNames->data[i], hdu->header, readout->image, config);
+        psMetadata *maskHeader = psMetadataCopy(NULL, hdu->header); // Copy of header, for mask
+        pmConfigMaskWriteHeader(config, maskHeader);
+        ppStackWriteImage(options->maskNames->data[i], maskHeader, readout->mask, config);
+        psFree(maskHeader);
+        psImageCovarianceTransfer(readout->variance, readout->covariance);
+        ppStackWriteImage(options->varianceNames->data[i], hdu->header, readout->variance, config);
 #ifdef TESTING
-            {
-                psString name = NULL;
-                psStringAppend(&name, "covariance_%d.fits", i);
-                ppStackWriteImage(name, hdu->header, readout->covariance->image, config);
-                pmStackVisualPlotTestImage(readout->covariance->image, name);
-                psFree(name);
-            }
+        {
+            psString name = NULL;
+            psStringAppend(&name, "covariance_%d.fits", i);
+            ppStackWriteImage(name, hdu->header, readout->covariance->image, config);
+            pmStackVisualPlotTestImage(readout->covariance->image, name);
+            psFree(name);
+        }
 #endif
-        }
 
         pmCell *inCell = readout->parent; // Input cell
Index: trunk/ppStack/src/ppStackSetup.c
===================================================================
--- trunk/ppStack/src/ppStackSetup.c	(revision 23601)
+++ trunk/ppStack/src/ppStackSetup.c	(revision 23602)
@@ -12,29 +12,4 @@
 
 #define BUFFER 16                       // Buffer for name array
-
-// Generate an array of input filenames
-static psArray *stackNameArray(const ppStackOptions *options, // Stack options
-                               pmConfig *config, // Configuration
-                               const char *name // Name of file
-    )
-{
-    psAssert(config, "Require configuration");
-    psAssert(config, "Require file name");
-
-    psArray *array = psArrayAllocEmpty(options->num); // Array with filenames
-    pmFPAview *view = pmFPAviewAlloc(0);// View to readout
-    view->chip = view->cell = view->readout = -1;
-
-    for (int i = 0; i < options->num; i++) {
-        pmFPAfile *file = pmFPAfileSelectSingle(config->files, name, i); // File of interest
-
-        psString filename = pmFPAfileName(file, view, config); // Filename of interest
-        psAssert(filename, "Can't determine filename");
-        psArrayAdd(array, array->n, filename);
-        psFree(filename);               // Drop reference
-    }
-
-    return array;
-}
 
 
@@ -71,49 +46,43 @@
 
     // Generate temporary names for convolved images
-    if (options->convolve) {
-        const char *tempDir = psMetadataLookupStr(NULL, recipe, "TEMP.DIR"); // Directory for temporary images
-        if (!tempDir) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to find TEMP.DIR in recipe");
-            return false;
-        }
+    const char *tempDir = psMetadataLookupStr(NULL, recipe, "TEMP.DIR"); // Directory for temporary images
+    if (!tempDir) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to find TEMP.DIR in recipe");
+        return false;
+    }
 
-        psString outputName = psStringCopy(psMetadataLookupStr(NULL, config->arguments,
-                                                               "OUTPUT")); // Name for temporary files
-        const char *tempName = basename(outputName);
-        if (!tempName) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to construct basename for temporary files.");
-            psFree(outputName);
-            return false;
-        }
+    psString outputName = psStringCopy(psMetadataLookupStr(NULL, config->arguments,
+                                                           "OUTPUT")); // Name for temporary files
+    const char *tempName = basename(outputName);
+    if (!tempName) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to construct basename for temporary files.");
+        psFree(outputName);
+        return false;
+    }
 
-        const char *tempImage = psMetadataLookupStr(NULL, recipe, "TEMP.IMAGE"); // Suffix for images
-        const char *tempMask = psMetadataLookupStr(NULL, recipe, "TEMP.MASK"); // Suffix for masks
-        const char *tempVariance = psMetadataLookupStr(NULL, recipe, "TEMP.VARIANCE"); // Suffix for var maps
-        if (!tempImage || !tempMask || !tempVariance) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
-                    "Unable to find TEMP.IMAGE, TEMP.MASK and TEMP.VARIANCE in recipe");
-            psFree(outputName);
-            return false;
-        }
+    const char *tempImage = psMetadataLookupStr(NULL, recipe, "TEMP.IMAGE"); // Suffix for images
+    const char *tempMask = psMetadataLookupStr(NULL, recipe, "TEMP.MASK"); // Suffix for masks
+    const char *tempVariance = psMetadataLookupStr(NULL, recipe, "TEMP.VARIANCE"); // Suffix for var maps
+    if (!tempImage || !tempMask || !tempVariance) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
+                "Unable to find TEMP.IMAGE, TEMP.MASK and TEMP.VARIANCE in recipe");
+        psFree(outputName);
+        return false;
+    }
 
-        options->imageNames = psArrayAlloc(num);
-        options->maskNames = psArrayAlloc(num);
-        options->varianceNames = psArrayAlloc(num);
-        for (int i = 0; i < num; i++) {
-            psString imageName = NULL, maskName = NULL, varianceName = NULL; // Names for convolved images
-            psStringAppend(&imageName, "%s/%s.%d.%s", tempDir, tempName, i, tempImage);
-            psStringAppend(&maskName, "%s/%s.%d.%s", tempDir, tempName, i, tempMask);
-            psStringAppend(&varianceName, "%s/%s.%d.%s", tempDir, tempName, i, tempVariance);
-            psTrace("ppStack", 5, "Temporary files: %s %s %s\n", imageName, maskName, varianceName);
-            options->imageNames->data[i] = imageName;
-            options->maskNames->data[i] = maskName;
-            options->varianceNames->data[i] = varianceName;
-        }
-        psFree(outputName);
-    } else {
-        options->imageNames = stackNameArray(options, config, "PPSTACK.INPUT");
-        options->maskNames = stackNameArray(options, config, "PPSTACK.INPUT.MASK");
-        options->varianceNames = stackNameArray(options, config, "PPSTACK.INPUT.VARIANCE");
+    options->imageNames = psArrayAlloc(num);
+    options->maskNames = psArrayAlloc(num);
+    options->varianceNames = psArrayAlloc(num);
+    for (int i = 0; i < num; i++) {
+        psString imageName = NULL, maskName = NULL, varianceName = NULL; // Names for convolved images
+        psStringAppend(&imageName, "%s/%s.%d.%s", tempDir, tempName, i, tempImage);
+        psStringAppend(&maskName, "%s/%s.%d.%s", tempDir, tempName, i, tempMask);
+        psStringAppend(&varianceName, "%s/%s.%d.%s", tempDir, tempName, i, tempVariance);
+        psTrace("ppStack", 5, "Temporary files: %s %s %s\n", imageName, maskName, varianceName);
+        options->imageNames->data[i] = imageName;
+        options->maskNames->data[i] = maskName;
+        options->varianceNames->data[i] = varianceName;
     }
+    psFree(outputName);
 
     if (!pmConfigMaskSetBits(NULL, NULL, config)) {
