diff --git a/src/proc.c b/src/proc.c
index a757746675283156644eaeeb1eae1f9afcad97d0..ab22bc1fa092f39100b1870df5f233e874ca4132 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -61,6 +61,7 @@ closure_setup(mrb_state *mrb, struct RProc *p, int nlocals)
     e = mrb->c->ci->env;
   }
   p->env = e;
+  mrb_field_write_barrier(mrb, (struct RBasic *)p, (struct RBasic *)p->env);
 }
 
 struct RProc *