diff --git a/find/parser.c b/find/parser.c
index 75bbe69..a80fc78 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -910,8 +910,9 @@ parse_fstype (const struct parser_table* entry, char **argv, int *arg_ptr)
 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;
   return p;
 }

@@ -3124,8 +3125,10 @@ parse_time (const struct parser_table* entry, char *argv[], int *arg_ptr)
        */
     }

-  if (!get_relative_timestamp(timearg, &tval, origin, DAYSECS, errmsg))
+  if (!get_relative_timestamp(timearg, &tval, origin, DAYSECS, errmsg)){
+    (*arg_ptr)--;
     return false;
+  }

   our_pred = insert_primary (entry);
   our_pred->args.reftime = tval;
@@ -3255,6 +3258,7 @@ insert_num (char **argv, int *arg_ptr, const struct parser_table *entry)
          }
        return our_pred;
       }
+      else  (*arg_ptr)--;
   }
   return NULL;
 }
