diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc
index 4199a892e96b54a7b1db79851e2c20368aa9b0d7..a2110bee3394ca3d6cc690723c474ea8541deb69 100644
--- a/client/mysqlbinlog.cc
+++ b/client/mysqlbinlog.cc
@@ -270,7 +270,7 @@ class Load_log_processor
   File prepare_new_file_for_old_format(Load_log_event *le, char *filename);
   int load_old_format_file(NET* net, const char *server_fname,
 			   uint server_fname_len, File file);
-  int process_first_event(const char *bname, uint blen, const char *block,
+  int process_first_event(const char *bname, uint blen, const uchar *block,
                           uint block_len, uint file_id,
                           Create_file_log_event *ce);
 };
@@ -375,7 +375,7 @@ int Load_log_processor::load_old_format_file(NET* net, const char*server_fname,
 */
 
 int Load_log_processor::process_first_event(const char *bname, uint blen,
-                                            const char *block, uint block_len,
+                                            const uchar *block, uint block_len,
                                             uint file_id,
                                             Create_file_log_event *ce)
 {
diff --git a/sql-common/client.c b/sql-common/client.c
index 1a0f9c64d7d13f4ee3cab80533e80b31c9d4dd2a..a26207038cf346a543c47ec36d45d077e741bfbb 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -2100,7 +2100,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
   /* Check if version of protocol matches current one */
 
   mysql->protocol_version= net->read_pos[0];
-  DBUG_DUMP("packet",(char*) net->read_pos,10);
+  DBUG_DUMP("packet",(uchar*) net->read_pos,10);
   DBUG_PRINT("info",("mysql protocol version %d, server=%d",
 		     PROTOCOL_VERSION, mysql->protocol_version));
   if (mysql->protocol_version != PROTOCOL_VERSION)
@@ -2226,7 +2226,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
       Send client_flag, max_packet_size - unencrypted otherwise
       the server does not know we want to do SSL
     */
-    if (my_net_write(net,buff,(uint) (end-buff)) || net_flush(net))
+    if (my_net_write(net, (uchar*) buff, (uint) (end-buff)) || net_flush(net))
     {
       set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
                                ER(CR_SERVER_LOST_EXTENDED),
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 1d1e28593d4f1d073639384c207e80b243871ed4..208bdcedae98238cd00efdd534f9ec167f849fe3 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -967,7 +967,7 @@ get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg,
     *is_null= item->null_value;
   }
   if (*is_null)
-    return -1;
+    return ~(ulonglong) -1;
   /*
     Convert strings to the integer DATE/DATETIME representation.
     Even if both dates provided in strings we can't compare them directly as
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 46ac5e6f5713554c7c81f05a2593e5660fb4ba7e..f31a7452e5632c64b12a15c93bbc85bc02b063fb 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -5069,7 +5069,7 @@ Create_file_log_event(THD* thd_arg, sql_exchange* ex,
 		      const char* db_arg, const char* table_name_arg,
 		      List<Item>& fields_arg, enum enum_duplicates handle_dup,
                       bool ignore,
-		      char* block_arg, uint block_len_arg, bool using_trans)
+		      uchar* block_arg, uint block_len_arg, bool using_trans)
   :Load_log_event(thd_arg,ex,db_arg,table_name_arg,fields_arg,handle_dup, ignore,
 		  using_trans),
    fake_base(0), block(block_arg), event_buf(0), block_len(block_len_arg),
@@ -5168,7 +5168,7 @@ Create_file_log_event::Create_file_log_event(const char* buf, uint len,
                    create_file_header_len + 1);
     if (len < block_offset)
       DBUG_VOID_RETURN;
-    block = (char*)buf + block_offset;
+    block = (uchar*)buf + block_offset;
     block_len = len - block_offset;
   }
   else
@@ -5326,7 +5326,7 @@ int Create_file_log_event::do_apply_event(Relay_log_info const *rli)
 #ifndef MYSQL_CLIENT  
 Append_block_log_event::Append_block_log_event(THD *thd_arg,
                                                const char *db_arg,
-					       char *block_arg,
+					       uchar *block_arg,
 					       uint block_len_arg,
 					       bool using_trans)
   :Log_event(thd_arg,0, using_trans), block(block_arg),
@@ -5352,7 +5352,7 @@ Append_block_log_event::Append_block_log_event(const char* buf, uint len,
   if (len < total_header_len)
     DBUG_VOID_RETURN;
   file_id= uint4korr(buf + common_header_len + AB_FILE_ID_OFFSET);
-  block= (char*)buf + total_header_len;
+  block= (uchar*)buf + total_header_len;
   block_len= len - total_header_len;
   DBUG_VOID_RETURN;
 }
@@ -5744,7 +5744,7 @@ int Execute_load_log_event::do_apply_event(Relay_log_info const *rli)
 
 #ifndef MYSQL_CLIENT
 Begin_load_query_log_event::
-Begin_load_query_log_event(THD* thd_arg, const char* db_arg, char* block_arg,
+Begin_load_query_log_event(THD* thd_arg, const char* db_arg, uchar* block_arg,
                            uint block_len_arg, bool using_trans)
   :Append_block_log_event(thd_arg, db_arg, block_arg, block_len_arg,
                           using_trans)
diff --git a/sql/log_event.h b/sql/log_event.h
index 31c1ab7173a63f2d3a3d96c34d5459b4f25cba0a..efb8675780ec6b7c19369d54617b75644b6eb2fe 100644
--- a/sql/log_event.h
+++ b/sql/log_event.h
@@ -2519,7 +2519,7 @@ class Create_file_log_event: public Load_log_event
   */
   bool fake_base;
 public:
-  char* block;
+  uchar* block;
   const char *event_buf;
   uint block_len;
   uint file_id;
@@ -2530,7 +2530,7 @@ class Create_file_log_event: public Load_log_event
 			const char* table_name_arg,
 			List<Item>& fields_arg,
 			enum enum_duplicates handle_dup, bool ignore,
-			char* block_arg, uint block_len_arg,
+			uchar* block_arg, uint block_len_arg,
 			bool using_trans);
 #ifdef HAVE_REPLICATION
   void pack_info(Protocol* protocol);
@@ -2585,7 +2585,7 @@ class Create_file_log_event: public Load_log_event
 class Append_block_log_event: public Log_event
 {
 public:
-  char* block;
+  uchar* block;
   uint block_len;
   uint file_id;
   /*
@@ -2602,7 +2602,7 @@ class Append_block_log_event: public Log_event
   const char* db;
 
 #ifndef MYSQL_CLIENT
-  Append_block_log_event(THD* thd, const char* db_arg, char* block_arg,
+  Append_block_log_event(THD* thd, const char* db_arg, uchar* block_arg,
 			 uint block_len_arg, bool using_trans);
 #ifdef HAVE_REPLICATION
   void pack_info(Protocol* protocol);
@@ -2726,7 +2726,7 @@ class Begin_load_query_log_event: public Append_block_log_event
 public:
 #ifndef MYSQL_CLIENT
   Begin_load_query_log_event(THD* thd_arg, const char *db_arg,
-                             char* block_arg, uint block_len_arg,
+                             uchar* block_arg, uint block_len_arg,
                              bool using_trans);
 #ifdef HAVE_REPLICATION
   Begin_load_query_log_event(THD* thd);
diff --git a/sql/rpl_utility.cc b/sql/rpl_utility.cc
index b3ca26d4c2c198342cffda792ffded3884550c9a..b548550ef54c4d0b9f1fb4e15d766a0589d42d73 100644
--- a/sql/rpl_utility.cc
+++ b/sql/rpl_utility.cc
@@ -164,7 +164,7 @@ uint32 table_def::calc_field_size(uint col, uchar *master_data) const
     break;
   }
   default:
-    length= -1;
+    length= ~(uint32) -1;
   }
   return length;
 }
diff --git a/sql/slave.cc b/sql/slave.cc
index c6cdd6b9a79c7ccd6a282e9958ef85da247ec05c..f3818b9816568cafe3ab60210edde7704984f652 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -2846,7 +2846,7 @@ static int process_io_create_file(Master_info* mi, Create_file_log_event* cev)
       }
       if (unlikely(cev_not_written))
       {
-        cev->block = (char*)net->read_pos;
+        cev->block = net->read_pos;
         cev->block_len = num_bytes;
         if (unlikely(mi->rli.relay_log.append(cev)))
         {
@@ -2860,7 +2860,7 @@ static int process_io_create_file(Master_info* mi, Create_file_log_event* cev)
       }
       else
       {
-        aev.block = (char*)net->read_pos;
+        aev.block = net->read_pos;
         aev.block_len = num_bytes;
         aev.log_pos = cev->log_pos;
         if (unlikely(mi->rli.relay_log.append(&aev)))
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index 49c4f08929882bf225d6b5ac273670f12cc09b8c..534a8da645fb26a9d8c0027b0c97a1b5c8a22d2a 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -1595,7 +1595,7 @@ int log_loaded_block(IO_CACHE* file)
   LOAD_FILE_INFO *lf_info;
   uint block_len;
   /* buffer contains position where we started last read */
-  char* buffer= my_b_get_buffer_start(file);
+  uchar* buffer= my_b_get_buffer_start(file);
   uint max_event_size= current_thd->variables.max_allowed_packet;
   lf_info= (LOAD_FILE_INFO*) file->arg;
   if (lf_info->thd->current_stmt_binlog_row_based)