Index: trunk/ppSub/src/ppSubData.c
===================================================================
--- trunk/ppSub/src/ppSubData.c	(revision 23740)
+++ trunk/ppSub/src/ppSubData.c	(revision 23753)
@@ -22,16 +22,26 @@
         psFree(stats);
         fclose(data->statsFile);
+        pmConfigRunFilenameAddWrite(data->config, "STATS", data->statsName);
     }
+    psFree(data->statsName);
     psFree(data->stamps);
     psFree(data->psf);
     psFree(data->stats);
+
+    psString dump_file = psMetadataLookupStr(NULL, data->config->arguments, "-dumpconfig");
+    if (dump_file) {
+        pmConfigDump(data->config, dump_file);
+    }
+    psFree(data->config);
+
     return;
 }
 
-ppSubData *ppSubDataAlloc(void)
+ppSubData *ppSubDataAlloc(pmConfig *config)
 {
     ppSubData *data = psAlloc(sizeof(ppSubData)); // Processing data, to return
     psMemSetDeallocator(data, (psFreeFunc)subDataFree);
 
+    data->config = config;
     data->quality = 0;
     data->photometry = false;
@@ -39,4 +49,5 @@
     data->stamps = NULL;
     data->psf = NULL;
+    data->statsName = NULL;
     data->statsFile = NULL;
     data->stats = psMetadataAlloc();
@@ -47,7 +58,6 @@
 
 
-void ppSubDataQuality(pmConfig *config, ppSubData *data, psErrorCode error, ppSubFiles files)
+void ppSubDataQuality(ppSubData *data, psErrorCode error, ppSubFiles files)
 {
-    psAssert(config, "Require configuration");
     psAssert(data, "Require processing data");
 
@@ -57,5 +67,5 @@
     }
 
-    ppSubFilesActivate(config, files, false);
+    ppSubFilesActivate(data->config, files, false);
 
     psErrorClear();
