diff --git a/src/errors.h b/src/errors.h
index 30a62a19f1d68b551a05b8d351e796efd895eb6e..b08408173b582e48c281acb958ff377d04a3b220 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -23,6 +23,7 @@ struct PIKE_CONCAT(NAME,_error_struct) { \
   add_integer_constant("is_" #NAME "_error",1,0); \
   DECL \
   PIKE_CONCAT(NAME,_error_program)=end_program(); \
+  add_program_constant( #NAME "_error",PIKE_CONCAT(NAME,_error_program),0); \
 }while(0);
 
 #define ERR_VAR(TYPE,CTYPE,RUNTYPE,NAME2) \
diff --git a/src/main.c b/src/main.c
index f5066fdbe9b6530be9c0d572d80ca5c17e8a7079..0745ece47d626a392818a1f3eaa23e6cdb0efb4b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: main.c,v 1.74 1999/08/11 22:13:21 hubbe Exp $");
+RCSID("$Id: main.c,v 1.75 1999/08/14 09:03:35 hubbe Exp $");
 #include "fdlib.h"
 #include "backend.h"
 #include "module.h"
@@ -440,7 +440,6 @@ int dbm_main(int argc, char **argv)
   init_lex();
   init_program();
   init_object();
-  init_error();
 
   low_th_init();
 
@@ -518,6 +517,7 @@ void do_exit(int num) ATTRIBUTE((noreturn))
 
 void low_init_main(void)
 {
+  init_error();
   init_pike_security();
   th_init();
   init_operators();