diff --git a/find/parser.c b/find/parser.c
index 75bbe69..e071611 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -911,7 +911,10 @@ static boolean
 parse_gid (const struct parser_table* entry, char **argv, int *arg_ptr)
 {
   struct predicate *p = insert_num (argv, arg_ptr, entry);
-  p->est_success_rate = (p->args.numinfo.l_val < 100) ? 0.99 : 0.2;
+  if (p)
+    p->est_success_rate = (p->args.numinfo.l_val < 100) ? 0.99 : 0.2;
+  else
+    (*arg_ptr)--;
   return p;
 }
 
@@ -3125,7 +3128,10 @@ parse_time (const struct parser_table* entry, char *argv[], int *arg_ptr)
     }
   
   if (!get_relative_timestamp(timearg, &tval, origin, DAYSECS, errmsg))
+  {
+    (*arg_ptr)--;
     return false;
+  }
 
   our_pred = insert_primary (entry);
   our_pred->args.reftime = tval;
