Index: trunk/ppSub/src/ppSubData.c
===================================================================
--- trunk/ppSub/src/ppSubData.c	(revision 23688)
+++ trunk/ppSub/src/ppSubData.c	(revision 23740)
@@ -11,16 +11,19 @@
 
 
-// Image files to activate/deactivate
-static const char *imageFiles[] = { "PPSUB.OUTPUT", "PPSUB.OUTPUT.MASK", "PPSUB.OUTPUT.VARIANCE",
-                                    "PPSUB.OUTPUT.KERNELS", "PPSUB.OUTPUT.JPEG1", "PPSUB.OUTPUT.JPEG2",
-                                    "PPSUB.INPUT.CONV", "PPSUB.INPUT.CONV.MASK", "PPSUB.INPUT.CONV.VARIANCE",
-                                    "PPSUB.REF.CONV", "PPSUB.REF.CONV.MASK", "PPSUB.REF.CONV.VARIANCE",
-                                    NULL };
-
-
-
-static void subOptionsFree(ppSubData *options)
+static void subDataFree(ppSubData *data)
 {
-    psFree(options->stats);
+    if (data->statsFile) {
+        psString stats = psMetadataConfigFormat(data->stats); // Statistics to output
+        if (!stats || strlen(stats) == 0) {
+            psWarning("Unable to generate statistics file.");
+        } else {
+            fprintf(data->statsFile, "%s", stats);
+        }
+        psFree(stats);
+        fclose(data->statsFile);
+    }
+    psFree(data->stamps);
+    psFree(data->psf);
+    psFree(data->stats);
     return;
 }
@@ -28,12 +31,17 @@
 ppSubData *ppSubDataAlloc(void)
 {
-    ppSubData *options = psAlloc(sizeof(ppSubData)); // Processing data, to return
-    psMemSetDeallocator(options, (psFreeFunc)subOptionsFree);
+    ppSubData *data = psAlloc(sizeof(ppSubData)); // Processing data, to return
+    psMemSetDeallocator(data, (psFreeFunc)subDataFree);
 
-    options->quality = 0;
-    options->stats = psMetadataAlloc();
-    psMetadataAddS32(options->stats, PS_LIST_TAIL, "QUALITY", 0, "Data quality", 0);
+    data->quality = 0;
+    data->photometry = false;
+    data->inverse = false;
+    data->stamps = NULL;
+    data->psf = NULL;
+    data->statsFile = NULL;
+    data->stats = psMetadataAlloc();
+    psMetadataAddS32(data->stats, PS_LIST_TAIL, "QUALITY", 0, "Data quality", 0);
 
-    return options;
+    return data;
 }
 
@@ -49,12 +57,5 @@
     }
 
-    if (files & PPSUB_FILES_IMAGE) {
-        for (int i = 0; imageFiles[i]; i++) {
-            pmFPAfileActivate(config->files, imageFiles[i], false);
-        }
-    }
-    if (files & PPSUB_FILES_PHOT) {
-        psphotFilesActivate(config, false);
-    }
+    ppSubFilesActivate(config, files, false);
 
     psErrorClear();
