summaryrefslogtreecommitdiff
path: root/libguile/vm-i-system.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r--libguile/vm-i-system.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index fbb94c89a..2da2d4249 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -621,7 +621,13 @@ VM_DEFINE_INSTRUCTION (goto_args, "goto/args", 1, -1, 1)
/* Drop the first argument and the program itself. */
sp -= 2;
- NULLSTACK (bp->nargs + 1)
+ NULLSTACK (bp->nargs + 1);
+
+ /* Freshen the externals */
+ external = bp->external;
+ for (i = 0; i < bp->nexts; i++)
+ CONS (external, SCM_UNDEFINED, external);
+ SCM_FRAME_DATA_ADDRESS (fp)[0] = external;
/* Call itself */
ip = bp->base;