diff --git a/src/backend.cmod b/src/backend.cmod
index ef1ca53864ffb57f3c7f55c94886344b8c818c3f..470801016cd7de92917de5b9327b4b16b731778b 100644
--- a/src/backend.cmod
+++ b/src/backend.cmod
@@ -5,7 +5,7 @@
 */
 
 /*
- * $Id: backend.cmod,v 1.179 2006/02/21 07:07:50 mast Exp $
+ * $Id: backend.cmod,v 1.180 2006/07/05 19:24:16 mast Exp $
  *
  * Backend object.
  */
@@ -2903,7 +2903,7 @@ PIKECLASS Backend
 	    /* FIXME: This could be too late - the error might be
 	     * clobbered by the callbacks we might have called
 	     * above. */
-	    if (!getsockopt (fd, SOL_SOCKET, SO_ERROR, &err, &len)) {
+	    if (!getsockopt (fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len)) {
 	      IF_PD (fprintf (stderr,
 			      "[%d]BACKEND[%d]: POLLERR on %d, error=%d\n",
 			      THR_NO, me->id, fd, err));
@@ -3133,7 +3133,9 @@ PIKECLASS Backend
     if (timeout.tv_sec < 0)
       push_int (0);
     else
-      push_float ((float) timeout.tv_sec + (float) timeout.tv_usec / 1e6);
+      push_float (DO_NOT_WARN ((FLOAT_TYPE)
+			       (DO_NOT_WARN ((double) timeout.tv_sec) +
+				DO_NOT_WARN ((double) timeout.tv_usec) / 1e6)));
   }
 
 #ifndef tObjImpl_THREAD
diff --git a/src/block_alloc.h b/src/block_alloc.h
index 540e2e6882b4556d88e985b0071fef382de81dff..abed3adce79aeb9d3638861aa702731cbf7555d2 100644
--- a/src/block_alloc.h
+++ b/src/block_alloc.h
@@ -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: block_alloc.h,v 1.81 2006/03/10 05:42:53 mast Exp $
+|| $Id: block_alloc.h,v 1.82 2006/07/05 19:24:18 mast Exp $
 */
 
 #undef PRE_INIT_BLOCK
@@ -508,7 +508,7 @@ static INLINE struct DATA *						     \
  PIKE_CONCAT3(just_find_,DATA,_unlocked)(void *ptr,			     \
 					 PIKE_HASH_T hval)		     \
 {									     \
-  struct DATA *p,**pp;							     \
+  struct DATA *p;							     \
   p=PIKE_CONCAT(DATA,_hash_table)[hval];                                     \
   if(!p || p->PTR_HASH_ALLOC_DATA == ptr)				     \
   {                                                                          \
diff --git a/src/builtin.cmod b/src/builtin.cmod
index ea4cada28e34fe016677a0963c7adb5a223b0317..d3769974c513706a7ae7a5cbc8d9028ca83596d7 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -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: builtin.cmod,v 1.190 2006/07/05 19:21:29 mast Exp $
+|| $Id: builtin.cmod,v 1.191 2006/07/05 19:24:18 mast Exp $
 */
 
 #include "global.h"
@@ -549,10 +549,10 @@ PIKEFUN mapping(string:mixed) gc_parameters (void|mapping(string:mixed) params)
 	  set->u.float_number < 0.0 || set->u.float_number > 1.0)	\
 	SIMPLE_BAD_ARG_ERROR ("Pike.gc_parameters", 1,			\
 			      "float between 0.0 and 1.0 for " NAME);	\
-      VAR = set->u.float_number;					\
+      VAR = DO_NOT_WARN ((double) set->u.float_number);			\
     }, {								\
       get.type = T_FLOAT;						\
-      get.u.float_number = VAR;						\
+      get.u.float_number = DO_NOT_WARN ((FLOAT_TYPE) VAR);		\
     });
 
   HANDLE_PARAM ("enabled", {
@@ -2034,8 +2034,6 @@ PIKECLASS multi_string_replace
   PIKEFUN void create(array(string)|mapping(string:string)|void from_arg,
 		      array(string)|string|void to_arg)
   {
-    int i;
-
     if (THIS->from) free_array(THIS->from);
     if (THIS->to) free_array(THIS->to);
     if (THIS->ctx.v) free_replace_many_context(&THIS->ctx);
@@ -2463,7 +2461,7 @@ PIKECLASS bootstring
 	    INT_TYPE p = output.s->len;
 	    while (--p>i)
 	      s[p] = s[p-1];
-	    s[p] = n;
+	    s[p] = DO_NOT_WARN ((p_wchar0) n);
 	  }
 	  break;
 	case 1:
@@ -2472,7 +2470,7 @@ PIKECLASS bootstring
 	    INT_TYPE p = output.s->len;
 	    while (--p>i)
 	      s[p] = s[p-1];
-	    s[p] = n;
+	    s[p] = DO_NOT_WARN ((p_wchar1) n);
 	  }
 	  break;
 	case 2:
@@ -2481,7 +2479,7 @@ PIKECLASS bootstring
 	    INT_TYPE p = output.s->len;
 	    while (--p>i)
 	      s[p] = s[p-1];
-	    s[p] = n;
+	    s[p] = DO_NOT_WARN ((p_wchar2) n);
 	  }
 	  break;
 	default:
diff --git a/src/callback.c b/src/callback.c
index dddce9ab307365cc02103e4b114dcf30884197d1..0a132a6da60e77723ba721fa0316432fc939ebd0 100644
--- a/src/callback.c
+++ b/src/callback.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: callback.c,v 1.36 2006/01/24 12:02:37 mast Exp $
+|| $Id: callback.c,v 1.37 2006/07/05 19:24:18 mast Exp $
 */
 
 #include "global.h"
@@ -67,8 +67,7 @@ static int is_in_free_list(struct callback * c)
 
 static void check_callback_chain(struct callback_list *lst)
 {
-  int e,len=0;
-  struct callback_block *tmp;
+  int len=0;
   struct callback *foo;
   if(d_flag>4)
   {
@@ -95,8 +94,11 @@ static void check_callback_chain(struct callback_list *lst)
      * when dmalloc is used. Something like this should perhaps be
      * provided by a consistency check function in block_alloc.
      * /mast */
+    {
+      struct callback_block *tmp;
     for(tmp=callback_blocks;tmp;tmp=tmp->next)
     {
+      int e;
       for(e=0;e<CALLBACK_CHUNK;e++)
       {
 	int d;
@@ -135,6 +137,7 @@ static void check_callback_chain(struct callback_list *lst)
 	}
       }
     }
+    }
 #endif
   }
 }
diff --git a/src/errors.h b/src/errors.h
index 7d8ff63181d45ebd46da6cb1d4e060b997766904..97d14c1a2f02d9309618dd55f687b7f2e6fa1ae7 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -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: errors.h,v 1.32 2005/01/21 14:32:30 mast Exp $
+|| $Id: errors.h,v 1.33 2006/07/05 19:24:18 mast Exp $
 */
 
 #ifdef ERR_DECLARE
@@ -47,7 +47,8 @@ struct PIKE_CONCAT(NAME,_error_struct) { \
   MAP_VARIABLE(#NAME2, CTYPE, 0, \
 	       current_offset + (((char *)&(foo.NAME2))-((char *)&foo)), RUNTYPE);
 
-#define EMPTY
+/* Reference foo just to avoid warning. */
+#define EMPTY &foo;
 
 #define ERR_INHERIT(NAME) \
   low_inherit(PIKE_CONCAT(NAME,_error_program),0,0,0,0,0);
diff --git a/src/mapping.c b/src/mapping.c
index 1d86ed8818deed791645499d3207afb9d6f50e05..ae32996518aefeb6894c9a9b0fbdde6fbcee5651 100644
--- a/src/mapping.c
+++ b/src/mapping.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: mapping.c,v 1.187 2006/06/21 11:33:01 mast Exp $
+|| $Id: mapping.c,v 1.188 2006/07/05 19:24:18 mast Exp $
 */
 
 #include "global.h"
@@ -117,7 +117,7 @@ BLOCK_ALLOC_FILL_PAGES(mapping, 2)
 static void check_mapping_type_fields(struct mapping *m)
 {
   INT32 e;
-  struct keypair *k=0,**prev;
+  struct keypair *k=0;
   struct mapping_data *md;
   TYPE_FIELD ind_types, val_types;
 
diff --git a/src/mapping.h b/src/mapping.h
index cd2349eb35825cb576affcdeaa163c8e09f77ac3..30ae2e937bd7598de5144b432589f8d7b783ab5c 100644
--- a/src/mapping.h
+++ b/src/mapping.h
@@ -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: mapping.h,v 1.63 2006/07/05 02:19:15 mast Exp $
+|| $Id: mapping.h,v 1.64 2006/07/05 19:24:19 mast Exp $
 */
 
 #ifndef MAPPING_H
@@ -111,7 +111,7 @@ extern struct mapping *gc_internal_mapping;
       really_free_mapping(m_);						\
   }while(0)
 
-#endif	/* !DYNAMIC_MODULE */
+#endif	/* !(USE_DLL && DYNAMIC_MODULE) */
 
 /** Free only the mapping data leaving the mapping structure itself intact.
   *
diff --git a/src/multiset.c b/src/multiset.c
index 51a00ade4624324d3cef2914d645f343fc2ff890..3a49d5b53100157d6378a2da14a77f08af1aec94 100644
--- a/src/multiset.c
+++ b/src/multiset.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: multiset.c,v 1.100 2006/03/10 06:58:03 mast Exp $
+|| $Id: multiset.c,v 1.101 2006/07/05 19:24:19 mast Exp $
 */
 
 #include "global.h"
@@ -4234,6 +4234,7 @@ void init_multiset()
 #ifdef PIKE_DEBUG
   /* This test is buggy in GCC 4.0.1, hence the volatile. */
   volatile union msnode test;
+#define msnode_check(X) ((volatile union msnode *) (X))
   HDR (&test)->flags = 0;
   test.i.ind.type = (1 << 8) - 1;
   test.i.ind.subtype = (1 << 16) - 1;
@@ -4258,6 +4259,7 @@ void init_multiset()
 	       HDR(&test)->flags, MULTISET_FLAG_MASK,
 	       RB_FLAG_MASK, MULTISET_FLAG_MARKER,
 	       test.i.ind.type);
+#undef msnode_check
 #endif
 #ifndef HAVE_UNION_INIT
   svalue_int_one.u.integer = 1;
diff --git a/src/object.c b/src/object.c
index b3892e1090ea22759d28fa721e972ae0a79d8948..09b4243e178cd4cecf43b6985e7fed75d3460b61 100644
--- a/src/object.c
+++ b/src/object.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: object.c,v 1.269 2006/01/24 13:10:27 mast Exp $
+|| $Id: object.c,v 1.270 2006/07/05 19:24:19 mast Exp $
 */
 
 #include "global.h"
@@ -462,7 +462,7 @@ struct object *decode_value_clone_object(struct svalue *prog)
 static struct pike_string *low_read_file(const char *file)
 {
   struct pike_string *s;
-  ptrdiff_t len;
+  PIKE_OFF_T len;
   FD f;
 
   while((f = fd_open(file,fd_RDONLY,0666)) <0 && errno==EINTR)
@@ -473,11 +473,16 @@ static struct pike_string *low_read_file(const char *file)
 
     len = fd_lseek(f, 0, SEEK_END);
     fd_lseek(f, 0, SEEK_SET);
-    s = begin_shared_string(len);
+
+    if (len > MAX_INT32)
+      Pike_fatal ("low_read_file(%s): File too large: %"PRINTPIKEOFFT"d b.\n",
+		  file, len);
+
+    s = begin_shared_string (DO_NOT_WARN ((ptrdiff_t) len));
 
     while(pos<len)
     {
-      tmp = fd_read(f,s->str+pos,len-pos);
+      tmp = fd_read(f,s->str+pos, DO_NOT_WARN ((ptrdiff_t) len) - pos);
       if(tmp<=0)
       {
 	if (tmp < 0) {
@@ -488,7 +493,7 @@ static struct pike_string *low_read_file(const char *file)
 	  Pike_fatal("low_read_file(%s) failed, errno=%d\n",file,errno);
 	}
 	Pike_fatal("low_read_file(%s) failed, short read: "
-		   "%"PRINTPTRDIFFT"d < %"PRINTPTRDIFFT"d\n",
+		   "%"PRINTPIKEOFFT"d < %"PRINTPIKEOFFT"d\n",
 		   file, pos, len);
       }
       pos+=tmp;
@@ -549,8 +554,8 @@ PMOD_EXPORT struct object *get_master(void)
 
     s = NULL;
     if (!fd_stat(tmp, &stat_buf)) {
-      long ts1 = stat_buf.st_mtime;
-      long ts2 = 0;		/* FIXME: Should really be MIN_INT, but... */
+      time_t ts1 = stat_buf.st_mtime;
+      time_t ts2 = 0;
 
       if (!fd_stat(master_file, &stat_buf)) {
 	ts2 = stat_buf.st_mtime;
diff --git a/src/pike_embed.c b/src/pike_embed.c
index 6e92e7297b34ca639e3bc82d433b6e66dd6fe968..043b22da61d910a1f0fcc847d6bc58d0f16437b9 100644
--- a/src/pike_embed.c
+++ b/src/pike_embed.c
@@ -1,5 +1,5 @@
 /*
- * $Id: pike_embed.c,v 1.7 2006/02/27 12:07:10 mast Exp $
+ * $Id: pike_embed.c,v 1.8 2006/07/05 19:24:19 mast Exp $
  *
  * Pike embedding API.
  *
@@ -327,7 +327,7 @@ void init_pike_runtime(void (*exit_cb)(int))
   }
 #else /* !HAVE_GETRLIMIT || !RLIMIT_STACK */
   /* 128 MB seems a bit extreme, most OS's seem to have their limit at ~8MB */
-  Pike_interpreter.stack_top += STACK_DIRECTION * (1024*1024 * 8 - 8192 * sizeof(char *));
+  Pike_interpreter.stack_top += STACK_DIRECTION * (1024*1024 * 8 - 8192 * (ptrdiff_t) sizeof(char *));
 #ifdef STACK_DEBUG
   fprintf(stderr, "2: C-stack: 0x%08p - 0x%08p, direction:%d\n",
 	  &exit_cb, Pike_interpreter.stack_top, STACK_DIRECTION);
diff --git a/src/pike_types.c b/src/pike_types.c
index 134003fb6ff06a809fbd625a733316cc476656cd..9279aaaf6140511645cbdcc17603879cfd5af6ae 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.253 2006/01/20 17:50:51 grubba Exp $
+|| $Id: pike_types.c,v 1.254 2006/07/05 19:26:26 mast Exp $
 */
 
 #include "global.h"
@@ -1077,7 +1077,7 @@ static void internal_parse_typeA(const char **_s)
 	    min=STRTOL((const char *)*s,(char **)s,0);
 	    while(ISSPACE(**s)) ++*s;
 	  } else {
-	    min = -0x80000000;
+	    min = MIN_INT32;
 	  }
 	  if(s[0][0]=='.' && s[0][1]=='.')
 	    s[0]+=2;
@@ -1090,7 +1090,7 @@ static void internal_parse_typeA(const char **_s)
 	    max=STRTOL((const char *)*s,(char **)s,0);
 	    while(ISSPACE(**s)) ++*s;
 	  } else {
-	    max = 0x7fffffff;
+	    max = MAX_INT32;
 	  }
 
 	  if(**s != ')') yyerror("Missing ')' in integer range.");
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 9f76955a2e5db0122c9bb2487b37aed666c79c87..66b55a5da7dcf693c58f8e3bdfb2004d400a993e 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.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: signal_handler.c,v 1.320 2006/05/02 18:10:25 grubba Exp $
+|| $Id: signal_handler.c,v 1.321 2006/07/05 19:24:19 mast Exp $
 */
 
 #include "global.h"
@@ -1423,7 +1423,6 @@ static TH_RETURN_TYPE wait_thread(void *data)
  */
 static void f_pid_status_wait(INT32 args)
 {
-  int wait_for_stopped;
   if(THIS->pid == -1)
     Pike_error("This process object has no process associated with it.\n");
 
@@ -1456,7 +1455,8 @@ static void f_pid_status_wait(INT32 args)
     push_int(xcode);
   }
 #else
-
+  {
+    int wait_for_stopped;
   if (THIS->pid == getpid())
     Pike_error("Waiting for self.\n");
 
@@ -1585,6 +1585,7 @@ static void f_pid_status_wait(INT32 args)
   } else {
     push_int(THIS->result);
   }
+  }
 #endif /* __NT__ */
 }