Index: branches/pap/ppSub/src/ppSubData.c
===================================================================
--- branches/pap/ppSub/src/ppSubData.c	(revision 23690)
+++ branches/pap/ppSub/src/ppSubData.c	(revision 23704)
@@ -20,7 +20,17 @@
 
 
-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->stats);
     return;
 }
@@ -28,10 +38,13 @@
 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->statsFile = NULL;
+    data->stats = psMetadataAlloc();
+    psMetadataAddS32(data->stats, PS_LIST_TAIL, "QUALITY", 0, "Data quality", 0);
 
     return options;
