diff --git a/src/interpret_functions.h b/src/interpret_functions.h
index 30d072b0decfa3d41585bbda75531a75751419ba..ab5ac1fc0a53a183193a00a62b63c4820d21f8d0 100644
--- a/src/interpret_functions.h
+++ b/src/interpret_functions.h
@@ -309,7 +309,7 @@ OPCODE1(F_LOOKUP_LFUN, "->lfun", 0, {
 
   if ((Pike_sp[-1].type == T_OBJECT) &&
       (p = (o = Pike_sp[-1].u.object)->prog) &&
-      (FIND_LFUN(p = o->prog->inherits[Pike_sp[-1].subtype].prog,
+      (FIND_LFUN(p = p->inherits[Pike_sp[-1].subtype].prog,
 		 LFUN_ARROW) == -1)) {
     int id = FIND_LFUN(p, arg1);
     if ((id != -1) &&