diff --git a/src/program.c b/src/program.c
index b58a83e98c904dbca73d36245114b7f871b3fc46..70152d3dfc8e5df5674488812093190a0d241e7d 100644
--- a/src/program.c
+++ b/src/program.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: program.c,v 1.88 1998/04/27 19:41:09 grubba Exp $");
+RCSID("$Id: program.c,v 1.89 1998/04/29 00:21:13 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -598,8 +598,11 @@ void low_start_new_program(struct program *p,
   num_parse_error=0;
 
   push_compiler_frame();
+
+#ifdef DEBUG
   if(lex.current_file)
-    store_linenumber(lex.current_line, lex.current_file);
+    store_linenumber(last_pc, lex.current_file);
+#endif
 }
 
 void start_new_program(void)
@@ -2073,7 +2076,9 @@ char *get_line(unsigned char *pc,struct program *prog,INT32 *linep)
     return "Optimizer";
   }
 
+#if 0
   if(prog->id != pid || offset < off)
+#endif
   {
     cnt=prog->linenumbers;
     off=line=0;
@@ -2159,7 +2164,7 @@ struct program *compile(struct pike_string *prog)
   start_new_program();
   compilation_depth=0;
 
-  start_line_numbering();
+/*  start_line_numbering(); */
 
   compiler_pass=1;
   lex.pos=prog->str;