diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index 3cd74971fd3fe32f30fd829d66459a9c033448df..6409f0b3d17701aeceda976179ef4ea8837a4c36 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -284,7 +284,7 @@ local_var_p(parser_state *p, mrb_sym sym)
     int i;
 
     if (!v) break;
-    for (i=0; i < ir->nlocals; i++) {
+    for (i=0; i+1 < ir->nlocals; i++) {
       if (v[i] == sym) return TRUE;
     }
     if (MRB_PROC_SCOPE_P(u)) break;
diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c
index b28509d81fa56c4cae870d06e4d14769840f0000..becf886c53075c6a08c283e1d7db185e8f6191f8 100644
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ b/mrbgems/mruby-compiler/core/y.tab.c
@@ -347,7 +347,7 @@ local_var_p(parser_state *p, mrb_sym sym)
     int i;
 
     if (!v) break;
-    for (i=0; i < ir->nlocals; i++) {
+    for (i=0; i+1 < ir->nlocals; i++) {
       if (v[i] == sym) return TRUE;
     }
     if (MRB_PROC_SCOPE_P(u)) break;
diff --git a/src/load.c b/src/load.c
index c1a8c4c87c8b8b3b300067db9b1520e3184a06cd..262600685fcec718c92241f36a96686e71b013f2 100644
--- a/src/load.c
+++ b/src/load.c
@@ -434,7 +434,7 @@ read_lv_record(mrb_state *mrb, const uint8_t *start, mrb_irep *irep, size_t *rec
 
   irep->lv = lv = (mrb_sym*)mrb_malloc(mrb, sizeof(mrb_sym) * (irep->nlocals - 1));
 
-  for (i = 0; i + 1< irep->nlocals; ++i) {
+  for (i = 0; i + 1 < irep->nlocals; ++i) {
     uint16_t const sym_idx = bin_to_uint16(bin);
     bin += sizeof(uint16_t);
     if (sym_idx == RITE_LV_NULL_MARK) {