diff --git a/src/operators.c b/src/operators.c
index 2c897fb5a215dec82774ef15a26da9c478a351ef..62b8837a54deb7268cf4987d89ad63717f6e683e 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -6,7 +6,7 @@
 /**/
 #include "global.h"
 #include <math.h>
-RCSID("$Id: operators.c,v 1.83 1999/12/27 18:30:54 grubba Exp $");
+RCSID("$Id: operators.c,v 1.84 1999/12/29 17:55:05 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -2468,7 +2468,7 @@ void init_operators(void)
 		 tFuncV(tOr3(tObj,tProgram,tFunction) tMix,tMix,tInt01),
 		 tFuncV(tMix tOr3(tObj,tProgram,tFunction),tMix,tInt01),
 		 tFuncV(tType tType,tOr3(tProgram,tFunction,tType),tInt01)),
-	    OPT_TRY_OPTIMIZE,optimize_eq,generate_comparison);
+	    OPT_WEAK_TYPE|OPT_TRY_OPTIMIZE,optimize_eq,generate_comparison);
   /* function(mixed...:int) */
   ADD_EFUN2("`!=",f_ne,
 	    tOr5(tFuncV(tOr(tInt,tFloat) tOr(tInt,tFloat),
@@ -2478,7 +2478,7 @@ void init_operators(void)
 		 tFuncV(tOr3(tObj,tProgram,tFunction) tMix,tMix,tInt01),
 		 tFuncV(tMix tOr3(tObj,tProgram,tFunction),tMix,tInt01),
 		 tFuncV(tType tType,tOr3(tProgram,tFunction,tType),tInt01)),
-	    OPT_TRY_OPTIMIZE,0,generate_comparison);
+	    OPT_WEAK_TYPE|OPT_TRY_OPTIMIZE,0,generate_comparison);
   /* function(mixed:int) */
   ADD_EFUN2("`!",f_not,tFuncV(tMix,tVoid,tInt01),
 	    OPT_TRY_OPTIMIZE,optimize_not,generate_not);