Index: trunk/ippTools/src/dettool.c
===================================================================
--- trunk/ippTools/src/dettool.c	(revision 10672)
+++ trunk/ippTools/src/dettool.c	(revision 10697)
@@ -604,5 +604,40 @@
             }
         }
-    }
+
+        psString dateobs_begin = psMetadataLookupStr(&status, config->args, "-dateobs_begin");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -set_use_end");
+            psFree(where);
+            return false;
+        }
+        if (dateobs_begin) {
+            psTime *time = psTimeFromISO(dateobs_begin, PS_TIME_UTC);
+            if (!psMetadataAddTime(where, PS_LIST_TAIL, "dateobs", 0, ">=", time)) {
+                psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+                psFree(time);
+                psFree(where);
+                return false;
+            }
+            psFree(time);
+        }
+
+        psString dateobs_end = psMetadataLookupStr(&status, config->args, "-dateobs_end");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -set_use_end");
+            psFree(where);
+            return false;
+        }
+        if (dateobs_end) {
+            psTime *time = psTimeFromISO(dateobs_end, PS_TIME_UTC);
+            if (!psMetadataAddTime(where, PS_LIST_TAIL, "dateobs", 0, "<", time)) {
+                psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+                psFree(time);
+                psFree(where);
+                return false;
+            }
+            psFree(time);
+        }
+    }
+
     if (!psListLength(where->list)) {
         psFree(where);
@@ -736,9 +771,17 @@
     // make sure that we found at least one rawDetrendExp
     if (!detrendExps) {
-        psError(PS_ERR_UNKNOWN, false, "no rawDetrendExp rows found");
+        psError(PS_ERR_UNKNOWN, false, "database error");
         psFree(registered);
         psFree(use_begin);
         psFree(use_end);
         return false;
+    }
+    if (!psArrayLength(detrendExps)) {
+        psError(PS_ERR_UNKNOWN, true, "no rawDetrendExp rows found");
+        psFree(detrendExps);
+        psFree(registered);
+        psFree(use_begin);
+        psFree(use_end);
+        return true;
     }
 
