diff --git a/src/interpret.c b/src/interpret.c
index 2e901223b339d63839a2dc83a7f5af35a39a76ce..d6177421ff767cb492109b14d2925b582437f6c2 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.150 2000/05/01 10:28:26 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.151 2000/05/03 09:03:16 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -484,7 +484,7 @@ void reset_evaluator(void)
 }
 
 #ifdef PIKE_DEBUG
-#define BACKLOG 512
+#define BACKLOG 1024
 struct backlog
 {
   INT32 instruction;
@@ -494,6 +494,8 @@ struct backlog
 #ifdef _REENTRANT
   struct object *thread_id;
 #endif
+  int stack;
+  int mark_stack;
 };
 
 struct backlog backlog[BACKLOG];
@@ -539,28 +541,21 @@ void dump_backlog(void)
       }
 
 
+      fprintf(stderr,"%s:%ld: %s",
+	      file,
+	      (long)line,
+	      low_get_f_name(backlog[e].instruction + F_OFFSET, backlog[e].program));
       if(instrs[backlog[e].instruction].flags & I_HASARG2)
       {
-	fprintf(stderr,"%s:%ld: %s(%ld,%ld)\n",
-		file,
-		(long)line,
-		low_get_f_name(backlog[e].instruction + F_OFFSET, backlog[e].program),
+	fprintf(stderr,"(%ld,%ld)",
 		(long)backlog[e].arg,
 		(long)backlog[e].arg2);
       }
       else if(instrs[backlog[e].instruction].flags & I_HASARG)
       {
-	fprintf(stderr,"%s:%ld: %s(%ld)\n",
-		file,
-		(long)line,
-		low_get_f_name(backlog[e].instruction + F_OFFSET, backlog[e].program),
-		(long)backlog[e].arg);
-      }else{
-	fprintf(stderr,"%s:%ld: %s\n",
-		file,
-		(long)line,
-		low_get_f_name(backlog[e].instruction + F_OFFSET, backlog[e].program));
+	fprintf(stderr,"(%ld)", (long)backlog[e].arg);
       }
+      fprintf(stderr," %d, %d", backlog[e].stack, backlog[e].mark_stack);
     }
   }while(e!=backlogp);
 }
diff --git a/src/interpreter.h b/src/interpreter.h
index e51934ad86940e57f4a72a35bc9eba0f5bf7bab4..eeaa672761fb449e86f60f6034f4e1a26c19ee46 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -79,6 +79,8 @@ static int eval_instruction(unsigned char *pc)
       add_ref(Pike_fp->context.prog);
       backlog[backlogp].instruction=instr;
       backlog[backlogp].pc=pc;
+      backlog[backlogp].stack = sp - evaluator_stack;
+      backlog[backlogp].mark_stack = mark_sp - mark_stack;
 #ifdef _REENTRANT
       backlog[backlogp].thread_id=thread_id;
 #endif