diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index 8958188d21baf8d8645282b5c80c40ae48392040..c15c1d4994588376b6a3eeab8288ff7dd4212581 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: builtin_functions.c,v 1.31 1997/03/11 03:56:25 hubbe Exp $");
+RCSID("$Id: builtin_functions.c,v 1.32 1997/03/11 03:58:58 hubbe Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "macros.h"
@@ -311,7 +311,7 @@ void f_backtrace(INT32 args)
 
       ITEM(a)[frames].u.array=i=allocate_array_no_init(3+args,0);
       ITEM(a)[frames].type=T_ARRAY;
-      assign_svalues_no_free(ITEM(i)+3, args, f->num_args, BIT_MIXED);
+      assign_svalues_no_free(ITEM(i)+3, fp->locals, args, BIT_MIXED);
       ITEM(i)[2].type=T_FUNCTION;
       ITEM(i)[2].subtype=f->fun;
       ITEM(i)[2].u.object=f->current_object;
diff --git a/src/interpret.c b/src/interpret.c
index aaccbb9522024b72eecd30bd2024cc6cc1e12b1c..02b91b4e0646cf806f2f8a343500bf8731312fe7 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.33 1997/03/11 03:56:26 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.34 1997/03/11 04:00:38 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -1318,8 +1318,8 @@ void apply_low(struct object *o, int fun, int args)
 #ifdef DEBUG
     if(d_flag) check_threads_etc();
 #endif
-    fp->num_args=num_args;
-    new_frame.num_locals=num_args;
+    fp->num_args=args;
+    new_frame.num_locals=args;
     (*function->func.c_fun)(args);
   }else{
     int num_args;