diff --git a/src/las.c b/src/las.c
index d0559c47de24a4fd29887297c17921552dad9b05..78f48c400c54f4b9be4bb1f532b82549c51bc308 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.214 2000/09/15 11:44:50 grubba Exp $");
+RCSID("$Id: las.c,v 1.215 2000/09/22 12:57:11 grubba Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -4705,8 +4705,8 @@ int dooptcode(struct pike_string *name,
 #endif
 	  ret=define_function(name,
 			      type,
-			      modifiers,
-			    IDENTIFIER_C_FUNCTION | vargs,
+			      (unsigned INT8)modifiers,
+			      (unsigned INT8)(IDENTIFIER_C_FUNCTION | vargs),
 			      &tmp,
 			      foo->u.efun->flags);
 	  free_node(n);
@@ -4737,10 +4737,11 @@ int dooptcode(struct pike_string *name,
   
   ret=define_function(name,
 		      type,
-		      modifiers,
-		      IDENTIFIER_PIKE_FUNCTION | vargs,
+		      (unsigned INT8)modifiers,
+		      (unsigned INT8)(IDENTIFIER_PIKE_FUNCTION | vargs),
 		      &tmp,
-		      Pike_compiler->compiler_frame->opt_flags);
+		      (unsigned INT16)
+		      (Pike_compiler->compiler_frame->opt_flags));
 
 
 #ifdef PIKE_DEBUG
diff --git a/src/peep.c b/src/peep.c
index 7ae84160b4bcfff95f62d770a3ffccbaf57c7b63..7e536b5d8aaed51a176e95c0ee84619ae6282bbf 100644
--- a/src/peep.c
+++ b/src/peep.c
@@ -15,7 +15,7 @@
 #include "bignum.h"
 #include "opcodes.h"
 
-RCSID("$Id: peep.c,v 1.36 2000/08/17 19:15:59 grubba Exp $");
+RCSID("$Id: peep.c,v 1.37 2000/09/22 12:54:10 grubba Exp $");
 
 struct p_instr_s
 {
@@ -171,20 +171,20 @@ static void ins_f_byte_with_arg(unsigned int a,unsigned INT32 b)
     if( b < 256*256)
     {
       ins_f_byte(F_PREFIX_CHARX256);
-      add_to_program(b>>8);
+      add_to_program((unsigned char)(b>>8));
     }else if(b < 256*256*256) {
       ins_f_byte(F_PREFIX_WORDX256);
-      add_to_program(b>>16);
-      add_to_program(b>>8);
+      add_to_program((unsigned char)(b>>16));
+      add_to_program((unsigned char)(b>>8));
     }else{
       ins_f_byte(F_PREFIX_24BITX256);
-      add_to_program(b>>24);
-      add_to_program(b>>16);
-      add_to_program(b>>8);
+      add_to_program((unsigned char)(b>>24));
+      add_to_program((unsigned char)(b>>16));
+      add_to_program((unsigned char)(b>>8));
     }
   }
   ins_f_byte(a);
-  add_to_program(b);
+  add_to_program((unsigned char)b);
 }
 
 static void ins_f_byte_with_2_args(unsigned int a,
@@ -203,20 +203,20 @@ static void ins_f_byte_with_2_args(unsigned int a,
     if( b < 256*256)
     {
       ins_f_byte(F_PREFIX2_CHARX256);
-      add_to_program(b>>8);
+      add_to_program((unsigned char)(b>>8));
     }else if(b < 256*256*256) {
       ins_f_byte(F_PREFIX2_WORDX256);
-      add_to_program(b>>16);
-      add_to_program(b>>8);
+      add_to_program((unsigned char)(b>>16));
+      add_to_program((unsigned char)(b>>8));
     }else{
       ins_f_byte(F_PREFIX2_24BITX256);
-      add_to_program(b>>24);
-      add_to_program(b>>16);
-      add_to_program(b>>8);
+      add_to_program((unsigned char)(b>>24));
+      add_to_program((unsigned char)(b>>16));
+      add_to_program((unsigned char)(b>>8));
     }
   }
   ins_f_byte_with_arg(a,c);
-  add_to_program(b);
+  add_to_program((unsigned char)b);
 }
 
 void assemble(void)
@@ -331,7 +331,7 @@ void assemble(void)
       break;
 
     case F_BYTE:
-      add_to_program(c->arg);
+      add_to_program((unsigned char)(c->arg));
       break;
 
     case F_DATA: