Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 8463)
+++ /trunk/ippTools/src/dettool.c	(revision 8464)
@@ -36,7 +36,8 @@
 static bool residexpMode(pxConfig *config);
 static bool residdetrunMode(pxConfig *config);
-static bool declaremasterframeMode(pxConfig *config);
-static bool masterframeMode(pxConfig *config);
-static bool masterMode(pxConfig *config);
+static bool updateresidexpMode(pxConfig *config);
+static bool declaremasterframeMode(pxConfig *config); // axe?
+static bool masterframeMode(pxConfig *config); // axe?
+static bool masterMode(pxConfig *config); // axe?
 static bool rerunMode(pxConfig *config);
 
@@ -93,4 +94,5 @@
         MODECASE(DETTOOL_MODE_RESIDEXP,         residexpMode);
         MODECASE(DETTOOL_MODE_RESIDDETRUN,      residdetrunMode);
+        MODECASE(DETTOOL_MODE_UPDATERESIDEXP,   updateresidexpMode);
         MODECASE(DETTOOL_MODE_DECLAREMASTERFRAME, declaremasterframeMode);
         MODECASE(DETTOOL_MODE_MASTERFRAME,      masterframeMode);
@@ -3307,4 +3309,9 @@
 }
 
+static bool updateresidexpMode(pxConfig *config)
+{
+    return true;
+}
+
 static bool declaremasterframeMode(pxConfig *config)
 {
Index: /trunk/ippTools/src/dettool.h
===================================================================
--- /trunk/ippTools/src/dettool.h	(revision 8463)
+++ /trunk/ippTools/src/dettool.h	(revision 8464)
@@ -33,4 +33,5 @@
     DETTOOL_MODE_RESIDDETRUN,
     DETTOOL_MODE_RESIDEXP,
+    DETTOOL_MODE_UPDATERESIDEXP,
     DETTOOL_MODE_DECLAREMASTERFRAME,
     DETTOOL_MODE_MASTERFRAME,
Index: /trunk/ippTools/src/dettoolConfig.c
===================================================================
--- /trunk/ippTools/src/dettoolConfig.c	(revision 8463)
+++ /trunk/ippTools/src/dettoolConfig.c	(revision 8464)
@@ -215,4 +215,5 @@
 
     // -stackedframe
+    // XXX axe?
     psMetadata *stacframeArgs = psMetadataAlloc();
     psMetadataAddStr(stacframeArgs, PS_LIST_TAIL, "-det_id",  0,
@@ -262,4 +263,5 @@
 
     // -normalizedframe
+    // XXX axe?
     psMetadata *normalizedframeArgs = psMetadataAlloc();
     psMetadataAddStr(normalizedframeArgs, PS_LIST_TAIL, "-det_id",  0,
@@ -357,5 +359,19 @@
         "use the simple output format", false);
 
+    // -updateresidexp
+    psMetadata *updateresidexpArgs = psMetadataAlloc();
+    psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-det_id",  0,
+        "define detrend ID", NULL);
+    psMetadataAddS32(updateresidexpArgs, PS_LIST_TAIL, "-iteration",  0,
+        "define iteration number", 0);
+    psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-exp_id",  0,
+        "define exp ID", NULL);
+    psMetadataAddStr(updateresidexpArgs, PS_LIST_TAIL, "-recip",  0,
+        "define recipe", NULL);
+    psMetadataAddBool(updateresidexpArgs, PS_LIST_TAIL, "-reject",  0,
+        "reject residuals", false);
+
     // -declaremasterframe
+    // XXX axe?
     psMetadata *declaremasterframeArgs = psMetadataAlloc();
     psMetadataAddStr(declaremasterframeArgs, PS_LIST_TAIL, "-det_id",  0,
@@ -367,4 +383,5 @@
  
     // -masterframe
+    // XXX axe?
     psMetadata *masterframeArgs = psMetadataAlloc();
     psMetadataAddStr(masterframeArgs, PS_LIST_TAIL, "-det_id",  0,
@@ -374,4 +391,5 @@
 
     // -master
+    // XXX axe?
     psMetadata *masterArgs = psMetadataAlloc();
     psMetadataAddStr(masterArgs, PS_LIST_TAIL, "-det_id",  0,
@@ -430,4 +448,5 @@
     PXTOOL_MODE("-residexp",        DETTOOL_MODE_RESIDEXP,     residexpArgs);
     PXTOOL_MODE("-residdetrun",     DETTOOL_MODE_RESIDDETRUN,  residdetrunArgs);
+    PXTOOL_MODE("-updateresidexp", DETTOOL_MODE_UPDATERESIDEXP,updateresidexpArgs);
     PXTOOL_MODE("-declaremasterframe",DETTOOL_MODE_DECLAREMASTERFRAME,declaremasterframeArgs);
     PXTOOL_MODE("-masterframe",     DETTOOL_MODE_MASTERFRAME,  masterframeArgs);
@@ -447,5 +466,5 @@
         printf("\nPan-STARRS Detrend Tool\n");
         printf("Usage: %s <mode> [<options>]\n\n", argv[0]);
-        printf(" <mode> : [-pending|-definebyexp|-definebyquery|-runs|-selectrun|-select|-raw|-addprocessed|-tostack|-processed|-addstacked|-tonormalize|-addnormstat|-normstat|-stacked|-stackedframe|-addnormalizedimfile|-toresid|-normalized|-toresidexp|-normalizedframe|-addresidimfile|-residimfile|-addresidexp|-residexp|-residdetrun|-declaremasterframe|-masterframe|-master|-rerun]\n\n");
+        printf(" <mode> : [-pending|-definebyexp|-definebyquery|-runs|-selectrun|-select|-raw|-addprocessed|-tostack|-processed|-addstacked|-tonormalize|-addnormstat|-normstat|-stacked|-stackedframe|-addnormalizedimfile|-toresid|-normalized|-toresidexp|-normalizedframe|-addresidimfile|-residimfile|-addresidexp|-residexp|-residdetrun|-updateresidexp|-declaremasterframe|-masterframe|-master|-rerun]\n\n");
         fprintf (stdout, "-pending ");
         psArgumentHelp(pendingArgs);
@@ -554,4 +573,8 @@
         psArgumentHelp(residdetrunArgs);
         psFree(residdetrunArgs);
+
+        fprintf (stdout, "-updateresidexp ");
+        psArgumentHelp(updateresidexpArgs);
+        psFree(updateresidexpArgs);
 
         fprintf (stdout, "-declaremasterframe ");
@@ -601,4 +624,5 @@
     psFree(residexpArgs);
     psFree(residdetrunArgs);
+    psFree(updateresidexpArgs);
     psFree(declaremasterframeArgs);
     psFree(masterframeArgs);
