Index: branches/tap_branches/ppSub/src/ppSubArguments.c
===================================================================
--- branches/tap_branches/ppSub/src/ppSubArguments.c	(revision 25900)
+++ branches/tap_branches/ppSub/src/ppSubArguments.c	(revision 27838)
@@ -86,5 +86,8 @@
     psMetadataAddS32(arguments, PS_LIST_TAIL, "-convolve", 0, "Image to convolve [1 or 2]", 0);
     psMetadataAddBool(arguments, PS_LIST_TAIL, "-photometry", 0, "Perform photometry?", NULL);
-    psMetadataAddBool(arguments, PS_LIST_TAIL, "-inverse", 0, "Generate inverse subtractions?", NULL);
+    psMetadataAddF32(arguments, PS_LIST_TAIL, "-zp", 0, "Zero point for photometry", NAN);
+    psMetadataAddBool(arguments, PS_LIST_TAIL, "-inverse", 0, "Generate inverse subtractions?", false);
+    psMetadataAddBool(arguments, PS_LIST_TAIL, "-save-inconv", 0, "Save input convolved images?", false);
+    psMetadataAddBool(arguments, PS_LIST_TAIL, "-save-refconv", 0, "Save reference convolved images?", false);
     psMetadataAddBool(arguments, PS_LIST_TAIL, "-visual", 0, "Show diagnostic plots", NULL);
 
@@ -140,4 +143,8 @@
     if (data->statsName && strlen(data->statsName) > 0) {
         psString resolved = pmConfigConvertFilename(data->statsName, config, true, true); // Resolved filename
+        if (!resolved) {
+            psError(psErrorCodeLast(), false, "Unable to resolve statistics file: %s", data->statsName);
+            return false;
+        }
         data->statsFile = fopen(resolved, "w");
         if (!data->statsFile) {
@@ -149,4 +156,7 @@
     }
 
+    data->saveInConv = psMetadataLookupBool(NULL, arguments, "-save-inconv");
+    data->saveRefConv = psMetadataLookupBool(NULL, arguments, "-save-refconv");
+
     if (psMetadataLookupBool(NULL, arguments, "-visual")) {
         pmVisualSetVisual(true);
@@ -156,5 +166,5 @@
     if (threads > 0) {
         if (!psThreadPoolInit(threads)) {
-            psError(PS_ERR_UNKNOWN, false, "Unable to setup %d threads", threads);
+            psError(psErrorCodeLast(), false, "Unable to setup %d threads", threads);
             return false;
         }
