diff --git a/src/debug.h b/src/debug.h
index fab056907e12275abfa8ec15a31155f277cd151e..3f666eaf14f9e63cd3f987170dbc034ca157253b 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -1,6 +1,6 @@
 #ifndef DEBUG_H
 #define DEBUG_H
-#include "debug.h"
+#include "types.h"
 /* Prototypes begin here */
 struct marker;
 struct marker_chunk;
diff --git a/src/svalue.c b/src/svalue.c
index b6045011819988235d4f736504bbd87a09180215..04911e133c48f15a6dfe7336df0b61133e91e950 100644
--- a/src/svalue.c
+++ b/src/svalue.c
@@ -231,7 +231,7 @@ void assign_to_short_svalue(union anything *u,
     }
   }else if(IS_ZERO(s)){
     free_short_svalue(u,type);
-    u->integer=0;
+    MEMSET((char *)u,0,sizeof(union anything));
   }else{
     error("Wrong type in assignment.\n");
   }
@@ -250,7 +250,7 @@ void assign_to_short_svalue_no_free(union anything *u,
     *u = tmp = s->u;
     if(type <= MAX_REF_TYPE) tmp.refs[0]++;
   }else if(IS_ZERO(s)){
-    u->integer=0;
+    MEMSET((char *)u,0,sizeof(union anything));
   }else{
     error("Wrong type in assignment.\n");
   }