Index: trunk/ppStack/src/ppStackSetup.c
===================================================================
--- trunk/ppStack/src/ppStackSetup.c	(revision 23573)
+++ trunk/ppStack/src/ppStackSetup.c	(revision 23576)
@@ -14,5 +14,6 @@
 
 // Generate an array of input filenames
-static psArray *stackNameArray(pmConfig *config, // Configuration
+static psArray *stackNameArray(const ppStackOptions *options, // Stack options
+                               pmConfig *config, // Configuration
                                const char *name // Name of file
     )
@@ -21,19 +22,16 @@
     psAssert(config, "Require file name");
 
-    psString regex = NULL;             // Regular expression for selecting file
-    psStringAppend(&regex, "^%s$", name);
-    psMetadataIterator *iter = psMetadataIteratorAlloc(config->files, PS_LIST_HEAD, regex); // Iterator
-    psFree(regex);
-    psMetadataItem *item;               // Item from iteration
-    psArray *array = psArrayAlloc(BUFFER); // Array of file names
-    while ((item = psMetadataGetAndIncrement(iter))) {
-        psAssert(item->type == PS_DATA_UNKNOWN, "Should be this type");
-        pmFPAfile *file = item->data.V; // An input file
+    psArray *array = psArrayAllocEmpty(options->num); // Array with filenames
+    pmFPAview *view = pmFPAviewAlloc(0);// View to readout
+    view->chip = view->cell = view->readout = -1;
 
-        psString filename = psStringCopy(file->filename); // Filename of interest
+    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
     }
-    psFree(iter);
 
     return array;
@@ -114,7 +112,7 @@
         psFree(outputName);
     } else {
-        options->imageNames = stackNameArray(config, "PPSTACK.INPUT");
-        options->maskNames = stackNameArray(config, "PPSTACK.INPUT.MASK");
-        options->varianceNames = stackNameArray(config, "PPSTACK.INPUT.VARIANCE");
+        options->imageNames = stackNameArray(options, config, "PPSTACK.INPUT");
+        options->maskNames = stackNameArray(options, config, "PPSTACK.INPUT.MASK");
+        options->varianceNames = stackNameArray(options, config, "PPSTACK.INPUT.VARIANCE");
     }
 
