Index: trunk/ippTools/src/regtool.c
===================================================================
--- trunk/ippTools/src/regtool.c	(revision 9539)
+++ trunk/ippTools/src/regtool.c	(revision 9682)
@@ -762,5 +762,5 @@
     }
     psF32 exp_time = psMetadataLookupF32(&status, config->args, "-exp_time");
-    if (isnan(exp_time)) {
+    if (!status) {
         psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -exp_time");
         return false;
@@ -839,6 +839,20 @@
         return false;
     }
-
-    return rawDetrendExpRowAlloc(
+    psTime *dateobs = NULL;
+    {
+        psString dateobsStr = psMetadataLookupStr(&status, config->args, "-dateobs");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -dateobs");
+            return false;
+        }
+        // pass through NULL as this is an optional field
+        if (dateobsStr) {
+            dateobs = psTimeFromISO(dateobsStr, PS_TIME_UTC);
+        } else {
+            dateobs = NULL;
+        }
+    }
+
+    rawDetrendExpRow *raw = rawDetrendExpRowAlloc(
         exp->exp_tag,
         exp->camera,
@@ -858,6 +872,13 @@
         ccd_temp,
         posang,
-        object
+        object,
+        dateobs
     );
+
+    if (dateobs) {
+        psFree(dateobs);
+    }
+
+    return raw;
 }
 
@@ -992,5 +1013,15 @@
     }
 
-    return rawImfileRowAlloc(
+    psTime *dateobs = NULL;
+    {
+        psString dateobsStr = psMetadataLookupStr(&status, config->args, "-dateobs");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -dateobs");
+            return false;
+        }
+        dateobs = psTimeFromISO(dateobsStr, PS_TIME_UTC);
+    }
+
+    rawImfileRow *raw = rawImfileRowAlloc(
         imfile->exp_tag,
         imfile->class,
@@ -1010,6 +1041,11 @@
         ccd_temp,
         posang,
-        object
+        object,
+        dateobs
     );
-}
-
+
+    psFree(dateobs);
+
+    return raw;
+}
+
Index: trunk/ippTools/src/regtoolConfig.c
===================================================================
--- trunk/ippTools/src/regtoolConfig.c	(revision 9539)
+++ trunk/ippTools/src/regtoolConfig.c	(revision 9682)
@@ -100,4 +100,6 @@
     psMetadataAddStr(updateexpArgs, PS_LIST_TAIL, "-object",  0,
         "define exposure object", NULL);
+    psMetadataAddStr(updateexpArgs, PS_LIST_TAIL, "-dateobs",  0,
+        "define observation time", NULL);
     /*
     psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-recip",  0,
@@ -145,4 +147,6 @@
     psMetadataAddStr(updateimfileArgs, PS_LIST_TAIL, "-object",  0,
         "define exposure object", NULL);
+    psMetadataAddStr(updateimfileArgs, PS_LIST_TAIL, "-dateobs",  0,
+        "define observation time", NULL);
     
     // -rawimfile
