diff --git a/src/parsers/many.c b/src/parsers/many.c
index 655dd1497667f44b3de6694a0109c6f58804167d..2da84c01f54015c4a2f535cf11c1d47fff5a8cba 100644
--- a/src/parsers/many.c
+++ b/src/parsers/many.c
@@ -30,8 +30,7 @@ static HParseResult *parse_many(void* env, HParseState *state) {
       h_carray_append(seq, (void*)elem->ast);
     count++;
   }
-  if (count < env_->count)
-    goto err;
+  assert(count == env_->count);
  succ:
   ; // necessary for the label to be here...
   HParsedToken *res = a_new(HParsedToken, 1);
@@ -46,7 +45,6 @@ static HParseResult *parse_many(void* env, HParseState *state) {
     state->input_stream = bak;
     goto succ;
   }
- err:
   state->input_stream = bak;
   return NULL;
 }