diff --git a/src/object.c b/src/object.c
index 953a71af29ce0703f4579e68fea5b7a0b27e6983..d2d955e3d84309c1f69e8ffe99098926c2d0e41f 100644
--- a/src/object.c
+++ b/src/object.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: object.c,v 1.43 1998/04/06 04:28:31 hubbe Exp $");
+RCSID("$Id: object.c,v 1.44 1998/04/09 02:42:31 hubbe Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
@@ -99,7 +99,12 @@ static void call_c_initializers(struct object *o)
 	union anything *u;
 	u=(union anything *)(frame.current_storage +
 			     frame.context.prog->identifiers[d].func.offset);
-	MEMSET((char *)u,0,sizeof(*u));
+	switch(frame.context.prog->identifiers[d].run_time_type)
+	{
+	  case T_INT: u->integer=0; break;
+	  case T_FLOAT: u->float_number=0.0; break;
+	  default: u->refs=0; break;
+	}
       }
     }