diff --git a/src/program.c b/src/program.c
index 1404abcd44425c044a53b0231c6428557e9bab96..9e6047a5f12d5b1c814f9c597a4330ebc24f867e 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.72 1998/04/08 01:32:35 hubbe Exp $");
+RCSID("$Id: program.c,v 1.73 1998/04/09 02:49:48 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -644,7 +644,7 @@ static void toss_compilation_resources(void)
   
 }
 
-static int sizeof_variable(int run_time_type)
+int sizeof_variable(int run_time_type)
 {
   switch(run_time_type)
   {
@@ -2044,8 +2044,9 @@ struct program *compile(struct pike_string *prog)
   return p;
 }
 
-void add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags)
+int add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags)
 {
+  int ret;
   struct pike_string *name_tmp,*type_tmp;
   union idptr tmp;
   
@@ -2055,20 +2056,21 @@ void add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags)
   if(cfun)
   {
     tmp.c_fun=cfun;
-    define_function(name_tmp,
-		    type_tmp,
-		    flags,
-		    IDENTIFIER_C_FUNCTION,
-		    &tmp);
+    ret=define_function(name_tmp,
+			type_tmp,
+			flags,
+			IDENTIFIER_C_FUNCTION,
+			&tmp);
   }else{
-    define_function(name_tmp,
-		    type_tmp,
-		    flags,
-		    IDENTIFIER_C_FUNCTION,
-		    0);
+    ret=define_function(name_tmp,
+			type_tmp,
+			flags,
+			IDENTIFIER_C_FUNCTION,
+			0);
   }
   free_string(name_tmp);
   free_string(type_tmp);
+  return ret;
 }
 
 #ifdef DEBUG
diff --git a/src/program.h b/src/program.h
index 6dffebc1178c2e7b9b0c7fcc52fb7d3a72f9d0d6..eb3be4ccd2e0ab70446a5622cd5a5ed387be435f 100644
--- a/src/program.h
+++ b/src/program.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: program.h,v 1.37 1998/04/08 01:00:58 hubbe Exp $
+ * $Id: program.h,v 1.38 1998/04/09 02:49:48 hubbe Exp $
  */
 #ifndef PROGRAM_H
 #define PROGRAM_H
@@ -250,6 +250,7 @@ void low_start_new_program(struct program *p,
 void start_new_program(void);
 void really_free_program(struct program *p);
 void dump_program_desc(struct program *p);
+int sizeof_variable(int run_time_type);
 void check_program(struct program *p);
 struct program *end_first_pass(int finish);
 struct program *debug_end_program(void);
@@ -338,7 +339,7 @@ void store_linenumber(INT32 current_line, struct pike_string *current_file);
 char *get_line(unsigned char *pc,struct program *prog,INT32 *linep);
 void my_yyerror(char *fmt,...)  ATTRIBUTE((format(printf,1,2)));
 struct program *compile(struct pike_string *prog);
-void add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags);
+int add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags);
 void check_all_programs(void);
 void cleanup_program(void);
 void gc_mark_program_as_referenced(struct program *p);