diff --git a/src/array.c b/src/array.c
index 1c1c9b2e19ae723c862bb7243ba32120b7980109..f87188cb349759dd4468b7a0238fa3d087b321ec 100644
--- a/src/array.c
+++ b/src/array.c
@@ -23,7 +23,7 @@
 #include "stuff.h"
 #include "bignum.h"
 
-RCSID("$Id: array.c,v 1.117 2001/09/11 05:37:26 hubbe Exp $");
+RCSID("$Id: array.c,v 1.118 2001/09/24 14:21:10 grubba Exp $");
 
 PMOD_EXPORT struct array empty_array=
 {
@@ -353,7 +353,7 @@ PMOD_EXPORT struct array *resize_array(struct array *a, INT32 size)
       struct array *ret;
       ret=low_allocate_array(size, (size>>1) + 4);
       MEMCPY(ITEM(ret),ITEM(a),sizeof(struct svalue)*a->size);
-      ret->type_field = a->type_field | BIT_INT;
+      ret->type_field = DO_NOT_WARN((TYPE_FIELD)(a->type_field | BIT_INT));
       a->size=0;
       free_array(a);
       return ret;
@@ -683,7 +683,7 @@ INT32 *get_order(struct array *v, cmpfun fun)
 
 INLINE int set_svalue_cmpfun(const struct svalue *a, const struct svalue *b)
 {
-  INT32 def,fun;
+  INT32 def;
   if(a->type == b->type)
   {
     switch(a->type)
@@ -2079,7 +2079,6 @@ static void gc_check_array(struct array *a)
 
 void gc_mark_array_as_referenced(struct array *a)
 {
-  int e;
   if(gc_mark(a)) {
 #ifdef PIKE_DEBUG
     if (a == &empty_array || a == &weak_empty_array || a == &weak_shrink_empty_array)
@@ -2148,7 +2147,6 @@ void gc_mark_array_as_referenced(struct array *a)
 void real_gc_cycle_check_array(struct array *a, int weak)
 {
   GC_CYCLE_ENTER(a, weak) {
-    int e;
 #ifdef PIKE_DEBUG
     if (a == &empty_array || a == &weak_empty_array || a == &weak_shrink_empty_array)
       fatal("Trying to gc cycle check some *_empty_array.\n");
diff --git a/src/backend.cmod b/src/backend.cmod
index 875804b7d80dfc94ec23aad6eca6155f8cb8da80..3d9e2d924ea1aaf10c8bf1aec13724b181e7673a 100644
--- a/src/backend.cmod
+++ b/src/backend.cmod
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: backend.cmod,v 1.19 2001/09/06 21:21:21 hubbe Exp $");
+RCSID("$Id: backend.cmod,v 1.20 2001/09/24 14:22:32 grubba Exp $");
 #include "fdlib.h"
 #include "backend.h"
 #include <errno.h>
@@ -1443,8 +1443,7 @@ PIKECLASS Backend
 				    int num_arg,
 				    struct svalue *argp)
    {
-     int e,c;
-     call_out *new,**p,**pos;
+     call_out *new,;
      struct array *args;
      size_t hval;
      
@@ -1636,7 +1635,6 @@ PIKECLASS Backend
 
    void backend_do_call_outs(struct Backend_struct *me)
      {
-       call_out *c;
        int args;
        struct timeval tmp,tmp2;
        backend_verify_call_outs(me);
diff --git a/src/docode.c b/src/docode.c
index 0cfa7dda1a0e7caa3e2796fb93bb67094be86a4f..4a344413a828b95bb4fd34f801c30a2a5df43d86 100644
--- a/src/docode.c
+++ b/src/docode.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: docode.c,v 1.131 2001/08/31 06:54:06 hubbe Exp $");
+RCSID("$Id: docode.c,v 1.132 2001/09/24 14:26:52 grubba Exp $");
 #include "las.h"
 #include "program.h"
 #include "pike_types.h"
@@ -408,7 +408,6 @@ static INT32 count_cases(node *n)
 
 int generate_call_function(node *n)
 {
-  node **arg;
   emit0(F_MARK);
   PUSH_CLEANUP_FRAME(do_pop_mark, 0);
   do_docode(CDR(n),DO_NOT_COPY);
@@ -1228,7 +1227,6 @@ static int do_docode2(node *n, INT16 flags)
     else
     {
       struct pike_string *tmp;
-      struct efun *fun;
       node *foo;
 
       emit0(F_MARK);
diff --git a/src/encode.c b/src/encode.c
index ffbd3640ca2fc4e2edaf26edc9dac8f3b933a0e4..fe11e5e308ac0cb97ea0eebf1a1d1b5287d0b420 100644
--- a/src/encode.c
+++ b/src/encode.c
@@ -25,7 +25,7 @@
 #include "version.h"
 #include "bignum.h"
 
-RCSID("$Id: encode.c,v 1.128 2001/09/09 05:19:36 hubbe Exp $");
+RCSID("$Id: encode.c,v 1.129 2001/09/24 14:25:54 grubba Exp $");
 
 /* #define ENCODE_DEBUG */
 
@@ -944,7 +944,6 @@ static void encode_value2(struct svalue *val, struct encode_data *data)
 	Pike_error("Error in master()->nameof(), same type returned.\n");
       if(Pike_sp[-1].type == T_INT && Pike_sp[-1].subtype == NUMBER_UNDEFINED)
       {
-	INT32 e;
 	struct program *p=val->u.program;
 	if( (p->flags & PROGRAM_HAS_C_METHODS) || p->event_handler )
 	{
@@ -1478,7 +1477,9 @@ static void low_decode_type(struct decode_data *data)
   SET_ONERROR(err1, restore_type_stack, Pike_compiler->type_stackp);
   SET_ONERROR(err2, restore_type_mark, Pike_compiler->pike_type_mark_stackp);
 
+#ifndef USE_PIKE_TYPE
 one_more_type:
+#endif /* !USE_PIKE_TYPE */
   tmp = GETC();
   switch(tmp)
   {
@@ -1609,7 +1610,6 @@ one_more_type:
 
     case T_OBJECT:
     {
-      INT32 x;
       int flag = GETC();
 
       decode_value2(data);
@@ -1765,15 +1765,15 @@ static void decode_value2(struct decode_data *data)
 	{
 	  case Pike_FP_SNAN: /* Signal Not A Number */
 	  case Pike_FP_QNAN: /* Quiet Not A Number */
-	    push_float(MAKE_NAN());
+	    push_float(DO_NOT_WARN((FLOAT_TYPE)MAKE_NAN()));
 	    break;
 		       
 	  case Pike_FP_NINF: /* Negative infinity */
-	    push_float(MAKE_INF(-1));
+	    push_float(DO_NOT_WARN((FLOAT_TYPE)MAKE_INF(-1)));
 	    break;
 
 	  case Pike_FP_PINF: /* Positive infinity */
-	    push_float(MAKE_INF(1));
+	    push_float(DO_NOT_WARN((FLOAT_TYPE)MAKE_INF(1)));
 	    break;
 
 	  case Pike_FP_NZERO: /* Negative Zero */
@@ -1781,13 +1781,13 @@ static void decode_value2(struct decode_data *data)
 	    break;
 
 	  default:
-	    push_float(LDEXP(res, num));
+	    push_float(DO_NOT_WARN((FLOAT_TYPE)LDEXP(res, num)));
 	    break;
 	}
 	break;
       }
 
-      push_float(LDEXP(res, num));
+      push_float(DO_NOT_WARN((FLOAT_TYPE)LDEXP(res, num)));
       break;
     }
 
diff --git a/src/error.c b/src/error.c
index 2941bb9cd8a9f2035761a68c60d5a6dd60fbeb1f..f47f536a91c85fd31a3ac7a81c96890ebd0e578f 100644
--- a/src/error.c
+++ b/src/error.c
@@ -22,7 +22,7 @@
 #include "threads.h"
 #include "gc.h"
 
-RCSID("$Id: error.c,v 1.75 2001/08/15 22:58:36 mast Exp $");
+RCSID("$Id: error.c,v 1.76 2001/09/24 14:29:42 grubba Exp $");
 
 #undef ATTRIBUTE
 #define ATTRIBUTE(X)
@@ -314,6 +314,8 @@ PMOD_EXPORT DECLSPEC(noreturn) void debug_fatal(const char *fmt, ...) ATTRIBUTE(
   va_list args;
   static int in_fatal = 0;
 
+  /* fprintf(stderr, "Raw error: %s\n", fmt); */
+
   va_start(args,fmt);
   /* Prevent double fatal. */
   if (in_fatal)
@@ -519,8 +521,6 @@ DECLSPEC(noreturn) void generic_error_va(struct object *o,
      ATTRIBUTE((noreturn))
 {
   char buf[8192];
-  struct pike_string *desc;
-  struct array *backtrace;
   int i;
 
 #ifdef HAVE_VSNPRINTF
diff --git a/src/fd_control.c b/src/fd_control.c
index df08133cd16b0a31dfd7535101fb486941b9aac4..537f5ea3e0f6163be90285eab98a970c227fa591 100644
--- a/src/fd_control.c
+++ b/src/fd_control.c
@@ -10,7 +10,7 @@
 #include "pike_error.h"
 #include "fdlib.h"
 
-RCSID("$Id: fd_control.c,v 1.36 2001/01/21 20:40:38 grubba Exp $");
+RCSID("$Id: fd_control.c,v 1.37 2001/09/24 14:30:42 grubba Exp $");
 
 #else /* TESTING */
 
@@ -169,7 +169,7 @@ static void grow_fds_to_close(void)
 
 void do_close_on_exec(void)
 {
-  int i,ret;
+  int i;
   for(i=0; i < num_fds_to_close; i++) {
     while( fd_close(fds_to_close[i]) <0 && errno==EINTR) ;
   }
diff --git a/src/fdlib.c b/src/fdlib.c
index e5090d64a0697573acd466488112717993a4e373..09e36655b0b2b6c0ae47a4bf1180ba881007252b 100644
--- a/src/fdlib.c
+++ b/src/fdlib.c
@@ -3,7 +3,7 @@
 #include "pike_error.h"
 #include <math.h>
 
-RCSID("$Id: fdlib.c,v 1.49 2001/09/18 22:59:56 hubbe Exp $");
+RCSID("$Id: fdlib.c,v 1.50 2001/09/24 14:18:52 grubba Exp $");
 
 #ifdef HAVE_WINSOCK_H
 
@@ -639,7 +639,6 @@ PMOD_EXPORT ptrdiff_t debug_fd_lseek(FD fd, ptrdiff_t pos, int where)
 
 PMOD_EXPORT int debug_fd_ftruncate(FD fd, ptrdiff_t len)
 {
-  ptrdiff_t ret;
   HANDLE h;
   LONG oldfp_lo, oldfp_hi;
 
diff --git a/src/fsort_template.h b/src/fsort_template.h
index dd8bbaf1dc948445ebb972254b7aa5ccdab10e78..69b7c2fa7ab446228476d5b0f65a91bf08195617 100644
--- a/src/fsort_template.h
+++ b/src/fsort_template.h
@@ -1,5 +1,5 @@
 /*
- * $Id: fsort_template.h,v 1.8 2000/08/10 09:07:57 grubba Exp $
+ * $Id: fsort_template.h,v 1.9 2001/09/24 14:31:16 grubba Exp $
  */
 
 #ifndef SWAP
@@ -33,7 +33,7 @@ static void MKNAME(_do_sort)(register TYPE *bas,
 #endif
   )
 {
-  register TYPE *a,*b, tmp;
+  register TYPE *a,*b;
 
   while(bas < last)
   {
diff --git a/src/gc.c b/src/gc.c
index 7efa8df8423532d44db396ed3d1916c076bc4506..94489b6a552b0f9cf44b26896ffde9c8d5268091 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -30,7 +30,7 @@ struct callback *gc_evaluator_callback=0;
 
 #include "block_alloc.h"
 
-RCSID("$Id: gc.c,v 1.176 2001/09/11 05:42:59 hubbe Exp $");
+RCSID("$Id: gc.c,v 1.177 2001/09/24 14:36:51 grubba Exp $");
 
 /* Run garbage collect approximately every time
  * 20 percent of all arrays, objects and programs is
@@ -1920,7 +1920,6 @@ int gc_cycle_push(void *x, struct marker *m, int weak)
     else {
       /* We'll get here eventually in the normal recursion. Pop off
        * the remaining live recurse frames for the last thing. */
-      int flags;
       CYCLE_DEBUG_MSG(m, "gc_cycle_push, no live recurse");
       last->flags &= ~GC_LIVE_RECURSE;
       while (1) {
@@ -2339,11 +2338,6 @@ int do_gc(void)
   double tmp;
   ptrdiff_t objs, pre_kill_objs;
   double multiplier;
-  struct array *a;
-  struct multiset *l;
-  struct mapping *m;
-  struct program *p;
-  struct object *o;
 #ifdef PIKE_DEBUG
 #ifdef HAVE_GETHRTIME
   hrtime_t gcstarttime = 0;
@@ -2823,11 +2817,11 @@ void f__gc_status(INT32 args)
   size++;
 
   push_constant_text("objects_alloced");
-  push_int64(objects_alloced);
+  push_int64(DO_NOT_WARN((INT64)objects_alloced));
   size++;
 
   push_constant_text("objects_freed");
-  push_int64(objects_freed);
+  push_int64(DO_NOT_WARN((INT64)objects_freed));
   size++;
 
   push_constant_text("last_gc");
@@ -2835,7 +2829,8 @@ void f__gc_status(INT32 args)
   size++;
 
   push_constant_text("projected_garbage");
-  push_float(objects_freed * (double) num_allocs / (double) alloc_threshold);
+  push_float(DO_NOT_WARN((FLOAT_TYPE)(objects_freed * (double) num_allocs /
+				      (double) alloc_threshold)));
   size++;
 
   f_aggregate_mapping(size * 2);
diff --git a/src/interpret.c b/src/interpret.c
index bce4a9cf71263a477fffe74e06236881d80de2aa..9e9e13e93d233dbf1b645e573aba97ea03155ed0 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.248 2001/09/13 15:58:18 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.249 2001/09/24 14:14:46 grubba Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -185,12 +185,14 @@ PMOD_EXPORT void init_interpreter(void)
   Pike_interpreter.mark_stack=MMALLOC(Pike_stack_size, struct svalue *);
   if((char *)MAP_FAILED == (char *)Pike_interpreter.evaluator_stack) Pike_interpreter.evaluator_stack=0;
   if((char *)MAP_FAILED == (char *)Pike_interpreter.mark_stack) Pike_interpreter.mark_stack=0;
+
+use_malloc:
+
 #else
   Pike_interpreter.evaluator_stack=0;
   Pike_interpreter.mark_stack=0;
 #endif
 
-use_malloc:
   if(!Pike_interpreter.evaluator_stack)
   {
     Pike_interpreter.evaluator_stack=(struct svalue *)xalloc(Pike_stack_size*sizeof(struct svalue));
diff --git a/src/interpret_functions.h b/src/interpret_functions.h
index c91c8f37db87ea9acd7650a7670ada2842964be0..4f2be1d7b4d99b67ae53b4802dbe8cb85790d80d 100644
--- a/src/interpret_functions.h
+++ b/src/interpret_functions.h
@@ -1,5 +1,5 @@
 /*
- * $Id: interpret_functions.h,v 1.92 2001/09/23 19:03:56 grubba Exp $
+ * $Id: interpret_functions.h,v 1.93 2001/09/24 14:17:34 grubba Exp $
  *
  * Opcode definitions for the interpreter.
  */
@@ -224,7 +224,7 @@ OPCODE1(F_ARROW_STRING, "->string", {
 OPCODE1(F_LOOKUP_LFUN, "->lfun", {
   struct svalue tmp;
   struct object *o;
-  int id;
+
   if ((sp[-1].type == T_OBJECT) && ((o = Pike_sp[-1].u.object)->prog) &&
       (FIND_LFUN(o->prog, LFUN_ARROW) == -1)) {
     int id = FIND_LFUN(o->prog, arg1);
@@ -2139,7 +2139,6 @@ OPCODE0_JUMP(F_RECUR_AND_POP, "recur & pop", {
 /* Assume that the number of arguments is correct */
 /* FIXME: adjust Pike_mark_sp */
 OPCODE0_JUMP(F_TAIL_RECUR, "tail recursion", {
-  int x;
   INT32 num_locals;
   PIKE_OPCODE_T *addr;
   INT32 args;
diff --git a/src/lexer.h b/src/lexer.h
index 7ad27fca33095a939ae668233d2aaf293f7cd4db..9680e6fbf8fae43398298b05a3a622e122f27bbb 100644
--- a/src/lexer.h
+++ b/src/lexer.h
@@ -1,5 +1,5 @@
 /*
- * $Id: lexer.h,v 1.33 2001/06/30 02:02:42 mast Exp $
+ * $Id: lexer.h,v 1.34 2001/09/24 14:37:34 grubba Exp $
  *
  * Lexical analyzer template.
  * Based on lex.c 1.62
@@ -326,7 +326,6 @@ static int low_yylex(YYSTYPE *yylval)
 
     if((c>'9') && lex_isidchar(c))
     {
-      struct pike_string *s;
       lex.pos -= (1<<SHIFT);
       READBUF(lex_isidchar(C));
 
@@ -517,8 +516,6 @@ static int low_yylex(YYSTYPE *yylval)
 
       switch(len>0?INDEX_CHARP(buf, 0, SHIFT):0)
       {
-	char *p;
-	
       case 'l':
 	if(!ISWORD("line")) goto badhash;
 	SKIPSPACE();
diff --git a/src/main.c b/src/main.c
index 1d25d6617e6f87373be8c5e5d05132fabd3c422c..334897703a8c281b71ea1f495a2110b48d9be4e5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: main.c,v 1.136 2001/09/09 05:18:46 hubbe Exp $");
+RCSID("$Id: main.c,v 1.137 2001/09/24 14:41:37 grubba Exp $");
 #include "fdlib.h"
 #include "backend.h"
 #include "module.h"
@@ -155,7 +155,7 @@ static void get_master_key(HKEY cat)
   HKEY k;
   char buffer[4096];
   DWORD len=sizeof(buffer)-1,type=REG_SZ;
-  long ret;
+
   if(RegOpenKeyEx(cat,
 		  (LPCTSTR)("SOFTWARE\\Idonex\\Pike\\"
 			    DEFINETOSTR(PIKE_MAJOR_VERSION)
@@ -180,7 +180,7 @@ static void get_master_key(HKEY cat)
 int dbm_main(int argc, char **argv)
 {
   JMP_BUF back;
-  int e, num, do_backend;
+  int e, num;
   char *p;
   struct array *a;
 #ifdef DECLARE_ENVIRON
diff --git a/src/mapping.c b/src/mapping.c
index 39ac3df1425bf2576fac1afd5d205d7329cfcd46..543a66ec578971f711ed5e60dfc2e6d22593de70 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: mapping.c,v 1.136 2001/09/06 21:22:00 hubbe Exp $");
+RCSID("$Id: mapping.c,v 1.137 2001/09/24 14:44:47 grubba Exp $");
 #include "main.h"
 #include "object.h"
 #include "mapping.h"
@@ -47,7 +47,6 @@ static struct mapping *gc_mark_mapping_pos = 0;
 
 #undef EXIT_BLOCK
 #define EXIT_BLOCK(m)	do{						\
-  INT32 e;								\
 DO_IF_DEBUG(								\
   if(m->refs)								\
     fatal("really free mapping on mapping with nonzero refs.\n");	\
@@ -153,7 +152,6 @@ static void init_mapping(struct mapping *m,
 			 INT16 flags)
 {
   struct mapping_data *md;
-  char *tmp;
   ptrdiff_t e;
   INT32 hashsize;
 
@@ -269,7 +267,6 @@ static void mapping_rehash_backwards_evil(struct mapping_data *md,
 					  struct keypair *from)
 {
   unsigned INT32 h;
-  struct keypair *tmp;
   struct keypair *k;
 
   if(!from) return;
@@ -305,7 +302,6 @@ static void mapping_rehash_backwards_good(struct mapping_data *md,
 					  struct keypair *from)
 {
   unsigned INT32 h;
-  struct keypair *tmp;
   struct keypair *k;
 
   if(!from) return;
@@ -1352,7 +1348,7 @@ PMOD_EXPORT struct mapping *copy_mapping(struct mapping *m)
 
 PMOD_EXPORT struct mapping *merge_mappings(struct mapping *a, struct mapping *b, INT32 op)
 {
-  ONERROR r1,r2,r3,r4,r5;
+  ONERROR r1,r2,r3,r4;
   struct array *ai, *av;
   struct array *bi, *bv;
   struct array *ci, *cv;
@@ -1634,7 +1630,6 @@ void describe_mapping(struct mapping *m,struct processing *p,int indent)
   JMP_BUF catch;
   ONERROR err;
   INT32 e,d;
-  struct keypair *k;
   char buf[40];
 
 #ifdef PIKE_DEBUG
@@ -1724,9 +1719,6 @@ void describe_mapping(struct mapping *m,struct processing *p,int indent)
 
 node *make_node_from_mapping(struct mapping *m)
 {
-  struct keypair *k;
-  INT32 e;
-
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
     fatal("Zero refs in mapping->data\n");
@@ -1774,7 +1766,6 @@ node *make_node_from_mapping(struct mapping *m)
 PMOD_EXPORT void f_aggregate_mapping(INT32 args)
 {
   INT32 e;
-  struct keypair *k;
   struct mapping *m;
 
   if(args & 1)
diff --git a/src/module_support.c b/src/module_support.c
index ebca1d5a856bc4d455de9269041041408a2bc33b..2c74daefba370210badd2de4e6d27e8917c385fe 100644
--- a/src/module_support.c
+++ b/src/module_support.c
@@ -9,7 +9,7 @@
 #include "object.h"
 #include "opcodes.h"
 
-RCSID("$Id: module_support.c,v 1.40 2001/02/20 13:02:11 grubba Exp $");
+RCSID("$Id: module_support.c,v 1.41 2001/09/24 14:46:46 grubba Exp $");
 
 /* Checks that args_to_check arguments are OK.
  * Returns 1 if everything worked ok, zero otherwise.
@@ -38,7 +38,7 @@ static int va_check_args(struct svalue *s,
 
     if (!((1UL << s[res->argno].type) & res->expected))
     {
-      res->got=s[res->argno].type;
+      res->got = DO_NOT_WARN((unsigned char)s[res->argno].type);
       res->error_type = ERR_BAD_ARG;
       return 0;
     }
@@ -77,7 +77,6 @@ PMOD_EXPORT void check_all_args(const char *fnname, int args, ... )
 {
   va_list arglist;
   struct expect_result tmp;
-  int argno;
 
   va_start(arglist, args);
   va_check_args(sp - args, args, &tmp, arglist);
@@ -94,7 +93,7 @@ PMOD_EXPORT void check_all_args(const char *fnname, int args, ... )
   case ERR_BAD_ARG:
   {
     char buf[1000];
-    int e,d;
+    int e;
     buf[0]=0;
     for(e=0;e<16;e++)
     {
diff --git a/src/modules/system/nt.c b/src/modules/system/nt.c
index 091f61b9a9bf0ae323d6db3da5a81c90eb52a49a..0dc14360b7fb8870d7683e739579ed275374dee9 100644
--- a/src/modules/system/nt.c
+++ b/src/modules/system/nt.c
@@ -1,5 +1,5 @@
 /*
- * $Id: nt.c,v 1.44 2001/09/19 12:41:22 grubba Exp $
+ * $Id: nt.c,v 1.45 2001/09/24 14:11:24 grubba Exp $
  *
  * NT system calls for Pike
  *
@@ -1207,7 +1207,7 @@ void f_NetUserEnum(INT32 args)
   DWORD level=0;
   DWORD filter=0;
   LPWSTR server=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
   DWORD resume=0;
   NET_API_STATUS ret;
@@ -1243,7 +1243,7 @@ void f_NetUserEnum(INT32 args)
 
   do
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e;
     LPBYTE buf=0,ptr;
 
     THREADS_ALLOW();
@@ -1322,7 +1322,7 @@ void f_NetGroupEnum(INT32 args)
   char *to_free1=NULL, *tmp_server=NULL;
   DWORD level=0;
   LPWSTR server=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
   DWORD resume=0;
   NET_API_STATUS ret;
@@ -1347,7 +1347,7 @@ void f_NetGroupEnum(INT32 args)
 
   do
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e;
     LPBYTE buf=0,ptr;
 
     THREADS_ALLOW();
@@ -1424,7 +1424,7 @@ void f_NetLocalGroupEnum(INT32 args)
   char *to_free1=NULL, *tmp_server=NULL;
   DWORD level=0;
   LPWSTR server=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
   DWORD resume=0;
   NET_API_STATUS ret;
@@ -1449,7 +1449,7 @@ void f_NetLocalGroupEnum(INT32 args)
 
   do
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e;
     LPBYTE buf=0,ptr;
 
     THREADS_ALLOW();
@@ -1525,13 +1525,13 @@ void f_NetLocalGroupEnum(INT32 args)
  */
 void f_NetUserGetGroups(INT32 args)
 {
-  char *to_free1=NULL, *to_free2=NULL, *tmp_server=NULL, *tmp_user;
+  char *to_free1=NULL, *to_free2=NULL, *tmp_server=NULL;
   DWORD level=0;
   LPWSTR server=NULL;
   LPWSTR user=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
-  DWORD read=0, total=0;
+  DWORD read=0, total=0, e;
   NET_API_STATUS ret;
   LPBYTE buf=0,ptr;
 
@@ -1636,14 +1636,14 @@ void f_NetUserGetGroups(INT32 args)
  */
 void f_NetUserGetLocalGroups(INT32 args)
 {
-  char *to_free1=NULL, *to_free2=NULL, *tmp_server=NULL, *tmp_user;
+  char *to_free1=NULL, *to_free2=NULL, *tmp_server=NULL;
   DWORD level=0;
   DWORD flags=0;
   LPWSTR server=NULL;
   LPWSTR user=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
-  DWORD read=0, total=0;
+  DWORD read=0, total=0, e;
   NET_API_STATUS ret;
   LPBYTE buf=0,ptr;
 
@@ -1752,7 +1752,7 @@ void f_NetGroupGetUsers(INT32 args)
   DWORD level=0;
   LPWSTR server=NULL;
   LPWSTR group=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
   DWORD resume=0;
 
@@ -1779,7 +1779,7 @@ void f_NetGroupGetUsers(INT32 args)
 
   while(1)
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e;
     NET_API_STATUS ret;
     LPBYTE buf=0,ptr;
 
@@ -1869,7 +1869,7 @@ void f_NetLocalGroupGetMembers(INT32 args)
   DWORD level=0;
   LPWSTR server=NULL;
   LPWSTR group=NULL;
-  INT32 pos=0,e;
+  INT32 pos=0;
   struct array *a=0;
   DWORD resume=0;
 
@@ -1896,7 +1896,7 @@ void f_NetLocalGroupGetMembers(INT32 args)
 
   while(1)
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e;
     NET_API_STATUS ret;
     LPBYTE buf=0,ptr;
 
@@ -1978,7 +1978,6 @@ void f_NetGetDCName(INT32 args)
 {
   char *to_free1=NULL,*to_free2=NULL;
   BYTE *tmp=0;
-  DWORD level;
   LPWSTR server, domain;
   NET_API_STATUS ret;
 
@@ -2048,7 +2047,6 @@ void f_NetGetAnyDCName(INT32 args)
 {
   char *to_free1=NULL,*to_free2=NULL;
   BYTE *tmp=0;
-  DWORD level;
   LPWSTR server, domain;
   NET_API_STATUS ret;
 
@@ -2285,7 +2283,6 @@ static int sizeof_wkstauser_info(int level)
  */
 static void f_NetSessionEnum(INT32 args)
 {
-  INT32 pos=0,e;
   LPWSTR server, client, user;
   DWORD level;
   DWORD resume = 0;
@@ -2315,7 +2312,7 @@ static void f_NetSessionEnum(INT32 args)
   
   while(1)
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e, pos = 0;
     NET_API_STATUS ret;
     LPBYTE buf=0,ptr;
 
@@ -2379,7 +2376,6 @@ static void f_NetSessionEnum(INT32 args)
  */
 static void f_NetWkstaUserEnum(INT32 args)
 {
-  INT32 pos=0,e;
   LPWSTR server;
   DWORD level;
   DWORD resume = 0;
@@ -2398,7 +2394,7 @@ static void f_NetWkstaUserEnum(INT32 args)
   
   while(1)
   {
-    DWORD read=0, total=0;
+    DWORD read=0, total=0, e, pos = 0;
     NET_API_STATUS ret;
     LPBYTE buf=0,ptr;
 
@@ -2647,8 +2643,8 @@ static struct array *encode_acl(PACL acl)
   ACL_SIZE_INFORMATION tmp;
   if(GetAclInformation(acl, &tmp, sizeof(tmp), AclSizeInformation))
   {
-    int e;
-    check_stack(tmp.AceCount + 4);
+    unsigned int e;
+    check_stack(((ptrdiff_t)(tmp.AceCount + 4)));
     for(e=0;e<tmp.AceCount;e++)
     {
       void *ace;
diff --git a/src/multiset.c b/src/multiset.c
index 989176da41fcd84bd62f036d2ea4d82f5ffff450..04e3113ddaf20ea78bda1cfbd865a50c70eb7094 100644
--- a/src/multiset.c
+++ b/src/multiset.c
@@ -17,7 +17,7 @@
 #include "gc.h"
 #include "security.h"
 
-RCSID("$Id: multiset.c,v 1.37 2001/07/01 20:02:44 mast Exp $");
+RCSID("$Id: multiset.c,v 1.38 2001/09/24 14:38:52 grubba Exp $");
 
 struct multiset *first_multiset;
 
@@ -100,17 +100,16 @@ PMOD_EXPORT void do_free_multiset(struct multiset *l)
 
 PMOD_EXPORT void order_multiset(struct multiset *l)
 {
-  INT32 *order;
-  int flags;
   if(l->ind->size < 2) return;
 
   BEGIN();
 
 #if 0
-
-  order = get_set_order(ind);
-  ind = order_array(ind, order);
-  free((char *)order);
+  {
+    INT32 *order = get_set_order(ind);
+    ind = order_array(ind, order);
+    free((char *)order);
+  }
 #else
   {
     extern void set_sort_svalues(struct svalue *, struct svalue *);
diff --git a/src/object.c b/src/object.c
index 152e695bd830abe7eebbc498c3679eed5c2e016b..dc6853eb5b3ec5b886f97fa8beb9a52844b1f9f6 100644
--- a/src/object.c
+++ b/src/object.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: object.c,v 1.184 2001/09/06 08:06:01 hubbe Exp $");
+RCSID("$Id: object.c,v 1.185 2001/09/24 14:47:53 grubba Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
@@ -94,7 +94,6 @@ BLOCK_ALLOC(object, 511)
 
 PMOD_EXPORT struct object *low_clone(struct program *p)
 {
-  int e;
   struct object *o;
 
   if(!(p->flags & PROGRAM_PASS_1_DONE))
@@ -253,7 +252,6 @@ void call_prog_event(struct object *o, int event)
   /* clear globals and call C initializers */
   for(e=p->num_inherits-1; e>=0; e--)
   {
-    int q;
     SET_FRAME_CONTEXT(p->inherits[e]);
 
     if(pike_frame->context.prog->event_handler)
@@ -417,7 +415,6 @@ static struct pike_string *low_read_file(char *file)
 PMOD_EXPORT struct object *get_master(void)
 {
   extern char *master_file;
-  struct pike_string *master_name;
   static int inside=0;
 
   if(master_object && master_object->prog)
diff --git a/src/opcodes.c b/src/opcodes.c
index 7c002960f0dc1d02c6b7f9f60ec18c9e83e5127e..b7ab72864d5a51b1c13b8855cb48219e8896bff7 100644
--- a/src/opcodes.c
+++ b/src/opcodes.c
@@ -27,7 +27,7 @@
 #include "bignum.h"
 #include "operators.h"
 
-RCSID("$Id: opcodes.c,v 1.115 2001/07/31 19:31:21 marcus Exp $");
+RCSID("$Id: opcodes.c,v 1.116 2001/09/24 14:58:05 grubba Exp $");
 
 void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind)
 {
@@ -379,8 +379,6 @@ void o_cast_to_string(void)
 
 void o_cast(struct pike_type *type, INT32 run_time_type)
 {
-  INT32 i;
-
   if(run_time_type != sp[-1].type)
   {
     if(run_time_type == T_MIXED)
@@ -501,8 +499,10 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 	    break;
 	    
 	  case T_STRING:
-	    f=STRTOD_PCHARP(MKPCHARP(sp[-1].u.string->str,
-				     sp[-1].u.string->size_shift),0);
+	    f =
+	      (FLOAT_TYPE)STRTOD_PCHARP(MKPCHARP(sp[-1].u.string->str,
+						 sp[-1].u.string->size_shift),
+					0);
 	    free_string(sp[-1].u.string);
 	    break;
 	    
@@ -622,7 +622,7 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 	{
 	  ref_push_array(a);
 	}else{
-	  INT32 e,i;
+	  INT32 e;
 #ifdef PIKE_DEBUG
 	  struct svalue *save_sp=sp+1;
 #endif
@@ -667,7 +667,7 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 	{
 	  ref_push_multiset(m);
 	}else{
-	  INT32 e,i;
+	  INT32 e;
 	  struct array *a;
 #ifdef PIKE_DEBUG
 	  struct svalue *save_sp=sp+1;
@@ -720,7 +720,7 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 	{
 	  ref_push_mapping(m);
 	}else{
-	  INT32 e,i;
+	  INT32 e;
 	  struct keypair *k;
 #ifdef PIKE_DEBUG
 	  struct svalue *save_sp=sp+1;
@@ -1128,7 +1128,6 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)(	 \
   ptrdiff_t cnt, eye, e, field_length = 0;				 \
   int no_assign = 0, minus_flag = 0;					 \
   struct sscanf_set set;						 \
-  struct svalue *argp;							 \
 									 \
 									 \
   set.a = 0;								 \
@@ -1257,7 +1256,9 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)(	 \
 									 \
 	case 'c':							 \
         {								 \
+CHAROPT2(								 \
           int e;							 \
+)									 \
 	  sval.type=T_INT;						 \
 	  sval.subtype=NUMBER_NUMBER;					 \
           if(field_length == -1)					 \
@@ -1293,7 +1294,6 @@ CHAROPT2(								 \
 									 \
 	     while(--field_length >= 0)					 \
 	     {								 \
-	       int lshfun, orfun;					 \
 	       x = input[eye];						 \
 									 \
                DO_IF_BIGNUM(						 \
@@ -1397,8 +1397,9 @@ CHAROPT2(								 \
 	    chars_matched[0]=eye;					 \
 	    return matches;						 \
 	  }								 \
-	  sval.u.float_number=STRTOD_PCHARP(MKPCHARP(input+eye,		 \
-						     INPUT_SHIFT),&t2);	 \
+	  sval.u.float_number =						 \
+	    (FLOAT_TYPE)STRTOD_PCHARP(MKPCHARP(input+eye,		 \
+					       INPUT_SHIFT),&t2);	 \
 	  t = (PIKE_CONCAT(p_wchar, INPUT_SHIFT) *)(t2.ptr);		 \
 	  if(input + eye == t)						 \
 	  {								 \
diff --git a/src/operators.c b/src/operators.c
index 15a674c6c97f633e8166c573a7fbb5d753effab0..98051cae2789749befcb845580a391dedca2ac3d 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.139 2001/07/27 20:40:15 nilsson Exp $");
+RCSID("$Id: operators.c,v 1.140 2001/09/24 15:02:13 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -713,7 +713,6 @@ static node *optimize_eq(node *n)
 static node *optimize_not(node *n)
 {
   node **first_arg, **more_args;
-  int e;
 
   if(count_args(CDR(n))==1)
   {
@@ -1327,7 +1326,6 @@ PMOD_EXPORT void o_and(void)
  */
 static void r_speedup(INT32 args, void (*func)(void))
 {
-  int num;
   struct svalue tmp;
   ONERROR err;
 
@@ -2734,8 +2732,10 @@ PMOD_EXPORT void o_mod(void)
     if(sp[-1].u.float_number == 0.0)
       OP_MODULO_BY_ZERO_ERROR("`%");
     sp--;
-    foo=sp[-1].u.float_number / sp[0].u.float_number;
-    foo=sp[-1].u.float_number - sp[0].u.float_number * floor(foo);
+    foo = DO_NOT_WARN((FLOAT_TYPE)(sp[-1].u.float_number /
+				   sp[0].u.float_number));
+    foo = DO_NOT_WARN((FLOAT_TYPE)(sp[-1].u.float_number -
+				   sp[0].u.float_number * floor(foo)));
     sp[-1].u.float_number=foo;
     return;
   }
@@ -3450,7 +3450,6 @@ static node *optimize_sizeof(node *n)
 
 static int generate_sizeof(node *n)
 {
-  node **arg;
   if(count_args(CDR(n)) != 1) return 0;
   if(do_docode(CDR(n),DO_NOT_COPY) != 1)
     fatal("Count args was wrong in sizeof().\n");
diff --git a/src/pike_search_engine.c b/src/pike_search_engine.c
index 3a67c6efda86a5abf4573a0e5968c2adebe4a013..5490e25b954d80622346ea437176f817953679be 100644
--- a/src/pike_search_engine.c
+++ b/src/pike_search_engine.c
@@ -212,7 +212,6 @@ void NameN(init_memsearch)(
   ptrdiff_t needlelen,
   ptrdiff_t max_haystacklen)
 {
-  enum methods m;
   switch(needlelen)
   {
     case 0:
diff --git a/src/preprocessor.h b/src/preprocessor.h
index a9b93b4b3d17b607f8b8139be1cc9b2cfa549267..8463d6570f312319173e0727f17ebbcdd4ec9b86 100644
--- a/src/preprocessor.h
+++ b/src/preprocessor.h
@@ -1,5 +1,5 @@
 /*
- * $Id: preprocessor.h,v 1.45 2001/08/16 04:38:52 mast Exp $
+ * $Id: preprocessor.h,v 1.46 2001/09/24 14:18:09 grubba Exp $
  *
  * Preprocessor template.
  * Based on cpp.c 1.45
@@ -351,7 +351,7 @@ static ptrdiff_t calcC(struct cpp *this, WCHAR *data, ptrdiff_t len,
     l = STRTOL_PCHARP(p, &p2, 0);
     if(COMPARE_PCHARP(p1,>,p2))
     {
-      push_float(f);
+      push_float(DO_NOT_WARN((FLOAT_TYPE)f));
       pos = ((WCHAR *)p1.ptr) - data;
     }else{
       push_int(l);
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 38d7bac286e6b899b381087823039106bc6e81a4..10fdf8c65a699e14d2598ba72dff87938b1bcc89 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -25,7 +25,7 @@
 #include "main.h"
 #include <signal.h>
 
-RCSID("$Id: signal_handler.c,v 1.201 2001/09/22 12:08:09 grubba Exp $");
+RCSID("$Id: signal_handler.c,v 1.202 2001/09/24 14:39:30 grubba Exp $");
 
 #ifdef HAVE_PASSWD_H
 # include <passwd.h>
@@ -3455,7 +3455,6 @@ static void f_kill(INT32 args)
 
   case T_OBJECT:
   {
-    INT32 pid;
     struct pid_status *p;
     if((p=(struct pid_status *)get_storage(sp[-args].u.object,
 					  pid_status_program)))