diff --git a/find/parser.c b/find/parser.c
index 75bbe69..5be5c2e 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -3096,13 +3096,18 @@ parse_time (const struct parser_table* entry, char *argv[], int *arg_ptr)
   struct predicate *our_pred;
   struct time_val tval;
   enum comparison_type comp;
-  const char *timearg;
+  const char *timearg, *old_timearg;
   const char *errmsg = "arithmetic overflow while converting %s days to a number of seconds";
   time_t origin;
 
   if (!collect_arg(argv, arg_ptr, &timearg))
     return false;
 
+
+  /* get_comp_type modifies our timearg, so save timearg
+   */
+  old_timearg = timearg;
+
   /* Decide the origin by previewing the comparison type. */
   origin = options.cur_day_start;
 
@@ -3119,12 +3124,9 @@ parse_time (const struct parser_table* entry, char *argv[], int *arg_ptr)
                     _("arithmetic overflow when trying to calculate the end of today"));
             }
         }
-      /* We discard the value of comp here, as get_relative_timestamp
-       * will set tval.kind. 
-       */
     }
   
-  if (!get_relative_timestamp(timearg, &tval, origin, DAYSECS, errmsg))
+  if (!get_relative_timestamp(old_timearg, &tval, origin, DAYSECS, errmsg))
     return false;
 
   our_pred = insert_primary (entry);
