Index: trunk/ppSub/src/ppSubArguments.c
===================================================================
--- trunk/ppSub/src/ppSubArguments.c	(revision 38469)
+++ trunk/ppSub/src/ppSubArguments.c	(revision 38709)
@@ -103,4 +103,5 @@
     psMetadataAddBool(arguments, PS_LIST_TAIL, "-save-refconv", 0, "Save reference convolved images?", false);
     psMetadataAddBool(arguments, PS_LIST_TAIL, "-visual", 0, "Show diagnostic plots", NULL);
+    psMetadataAddBool(arguments, PS_LIST_TAIL, "-updatemode", 0, "update mode?", false);
 
     if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 2) {
Index: trunk/ppSub/src/ppSubCamera.c
===================================================================
--- trunk/ppSub/src/ppSubCamera.c	(revision 38469)
+++ trunk/ppSub/src/ppSubCamera.c	(revision 38709)
@@ -317,6 +317,7 @@
     checkFileruleFileSave (output, config);
     checkFileruleFileSave (outMask, config);
+    pmFPAfile *outVar = NULL;
     if (inVar && refVar) {
-        pmFPAfile *outVar = defineOutputFile(config, output, false, "PPSUB.OUTPUT.VARIANCE",
+        outVar = defineOutputFile(config, output, false, "PPSUB.OUTPUT.VARIANCE",
                                              PM_FPA_FILE_VARIANCE);
         if (!outVar) {
@@ -325,4 +326,13 @@
         }
 	checkFileruleFileSave (outVar, config);
+    }
+    // If we are in update mode unconditionally save the output files
+    bool updateMode = psMetadataLookupBool(NULL, config->arguments, "-updatemode");
+    if (updateMode) {
+        output->save = true;
+        outMask->save = true;
+        if (outVar) {
+            outVar->save = true;
+        }
     }
 
