diff --git a/src/opcodes.c b/src/opcodes.c
index 0e30d567690ae4a81e1ec5ea45537511a43f04e2..f27246780e7ee970aab1bc2e70b216dd97299967 100644
--- a/src/opcodes.c
+++ b/src/opcodes.c
@@ -26,7 +26,7 @@
 #include "bignum.h"
 #include "operators.h"
 
-RCSID("$Id: opcodes.c,v 1.87 2000/08/15 11:38:23 grubba Exp $");
+RCSID("$Id: opcodes.c,v 1.88 2000/08/15 11:49:57 grubba Exp $");
 
 void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind)
 {
@@ -976,12 +976,12 @@ static INLINE FLOAT_TYPE low_parse_IEEE_float(char *b, int sz)
 
 /* Avoid some warnings about loss of precision */
 #ifdef __ECL
-static inline int TO_INT32(ptrdiff_t x)
+static inline INT32 TO_INT32(ptrdiff_t x)
 {
-  return DO_NOT_WARN((int)x);
+  return DO_NOT_WARN((INT32)x);
 }
 #else /* !__ECL */
-#define TO_INT32(x)	((int)x)
+#define TO_INT32(x)	((INT32)x)
 #endif /* __ECL */
 
 #define MK_VERY_LOW_SSCANF(INPUT_SHIFT, MATCH_SHIFT)			 \