diff --git a/src/cpp.c b/src/cpp.c
index e641880888fe829d6e521b5e70c162420b203b8d..9b718f1cc4cf0fc0e4ff04b69fccb6007bf9c8f1 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: cpp.c,v 1.67 2000/08/08 19:44:06 grubba Exp $
+ * $Id: cpp.c,v 1.68 2000/08/09 13:25:10 grubba Exp $
  */
 #include "global.h"
 #include "stralloc.h"
@@ -480,7 +480,7 @@ while(1)					\
   SKIPSPACE();					\
   if(data[pos]=='/')				\
   {						\
-    INT32 tmp;					\
+    ptrdiff_t tmp;				\
     switch(data[pos+1])				\
     {						\
     case '/':					\
diff --git a/src/modules/Image/encodings/png.c b/src/modules/Image/encodings/png.c
index 011fd2b4f2d85bb557026f387adc538bb96bdc75..907db0835ac9dd2b043a47b8bd71baa0d15cc5d3 100644
--- a/src/modules/Image/encodings/png.c
+++ b/src/modules/Image/encodings/png.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id: png.c,v 1.35 2000/08/04 10:51:49 grubba Exp $");
+RCSID("$Id: png.c,v 1.36 2000/08/09 12:55:13 grubba Exp $");
 
 #include "image_machine.h"
 
@@ -50,10 +50,10 @@ static struct pike_string *param_background;
 static INLINE void push_nbo_32bit(size_t x)
 {
    char buf[4];
-   buf[0]=(char)(x>>24);
-   buf[1]=(char)(x>>16);
-   buf[2]=(char)(x>>8);
-   buf[3]=(char)(x);
+   buf[0] = DO_NOT_WARN((char)(x>>24));
+   buf[1] = DO_NOT_WARN((char)(x>>16));
+   buf[2] = DO_NOT_WARN((char)(x>>8));
+   buf[3] = DO_NOT_WARN((char)(x));
    push_string(make_shared_binary_string(buf,4));
 }
 
@@ -533,7 +533,7 @@ static int _png_write_rgb(rgb_group *w1,
    size_t n0=n;
 
    unsigned long x;
-   int mz;
+   ptrdiff_t mz;
 
    /* write stuff to d1 */
 
diff --git a/src/modules/Image/encodings/tga.c b/src/modules/Image/encodings/tga.c
index a23ee7f89019bf47304994d200fd0fd3a8994331..423f62d5a5efa1436f0ee2cf7428340344d57c2a 100644
--- a/src/modules/Image/encodings/tga.c
+++ b/src/modules/Image/encodings/tga.c
@@ -1,6 +1,6 @@
 
 /*
- * $Id: tga.c,v 1.18 2000/08/08 10:54:02 grubba Exp $
+ * $Id: tga.c,v 1.19 2000/08/09 13:03:49 grubba Exp $
  *
  *  Targa codec for pike. Based on the tga plugin for gimp.
  *
@@ -81,7 +81,7 @@
 #include "module_magic.h"
 
 
-RCSID("$Id: tga.c,v 1.18 2000/08/08 10:54:02 grubba Exp $");
+RCSID("$Id: tga.c,v 1.19 2000/08/09 13:03:49 grubba Exp $");
 
 #ifndef MIN
 # define MIN(X,Y) ((X)<(Y)?(X):(Y))
@@ -210,20 +210,20 @@ static struct image_alpha load_image(struct pike_string *str)
   return ReadImage (&buffer, &hdr);
 }
 
-static int std_fread (unsigned char *buf,
-                      int datasize, int nelems, struct buffer *fp)
+static ptrdiff_t std_fread (unsigned char *buf,
+			    size_t datasize, size_t nelems, struct buffer *fp)
 {
-  size_t amnt = MIN((nelems*datasize),((int)fp->len));
+  size_t amnt = MIN((nelems*datasize), fp->len);
   MEMCPY(buf, fp->str, amnt);
   fp->len -= amnt;
   fp->str += amnt;
   return amnt / datasize;
 }
 
-static int std_fwrite (unsigned char *buf,
-                       int datasize, int nelems, struct buffer *fp)
+static ptrdiff_t std_fwrite (unsigned char *buf,
+			     size_t datasize, size_t nelems, struct buffer *fp)
 {
-  size_t amnt = MIN((nelems*datasize),(int)fp->len);
+  size_t amnt = MIN((nelems*datasize), fp->len);
   MEMCPY(fp->str, buf, amnt);
   fp->len -= amnt;
   fp->str += amnt;
@@ -255,17 +255,18 @@ static int std_fputc( int c, struct buffer *fp )
 
 /* Decode a bufferful of file. */
 
-static int rle_fread (guchar *buf, int datasize, int nelems, struct buffer *fp)
+static size_t rle_fread (guchar *buf, size_t datasize, size_t nelems,
+			 struct buffer *fp)
 {
   /* If we want to call this function more than once per image, change the
      variables below to be static..  */
   guchar *statebuf = 0;
-  int statelen = 0;
-  int laststate = 0;
+  ptrdiff_t statelen = 0;
+  ptrdiff_t laststate = 0;
 
   /* end static variables.. */
-  int j, k;
-  int buflen, count, bytes;
+  ptrdiff_t j, k;
+  ptrdiff_t buflen, count, bytes;
   guchar *p;
 
   /* Scale the buffer length. */
@@ -359,11 +360,11 @@ static int rle_fread (guchar *buf, int datasize, int nelems, struct buffer *fp)
 */
 
 /* RunLength Encode a bufferful of file. */
-static int rle_fwrite (guchar *buf, int datasize, int nelems,
+static int rle_fwrite (guchar *buf, size_t datasize, size_t nelems,
                        struct buffer *fp)
 {
   /* Now runlength-encode the whole buffer. */
-  int count, j, buflen;
+  ptrdiff_t count, j, buflen;
   guchar *begin;
 
   /* Scale the buffer length. */
@@ -459,9 +460,9 @@ static int getbits( unsigned char **pointer, int numbits, int *bittoffset,
   return (result * scale) / scale2;
 }
 
-static void swap_every_other_byte( unsigned char *p, int nelems )
+static void swap_every_other_byte( unsigned char *p, size_t nelems )
 {
-  int i;
+  size_t i;
   for( i = 0; i<nelems; i+=2 )
   {
     unsigned char tmp = p[i];
@@ -489,7 +490,7 @@ static struct image_alpha ReadImage(struct buffer *fp, struct tga_header *hdr)
   unsigned char *cmap=NULL, *data;
   int itype=0;
   int really_no_alpha = 0;
-  int (*myfread)(unsigned char *, int, int, struct buffer *);
+  ptrdiff_t (*myfread)(unsigned char *, int, int, struct buffer *);
 
   /* Find out whether the image is horizontally or vertically reversed.
      The GIMP likes things left-to-right, top-to-bottom. */
@@ -615,7 +616,7 @@ static struct image_alpha ReadImage(struct buffer *fp, struct tga_header *hdr)
   npels = width*height;
   bypp = ROUNDUP_DIVIDE(bpp,8);
  /* Suck in the data. */
-  pels = (*myfread)(data+read_so_far,bypp,npels,fp);
+  pels = myfread(data+read_so_far,bypp,npels,fp);
   read_so_far += pels;
   npels -= pels;
   if(npels)
@@ -748,7 +749,8 @@ static struct buffer save_tga(struct image *img, struct image *alpha,
   int pelbytes, bsize;
   int transparent, status;
   struct tga_header hdr;
-  int (*myfwrite)(unsigned char *, int, int, struct buffer *);
+  ptrdiff_t (*myfwrite)(unsigned char *, ptrdiff_t, ptrdiff_t,
+			struct buffer *);
 
   unsigned char *data;
 
@@ -857,7 +859,7 @@ static struct buffer save_tga(struct image *img, struct image *alpha,
           *(p++) = (is++)->r;
         }
     }
-    if ((*myfwrite)((void *)data, pixsize,datalen/pixsize, fp) !=
+    if (myfwrite((void *)data, pixsize,datalen/pixsize, fp) !=
 	datalen/pixsize)
     {
       free(data);
diff --git a/src/modules/_Crypto/crypto.c b/src/modules/_Crypto/crypto.c
index 966fa37f0172957b2f664214fd23c3fe500834b1..00cb908a015af709b11081f0641bd55a729c90f9 100644
--- a/src/modules/_Crypto/crypto.c
+++ b/src/modules/_Crypto/crypto.c
@@ -1,5 +1,5 @@
 /*
- * $Id: crypto.c,v 1.34 2000/08/01 19:48:34 sigge Exp $
+ * $Id: crypto.c,v 1.35 2000/08/09 13:17:17 grubba Exp $
  *
  * A pike module for getting access to some common cryptos.
  *
@@ -42,8 +42,8 @@
 
 struct pike_crypto {
   struct object *object;
-  INT32 block_size;
-  INT32 backlog_len;
+  ptrdiff_t block_size;
+  ptrdiff_t backlog_len;
   unsigned char *backlog;
 };
 
@@ -312,9 +312,9 @@ static void f_set_decrypt_key(INT32 args)
 static void f_crypto_crypt(INT32 args)
 {
   unsigned char *result;
-  INT32 roffset = 0;
-  INT32 soffset = 0;
-  INT32 len;
+  ptrdiff_t roffset = 0;
+  ptrdiff_t soffset = 0;
+  ptrdiff_t len;
 
   if (args != 1) {
     error("Wrong number of arguments to crypto->crypt()\n");
diff --git a/src/modules/_Crypto/des.c b/src/modules/_Crypto/des.c
index 5f859cc1b4bb40fe72dbd0379e5f7e6d3208e1fa..c0ad3e2c3348da3e1f2a0fe03bc19bddc56ffbd3 100644
--- a/src/modules/_Crypto/des.c
+++ b/src/modules/_Crypto/des.c
@@ -1,5 +1,5 @@
 /*
- * $Id: des.c,v 1.16 2000/07/28 07:15:16 hubbe Exp $
+ * $Id: des.c,v 1.17 2000/08/09 13:15:09 grubba Exp $
  *
  * A pike module for getting access to some common cryptos.
  *
@@ -135,9 +135,9 @@ static void f_set_decrypt_key(INT32 args)
 /* string encrypt(string) */
 static void f_crypt_block(INT32 args)
 {
-  unsigned len;
+  size_t len;
   struct pike_string *s;
-  unsigned INT32 i;
+  size_t i;
   
   if (args != 1) {
     error("Wrong number of arguments to des->crypt_block()\n");
diff --git a/src/modules/_Crypto/idea.c b/src/modules/_Crypto/idea.c
index e72c3006358c9a1fcef7d2d4d4f0bd13b95f6c01..6781bfdbd6884fc9ec1446adc78ef45f0be9bec1 100644
--- a/src/modules/_Crypto/idea.c
+++ b/src/modules/_Crypto/idea.c
@@ -1,5 +1,5 @@
 /*
- * $Id: idea.c,v 1.14 2000/07/28 07:15:16 hubbe Exp $
+ * $Id: idea.c,v 1.15 2000/08/09 13:14:27 grubba Exp $
  *
  * IDEA crypto module for Pike
  *
@@ -110,9 +110,9 @@ static void f_set_decrypt_key(INT32 args)
 /* string crypt_block(string) */
 static void f_crypt_block(INT32 args)
 {
-  int len;
+  ptrdiff_t len;
   struct pike_string *s;
-  INT32 i;
+  ptrdiff_t i;
   
   if (args != 1) {
     error("Wrong number of arguemnts to idea->crypt()\n");
diff --git a/src/modules/_Crypto/invert.c b/src/modules/_Crypto/invert.c
index 8beb95a77097d4aadc0482a2699303bc6dec9eeb..5b6c464791316a26de6cc13e6daa7da6026aeb9f 100644
--- a/src/modules/_Crypto/invert.c
+++ b/src/modules/_Crypto/invert.c
@@ -1,5 +1,5 @@
 /*
- * $Id: invert.c,v 1.9 2000/07/28 07:15:16 hubbe Exp $
+ * $Id: invert.c,v 1.10 2000/08/09 13:18:58 grubba Exp $
  *
  * INVERT crypto module for Pike
  *
@@ -93,8 +93,8 @@ static void f_set_key(INT32 args)
 static void f_crypt_block(INT32 args)
 {
   char *buffer;
-  int i;
-  int len;
+  ptrdiff_t i;
+  ptrdiff_t len;
 
   if (args != 1) {
     error("Wrong number of arguments to invert->crypt_block()\n");
diff --git a/src/modules/_Crypto/md2.c b/src/modules/_Crypto/md2.c
index d1ebfc5a3b10c87e7c3cb99d3a9416f11729d310..c3c074a1bc1ebca722ec9ecb55f341e2826eb94d 100644
--- a/src/modules/_Crypto/md2.c
+++ b/src/modules/_Crypto/md2.c
@@ -1,5 +1,5 @@
 /*
- * $Id: md2.c,v 1.8 2000/08/01 19:48:35 sigge Exp $
+ * $Id: md2.c,v 1.9 2000/08/09 13:20:46 grubba Exp $
  *
  * A pike module for MD2 hashing.
  *
@@ -22,6 +22,8 @@
 
 #include <md2.h>
 
+#include "crypto.h"
+
 /* THIS MUST BE INCLUDED LAST */
 #include "module_magic.h"
 
@@ -59,7 +61,8 @@ static void f_update(INT32 args)
   struct pike_string *s;
   get_all_args("_Crypto.md2->update", args, "%S", &s);
 
-  md2_update(THIS, (unsigned INT8 *) s->str, s->len);
+  md2_update(THIS, (unsigned INT8 *) s->str,
+	     DO_NOT_WARN(s->len));
   pop_n_elems(args);
   push_object(this_object());
 }
diff --git a/src/modules/_Crypto/md5.c b/src/modules/_Crypto/md5.c
index fa44e6d73e44ec9ba149e81cb27b61359c0ed390..38f1fd1951dbfe27e798cdb9012f99ac389c7410 100644
--- a/src/modules/_Crypto/md5.c
+++ b/src/modules/_Crypto/md5.c
@@ -1,5 +1,5 @@
 /*
- * $Id: md5.c,v 1.13 2000/07/28 07:15:16 hubbe Exp $
+ * $Id: md5.c,v 1.14 2000/08/09 13:21:24 grubba Exp $
  *
  * A pike module for getting access to some common cryptos.
  *
@@ -24,6 +24,8 @@
 
 #include <md5.h>
 
+#include "crypto.h"
+
 /* THIS MUST BE INCLUDED LAST */
 #include "module_magic.h"
 
@@ -61,7 +63,8 @@ static void f_update(INT32 args)
   struct pike_string *s;
   get_all_args("_Crypto.md5->update", args, "%S", &s);
 
-  md5_update(THIS, (unsigned INT8 *) s->str, s->len);
+  md5_update(THIS, (unsigned INT8 *) s->str,
+	     DO_NOT_WARN(s->len));
   pop_n_elems(args);
   push_object(this_object());
 }
diff --git a/src/modules/_Crypto/nt.c b/src/modules/_Crypto/nt.c
index 270a25c5bf6022004e61fc8db97ca5df77bef5bd..33312ab9e2202d84234a4b1d6e584af8468e8b1a 100644
--- a/src/modules/_Crypto/nt.c
+++ b/src/modules/_Crypto/nt.c
@@ -1,5 +1,5 @@
 /*
- * $Id: nt.c,v 1.3 2000/07/28 07:15:16 hubbe Exp $
+ * $Id: nt.c,v 1.4 2000/08/09 13:22:06 grubba Exp $
  *
  * NT crypto stuff for Pike
  */
@@ -54,7 +54,7 @@ static void f_CryptGenRandom(INT32 args)
 {
   struct cryptcontext_storage *c = THIS_CRYPTCONTEXT;
   struct pike_string *str = NULL, *res;
-  INT32 siz;
+  ptrdiff_t siz;
 
   get_all_args("CryptGenRandom()", args, (args>1? "%i%S":"%i"), &siz, &str);
 
diff --git a/src/modules/_Crypto/sha.c b/src/modules/_Crypto/sha.c
index ddf3a1f0f5a8f126e35e8985d342d784a80a4143..4133f7707f937393bfad0fff1b37f0607cc6d40a 100644
--- a/src/modules/_Crypto/sha.c
+++ b/src/modules/_Crypto/sha.c
@@ -1,4 +1,4 @@
-/* $Id: sha.c,v 1.16 2000/07/28 07:15:16 hubbe Exp $
+/* $Id: sha.c,v 1.17 2000/08/09 13:19:44 grubba Exp $
  *
  * Written by Niels M�ller
  */
@@ -16,7 +16,7 @@
 #include "module_support.h"
 #include "las.h"
 
-RCSID("$Id: sha.c,v 1.16 2000/07/28 07:15:16 hubbe Exp $");
+RCSID("$Id: sha.c,v 1.17 2000/08/09 13:19:44 grubba Exp $");
 
 #include <sha.h>
 
@@ -57,7 +57,8 @@ static void f_update(INT32 args)
   struct pike_string *s;
   get_all_args("_Crypto.sha->update", args, "%S", &s);
 
-  sha_update(THIS, (unsigned INT8 *) s->str, s->len);
+  sha_update(THIS, (unsigned INT8 *) s->str,
+	     DO_NOT_WARN(s->len));
   pop_n_elems(args);
   push_object(this_object());
 }
diff --git a/src/modules/spider/spider.c b/src/modules/spider/spider.c
index 0f1e3924d7ee6ba2e4234266ebf0220713e7f176..8b8d217ca041ad146f891f10929d9a580f82746e 100644
--- a/src/modules/spider/spider.c
+++ b/src/modules/spider/spider.c
@@ -43,7 +43,7 @@
 #include "threads.h"
 #include "operators.h"
 
-RCSID("$Id: spider.c,v 1.94 2000/07/28 07:15:49 hubbe Exp $");
+RCSID("$Id: spider.c,v 1.95 2000/08/09 12:41:37 grubba Exp $");
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
@@ -180,7 +180,7 @@ void f_parse_accessed_database(INT32 args)
 
   for(i = 0; i < arg->size; i++)
   {
-    int j=0,k=0;
+    ptrdiff_t j=0,k=0;
     char *s=0;
     s=(char *)(ITEM(arg)[i].u.string->str);
     k=(ITEM(arg)[i].u.string->len);
@@ -191,7 +191,7 @@ void f_parse_accessed_database(INT32 args)
       k=atoi(s+j);
       if(k>cnum)
 	cnum=k;
-      push_int(k);
+      push_int(DO_NOT_WARN(k));
       mapping_insert(m, sp-2, sp-1);
       pop_n_elems(2);
     }
@@ -331,11 +331,11 @@ void f_set_start_quote(INT32 args)
 #define STARTQUOTE(C) do{PUSH();j=i+1;inquote = 1;endquote=(C);}while(0)
 #define ENDQUOTE() do{PUSH();j++;inquote=0;endquote=0;}while(0)
 
-int extract_word(char *s, int i, int len, int is_SSI_tag)
+ptrdiff_t extract_word(char *s, ptrdiff_t i, ptrdiff_t len, int is_SSI_tag)
 {
   int inquote = 0;
   char endquote = 0;
-  int j;      /* Start character for this word.. */
+  ptrdiff_t j;      /* Start character for this word.. */
   int strs = 0;
 
   SKIP_SPACE();
@@ -404,9 +404,9 @@ done:
 #undef SKIP_SPACE
 
 
-int push_parsed_tag(char *s,int len)
+ptrdiff_t push_parsed_tag(char *s, ptrdiff_t len)
 {
-  int i=0;
+  ptrdiff_t i=0;
   struct svalue *oldsp;
   int is_SSI_tag;
 
@@ -419,7 +419,7 @@ int push_parsed_tag(char *s,int len)
 
   while (i<len && s[i]!='>')
   {
-    int oldi;
+    ptrdiff_t oldi;
     oldi = i;
     i = extract_word(s, i, len, is_SSI_tag);
     f_lower_case(1);            /* Since SGML wants us to... */
@@ -438,13 +438,13 @@ int push_parsed_tag(char *s,int len)
     }
     if(oldi == i) break;
   }
-  f_aggregate_mapping(sp-oldsp);
+  f_aggregate_mapping(DO_NOT_WARN(sp - oldsp));
   if(i<len) i++;
 
   return i;
 }
 
-INLINE int tagsequal(char *s, char *t, int len, char *end)
+INLINE int tagsequal(char *s, char *t, ptrdiff_t len, char *end)
 {
   if(s+len >= end)  return 0;
 
@@ -463,11 +463,12 @@ INLINE int tagsequal(char *s, char *t, int len, char *end)
   }
 }
 
-int find_endtag(struct pike_string *tag, char *s, int len, int *aftertag)
+ptrdiff_t find_endtag(struct pike_string *tag, char *s, ptrdiff_t len,
+		      ptrdiff_t *aftertag)
 {
-  int num=1;
+  ptrdiff_t num=1;
 
-  int i,j;
+  ptrdiff_t i,j;
 
   for (i=j=0; i < len; i++)
   {
@@ -501,7 +502,7 @@ void do_html_parse(struct pike_string *ss,
 		   int *strings,int recurse_left,
 		   struct array *extra_args)
 {
-  int i,j,k,l,m,len,last;
+  ptrdiff_t i,j,k,l,m,len,last;
   char *s;
   struct svalue sval1,sval2;
   struct pike_string *ss2;
@@ -527,7 +528,7 @@ void do_html_parse(struct pike_string *ss,
   {
     if (s[i]=='<')
     {
-      int n;
+      ptrdiff_t n;
       /* skip all spaces */
       i++;
       for (n=i;n<len && ISSPACE(((unsigned char *)s)[n]); n++);
@@ -781,7 +782,7 @@ void do_html_parse_lines(struct pike_string *ss,
 			 struct array *extra_args,
 			 int line)
 {
-  int i,j,k,l,m,len,last;
+  ptrdiff_t i,j,k,l,m,len,last;
   char *s;
   struct svalue sval1,sval2;
   struct pike_string *ss2;
diff --git a/src/modules/spider/stardate.c b/src/modules/spider/stardate.c
index 3816f9ae9137f7b41d233f90e409a370f8a5fd29..a5200d2edc97827e8fa38015a7ccc0a77108c9e5 100644
--- a/src/modules/spider/stardate.c
+++ b/src/modules/spider/stardate.c
@@ -1,5 +1,5 @@
 /*
- * $Id: stardate.c,v 1.9 2000/07/28 07:15:49 hubbe Exp $
+ * $Id: stardate.c,v 1.10 2000/08/09 12:34:46 grubba Exp $
  */
 
 #include "global.h"
@@ -17,7 +17,7 @@
 #include "builtin_functions.h"
 #include "error.h"
 
-RCSID("$Id: stardate.c,v 1.9 2000/07/28 07:15:49 hubbe Exp $");
+RCSID("$Id: stardate.c,v 1.10 2000/08/09 12:34:46 grubba Exp $");
 
 #ifdef HAVE_SYS_TIME_H 
 #include <sys/time.h>
@@ -74,8 +74,8 @@ double julian_day (int month, int day, int year)
   }
   
   /* fudge for year and month */
-  c = (int) (365.25 * loc_year) - 694025;
-  d = (int) (30.6001 * (loc_month + 1));
+  c = DO_NOT_WARN((int) (365.25 * loc_year)) - 694025;
+  d = DO_NOT_WARN((int) (30.6001 * (loc_month + 1)));
   
   return (double) (b + c + d + day) - .5;
 }
@@ -124,7 +124,8 @@ void f_stardate (INT32 args)
   if (precis < 1) precis = 1;
   if (precis > MAXPRECISION) precis = MAXPRECISION;
   tm = gmtime (&t);
-  jd = julian_day (tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900);
+  jd = DO_NOT_WARN((int)julian_day(tm->tm_mon + 1, tm->tm_mday,
+				   tm->tm_year + 1900));
 
   gmt = (double) tm->tm_hour +
     tm->tm_min / 60.0 +
diff --git a/src/modules/spider/xml.c b/src/modules/spider/xml.c
index 0e797455cd9f4398621d3e206c5417c32a7d871b..3765bb3eaf43f40f277ef5ac8c4cd5c4b1ed1783 100644
--- a/src/modules/spider/xml.c
+++ b/src/modules/spider/xml.c
@@ -32,8 +32,8 @@ struct xmlinput
 {
   struct xmlinput *next;
   PCHARP datap;
-  INT32 len;
-  INT32 pos;
+  ptrdiff_t len;
+  ptrdiff_t pos;
   struct pike_string *to_free;
 };
 
@@ -1860,7 +1860,7 @@ static int really_low_parse_dtd(struct xmldata *data)
 		    if(sp<save)
 		      fatal("Stack underflow.\n");
 #endif
-		    f_aggregate(sp-save);
+		    f_aggregate(DO_NOT_WARN(sp - save));
 		    SKIPSPACE();
 		    save=sp;
 		    switch(PEEK(0))
@@ -1994,7 +1994,7 @@ static int really_low_parse_dtd(struct xmldata *data)
 		    if(sp<save)
 		      fatal("Stack underflow.\n");
 #endif
-		    f_aggregate(sp-save);
+		    f_aggregate(DO_NOT_WARN(sp - save));
 		    f_aggregate(2);
 		    assign_lvalue(sp-3, sp-1);
 		    pop_n_elems(2);
@@ -2172,7 +2172,7 @@ static int low_parse_dtd(struct xmldata *data)
 #ifdef VERBOSE_XMLDEBUG
   fprintf(stderr,"Exiting low_parse_dtd %p %p\n",sp,save_sp);
 #endif
-  f_aggregate(sp-save_sp);
+  f_aggregate(DO_NOT_WARN(sp - save_sp));
 #ifdef VERBOSE_XMLDEBUG
   fprintf(stderr,"Exiting low_parse_dtd done\n");
 #endif
@@ -2533,7 +2533,7 @@ static int low_parse_xml(struct xmldata *data,
   if(sp<save_sp)
     fatal("Stack underflow.\n");
 #endif
-  f_aggregate(sp-save_sp);
+  f_aggregate(DO_NOT_WARN(sp - save_sp));
   /* There is now one value on the stack */
   return !!end;
 }
@@ -2811,9 +2811,9 @@ static void autoconvert(INT32 args)
 
 void init_xml(void)
 {
-  INT32 off;
+  ptrdiff_t off;
   start_new_program();
-  off=ADD_STORAGE(struct xmlobj);
+  off = ADD_STORAGE(struct xmlobj);
   map_variable("__entities","mapping",0,
 	       off + OFFSETOF(xmlobj, entities),T_MAPPING);
   map_variable("__attributes","mapping",0,
diff --git a/src/opcodes.c b/src/opcodes.c
index 60b38bc3de3bd60143d9a1e7b0939b30253b8fdc..4666726f10bb687b2378429abf6aae48b664fb74 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.79 2000/08/07 09:44:49 grubba Exp $");
+RCSID("$Id: opcodes.c,v 1.80 2000/08/09 13:38:29 grubba Exp $");
 
 void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind)
 {
@@ -984,7 +984,7 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)(	 \
 			 int *success)					 \
 {									 \
   struct svalue sval;							 \
-  int matches, arg;							 \
+  INT32 matches, arg;							 \
   ptrdiff_t cnt, eye, e;						 \
   int no_assign = 0, field_length = 0, minus_flag = 0;			 \
   struct sscanf_set set;						 \
@@ -1066,7 +1066,7 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)(	 \
 	case '{':							 \
 	{								 \
 	  ONERROR err;							 \
-	  long tmp;							 \
+	  ptrdiff_t tmp;						 \
 	  for(e=cnt+1,tmp=1;tmp;e++)					 \
 	  {								 \
 	    if(e>=match_len)						 \
diff --git a/src/preprocessor.h b/src/preprocessor.h
index ddb691f5829b66a3af80dc52e2f2fad6780abd1c..ae21ed05a3fc7d72c7e52cdedfcbb0c32481b303 100644
--- a/src/preprocessor.h
+++ b/src/preprocessor.h
@@ -1,5 +1,5 @@
 /*
- * $Id: preprocessor.h,v 1.26 2000/08/08 19:53:50 grubba Exp $
+ * $Id: preprocessor.h,v 1.27 2000/08/09 13:27:43 grubba Exp $
  *
  * Preprocessor template.
  * Based on cpp.c 1.45
@@ -181,11 +181,11 @@ static void PUSH_STRING0(p_wchar0 *, ptrdiff_t, struct string_builder *);
 static void PUSH_STRING1(p_wchar1 *, ptrdiff_t, struct string_builder *);
 static void PUSH_STRING2(p_wchar2 *, ptrdiff_t, struct string_builder *);
 
-static INT32 calc_0(struct cpp *,p_wchar0 *,ptrdiff_t,ptrdiff_t);
-static INT32 calc_1(struct cpp *,p_wchar1 *,ptrdiff_t,ptrdiff_t);
-static INT32 calc_2(struct cpp *,p_wchar2 *,ptrdiff_t,ptrdiff_t);
+static ptrdiff_t calc_0(struct cpp *,p_wchar0 *,ptrdiff_t,ptrdiff_t);
+static ptrdiff_t calc_1(struct cpp *,p_wchar1 *,ptrdiff_t,ptrdiff_t);
+static ptrdiff_t calc_2(struct cpp *,p_wchar2 *,ptrdiff_t,ptrdiff_t);
 
-static INT32 calc1(struct cpp *,WCHAR *,ptrdiff_t,ptrdiff_t);
+static ptrdiff_t calc1(struct cpp *,WCHAR *,ptrdiff_t,ptrdiff_t);
 
 /*
  * Functions
@@ -309,7 +309,8 @@ static INLINE ptrdiff_t find_end_parenthesis(struct cpp *this,
   }
 }
 
-static INT32 calcC(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calcC(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   FINDTOK();
 
@@ -402,7 +403,8 @@ static INT32 calcC(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calcB(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calcB(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calcB"); */
 
@@ -418,7 +420,8 @@ static INT32 calcB(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calcA(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calcA(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calcA"); */
 
@@ -454,7 +457,8 @@ static INT32 calcA(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc9(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc9(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc9"); */
 
@@ -485,7 +489,8 @@ static INT32 calc9(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc8(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc8(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc8"); */
 
@@ -519,7 +524,8 @@ static INT32 calc8(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc7b(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc7b(struct cpp *this, WCHAR *data, ptrdiff_t len,
+			ptrdiff_t pos)
 {
   /* DUMPPOS("before calc7b"); */
 
@@ -564,7 +570,8 @@ static INT32 calc7b(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc7(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc7(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc7"); */
 
@@ -597,7 +604,8 @@ static INT32 calc7(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc6(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc6(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc6"); */
 
@@ -615,7 +623,8 @@ static INT32 calc6(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc5(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc5(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc5"); */
 
@@ -632,7 +641,8 @@ static INT32 calc5(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc4(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc4(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc4"); */
 
@@ -649,7 +659,8 @@ static INT32 calc4(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc3(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc3(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   static WCHAR land_[] = { '&', '&' };
 
@@ -675,7 +686,8 @@ static INT32 calc3(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc2(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
+static ptrdiff_t calc2(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   static WCHAR lor_[] = { '|', '|' };
 
@@ -701,7 +713,8 @@ static INT32 calc2(struct cpp *this,WCHAR *data,ptrdiff_t len,ptrdiff_t pos)
   return pos;
 }
 
-static INT32 calc1(struct cpp *this, WCHAR *data, ptrdiff_t len, ptrdiff_t pos)
+static ptrdiff_t calc1(struct cpp *this, WCHAR *data, ptrdiff_t len,
+		       ptrdiff_t pos)
 {
   /* DUMPPOS("before calc1"); */