diff --git a/src/svalue.c b/src/svalue.c
index 4fe027eb39775a2ae0f4d99971c1f51c2a738317..7bbcd72d0cf13c374436a7b9919ea570eed5b8f0 100644
--- a/src/svalue.c
+++ b/src/svalue.c
@@ -21,7 +21,7 @@
 #include <ctype.h>
 #include "queue.h"
 
-RCSID("$Id: svalue.c,v 1.31 1998/04/29 02:45:22 hubbe Exp $");
+RCSID("$Id: svalue.c,v 1.32 1998/05/19 20:40:40 hubbe Exp $");
 
 struct svalue dest_ob_zero = { T_INT, 0 };
 
@@ -221,10 +221,10 @@ void assign_svalues_no_free(struct svalue *to,
 #ifdef DEBUG
   if(d_flag)
   {
-    INT32 e,t;
-    for(t=e=0;e<num;e++) t|=1<<from[e].type;
-    if(t & ~type_hint)
-      fatal("Type hint lies!\n");
+    INT32 e;
+    for(e=0;e<num;e++)
+      if(!(type_hint & (1<<from[e].type)))
+	 fatal("Type hint lies (%ld %ld %d)!\n",(long)e,(long)type_hint,from[e].type);
   }
 #endif
   if((type_hint & ((2<<MAX_REF_TYPE)-1)) == 0)