diff --git a/doc/extensions.html b/doc/extensions.html
index f288fbde..8300753e 100644
--- a/doc/extensions.html
+++ b/doc/extensions.html
@@ -251,8 +251,9 @@ enabled:
- goto and ::labels::.
- Hex escapes '\x3F' and '\*' escape in strings.
-- load(string|reader, chunkname [,mode [,env]]).
-loadstring() is an alias.
+- load(string|reader [, chunkname [,mode [,env]]]).
+- loadstring() is an alias for load().
+- loadfile(filename [,mode [,env]]).
- math.log(x [,base]).
- string.rep(s, n [,sep]).
- string.format(): %q reversible.
diff --git a/src/lj_opt_mem.c b/src/lj_opt_mem.c
index bf77666b..98974ce3 100644
--- a/src/lj_opt_mem.c
+++ b/src/lj_opt_mem.c
@@ -347,7 +347,7 @@ TRef LJ_FASTCALL lj_opt_dse_ahstore(jit_State *J)
IRIns *ir;
/* Check for any intervening guards (includes conflicting loads). */
for (ir = IR(J->cur.nins-1); ir > store; ir--)
- if (irt_isguard(ir->t))
+ if (irt_isguard(ir->t) || ir->o == IR_CALLL)
goto doemit; /* No elimination possible. */
/* Remove redundant store from chain and replace with NOP. */
*refp = store->prev;