Index: trunk/ppSub/src/ppSub.c
===================================================================
--- trunk/ppSub/src/ppSub.c	(revision 27086)
+++ trunk/ppSub/src/ppSub.c	(revision 27088)
@@ -78,14 +78,4 @@
     }
 
-    if (data) {
-        psString dump_file = psMetadataLookupStr(NULL, data->config->arguments, "-dumpconfig");
-        if (dump_file) {
-            if (!pmConfigDump(data->config, dump_file)) {
-                psError(PPSUB_ERR_IO, false, "Unable to dump configuration.");
-            }
-        }
-        psFree(data);
-    }
-
     psExit exitValue = PS_EXIT_SUCCESS;        // Exit value for program
     psErrorCode errorCode = psErrorCodeLast(); // Error code
@@ -132,4 +122,14 @@
     }
 
+    if (data) {
+        psString dump_file = psMetadataLookupStr(NULL, data->config->arguments, "-dumpconfig");
+        if (dump_file) {
+            if (!pmConfigDump(data->config, dump_file)) {
+                psError(PPSUB_ERR_IO, false, "Unable to dump configuration.");
+            }
+        }
+        psFree(data);
+    }
+
     psTrace("ppSub", 1, "Finished at %f sec\n", psTimerMark("ppSub"));
     psTimerStop();
Index: trunk/ppSub/src/ppSubMatchPSFs.c
===================================================================
--- trunk/ppSub/src/ppSubMatchPSFs.c	(revision 27086)
+++ trunk/ppSub/src/ppSubMatchPSFs.c	(revision 27088)
@@ -340,4 +340,8 @@
         psImageCovarianceTruncate(refRO->covariance, COVAR_FRAC);
     }
+
+    // Data doesn't exist until it's created in pmSubtraction...
+    inConv->data_exists = inConv->parent->data_exists = inConv->parent->parent->data_exists = false;
+    refConv->data_exists = refConv->parent->data_exists = refConv->parent->parent->data_exists = false;
 
     // Match the PSFs
