diff --git a/src/pike_types.c b/src/pike_types.c
index 1943a43b091eead9118c2f550f03b966ddc2d72f..a3efc7c2ab1ae97630af855278c210d38a0aad4f 100644
--- a/src/pike_types.c
+++ b/src/pike_types.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: pike_types.c,v 1.289 2007/04/17 10:47:14 grubba Exp $
+|| $Id: pike_types.c,v 1.290 2007/04/17 13:07:26 grubba Exp $
 */
 
 #include "global.h"
@@ -650,6 +650,7 @@ void debug_push_int_type(INT_TYPE min, INT_TYPE max)
 #if SIZEOF_INT_TYPE > 4
 /* a bit kludgy: should maybe really allow 64 bit INT_TYPE */
 /* see also extract_type_int */
+
   if (min<MIN_INT32) min=MIN_INT32;
   else if (min>MAX_INT32) min=MAX_INT32;
   if (max<MIN_INT32) max=MIN_INT32;
@@ -670,7 +671,7 @@ void debug_push_int_type(INT_TYPE min, INT_TYPE max)
 	       " min:%"PRINTPIKEINT"d, max:%"PRINTPIKEINT"d.\n",
 	       min, max);
 #endif /* PIKE_DEBUG */
-  
+
   *(++Pike_compiler->type_stackp) = mk_type(T_INT,
 					    (void *)(ptrdiff_t)min,
 					    (void *)(ptrdiff_t)max, 0);
@@ -6660,8 +6661,8 @@ static void low_make_pike_type(unsigned char *type_string,
 
   case T_INT:
     {
-      int min = extract_type_int((char *)type_string+1);
-      int max = extract_type_int((char *)type_string+5);
+      INT32 min = extract_type_int((char *)type_string+1);
+      INT32 max = extract_type_int((char *)type_string+5);
       
       *cont = type_string + 9;	/* 2*sizeof(INT32) + 1 */
       push_int_type(min, max);
@@ -6670,7 +6671,7 @@ static void low_make_pike_type(unsigned char *type_string,
 
   case PIKE_T_INT_UNTYPED:
     *cont = type_string + 1;
-    push_int_type(0x80000000, 0x7fffffff);
+    push_int_type((INT32)-0x80000000, 0x7fffffff);
     break;
 
   case T_OBJECT: