Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 30876)
+++ /trunk/ippTools/src/dettool.c	(revision 30877)
@@ -1314,21 +1314,60 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
+    bool updating = false;
+    long rows = 0;
+    psMetadata *where = psMetadataAlloc();
     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
+
     PXOPT_LOOKUP_BOOL(again, config->args, "-again", false);
     PXOPT_LOOKUP_STR(state, config->args, "-state", false, false);
 
+    PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "==");
+
+    psMetadata *values = psMetadataAlloc();
+    PXOPT_LOOKUP_TIME(time_begin, config->args, "-set_time_begin", false, false);
+    if (time_begin) {
+      updating = true;
+      PXOPT_COPY_TIME(config->args, values,       "-set_time_begin", "time_begin", "==");
+    }
+    PXOPT_LOOKUP_TIME(time_end,   config->args, "-set_time_end",   false, false);
+    if (time_end) {
+      updating = true;
+      PXOPT_COPY_TIME(config->args,   values,       "-set_time_end",   "time_end", "==");
+    }    
+    PXOPT_LOOKUP_TIME(use_begin,  config->args, "-set_use_begin",  false, false);
+    if (use_begin) {
+      updating = true;
+      PXOPT_COPY_TIME(config->args,  values,       "-set_use_begin",  "use_begin", "==");
+    }
+    PXOPT_LOOKUP_TIME(use_end,    config->args, "-set_use_end",    false, false);
+    if (use_end) {
+      updating = true;
+      PXOPT_COPY_TIME(config->args,    values,       "-set_use_end",    "use_end", "==");
+    }
+    if (state) {
+      updating = true;
+      if (!isValidDetRunState (state)) return false;
+      PXOPT_COPY_STR(config->args,     values,       "-state",        "state", "==");
+    }
+
+
     // either -rerun or -state must be specified
-    if (!(again || state)) {
-        psError(PS_ERR_UNKNOWN, true, "either -again or -state must be specified");
-        return false;
-    }
-    if (again && state) {
-        psError(PS_ERR_UNKNOWN, true, "-accept and -reject are exclusive");
-        return false;
-    }
-
-    if (state) {
-        // set detRun.state to state
-        return setDetRunState(config, det_id, state);
+    if (!(again || updating)) {
+        psError(PS_ERR_UNKNOWN, true, "either -again or update parameters must be specified");
+        return false;
+    }
+    if (again && updating) {
+        psError(PS_ERR_UNKNOWN, true, "-again and update parameters are exclusive");
+        return false;
+    }
+
+    if (updating) {
+      rows = psDBUpdateRows(config->dbh,"detRun",where,values);
+      if (rows) {
+	return(true);
+      }
+      else {
+	return(false);
+      }
     }
 
Index: /trunk/ippTools/src/dettoolConfig.c
===================================================================
--- /trunk/ippTools/src/dettoolConfig.c	(revision 30876)
+++ /trunk/ippTools/src/dettoolConfig.c	(revision 30877)
@@ -848,4 +848,8 @@
     psMetadataAddBool(updatedetrunArgs, PS_LIST_TAIL, "-again",  0,            "start a new iteration of this detrend run", false);
     psMetadataAddStr(updatedetrunArgs, PS_LIST_TAIL, "-state",  0,            "set the state of this detrend run", false);
+    psMetadataAddTime(updatedetrunArgs, PS_LIST_TAIL, "-set_time_begin",  0,            "start of period to apply detrend too", NULL);
+    psMetadataAddTime(updatedetrunArgs, PS_LIST_TAIL, "-set_time_end",  0,            "end of period to apply detrend too", NULL);
+    psMetadataAddTime(updatedetrunArgs, PS_LIST_TAIL, "-set_use_begin",  0,            "start of detrend run applicable period", NULL);
+    psMetadataAddTime(updatedetrunArgs, PS_LIST_TAIL, "-set_use_end",  0,            "end of detrend run applicable period", NULL);
 
     // -rerun
