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