diff --git a/src/interpret.c b/src/interpret.c
index 9fec01730d3bf1230d2348715537c4368410179f..1c102dfaee9fc0592566b46103d9b50d7d12efac 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -2183,6 +2183,8 @@ int lower_mega_apply( INT32 args, struct object *o, ptrdiff_t fun )
           else
           {
             struct object *tmp;
+            new_frame->pc = 0;
+            new_frame->num_args = 0;
             tmp=parent_clone_object(constant->u.program,
                                     o,
                                     fun,