diff --git a/sql/handler.h b/sql/handler.h
index ac5dceba8ab57f3afeff52dc54784932efb509af..27ef0e263b67e6567f7fe5d4c013a774725b2116 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -322,11 +322,11 @@ class handler :public Sql_alloc
   {
     return (my_errno=HA_ERR_WRONG_COMMAND);
   }
-  virtual int handler::read_range_first(const key_range *start_key,
+  virtual int read_range_first(const key_range *start_key,
 					const key_range *end_key,
 					bool sorted);
-  virtual int handler::read_range_next(bool eq_range);
-  int handler::compare_key(key_range *range);
+  virtual int read_range_next(bool eq_range);
+  int compare_key(key_range *range);
   virtual int ft_init()
     { return -1; }
   virtual FT_INFO *ft_init_ext(uint flags,uint inx,const byte *key, uint keylen)
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index d654bec4f4e5962ea4971a32d332f3f573810f1e..ef80c060c0394cacda65887d2ab5bc61aec3c2d3 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -96,7 +96,8 @@ class Item_in_optimizer: public Item_bool_func
   bool save_cache;
 public:
   Item_in_optimizer(Item *a, Item_in_subselect *b):
-    Item_bool_func(a, (Item *)b), cache(0), save_cache(0) {}
+    Item_bool_func(a, my_reinterpret_cast(Item *)(b)), cache(0), save_cache(0)
+  {}
   bool fix_fields(THD *, struct st_table_list *, Item **);
   bool fix_left(THD *thd, struct st_table_list *tables, Item **ref);
   bool is_null();
diff --git a/sql/item_subselect.h b/sql/item_subselect.h
index e68c882ba3eaa061fe69498bccc9f3f3aebccf45..6d8f5353695627725c0eb3c7271bd9c17bdc1893 100644
--- a/sql/item_subselect.h
+++ b/sql/item_subselect.h
@@ -140,7 +140,7 @@ class Item_singlerow_subselect :public Item_subselect
   void fix_length_and_dec();
 
   uint cols();
-  Item* el(uint i) { return (Item*)row[i]; }
+  Item* el(uint i) { return my_reinterpret_cast(Item*)(row[i]); }
   Item** addr(uint i) { return (Item**)row + i; }
   bool check_cols(uint c);
   bool null_inside();
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 1233d8608855e205de7f7ee21331f863c3b06fd6..1205eb17357d17f6d475d45277505abde42e0487 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -853,7 +853,7 @@ bool update_sys_var_str(sys_var_str *var_str, rw_lock_t *var_mutex,
   uint new_length= (var ? var->value->str_value.length() : 0);
   if (!old_value)
     old_value= (char*) "";
-  if (!(res= my_strdup_with_length(old_value, new_length, MYF(0))))
+  if (!(res= my_strdup_with_length((byte*)old_value, new_length, MYF(0))))
     return 1;
   /*
     Replace the old value in such a way that the any thread using
diff --git a/sql/spatial.h b/sql/spatial.h
index cf07b364bb30296fdc2603cf55d5531e1497305e..cc1cc70f1bcfd445e44e77f04c325f0d2cc72dd3 100644
--- a/sql/spatial.h
+++ b/sql/spatial.h
@@ -217,7 +217,7 @@ class Geometry
     if (!(ci= find_class((int) type_id)))
       return NULL;
     (*ci->m_create_func)((void *)buffer);
-    return (Geometry *)buffer;
+    return my_reinterpret_cast(Geometry *)(buffer);
   }
 
   static Geometry *create_from_wkb(Geometry_buffer *buffer,
diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc
index 359150cf7169bc8d75b87b2089dfbb16071323ad..d7d4219c7fd4f948a47da2f3f0125ae008e364f4 100644
--- a/sql/sql_cache.cc
+++ b/sql/sql_cache.cc
@@ -661,7 +661,7 @@ void query_cache_end_of_result(THD *thd)
   if (thd->net.query_cache_query != 0)	// Quick check on unlocked structure
   {
 #ifdef EMBEDDED_LIBRARY
-    query_cache_insert(&thd->net, (byte*)thd, 
+    query_cache_insert(&thd->net, (char*)thd, 
 		       emb_count_querycache_size(thd));
 #endif
     STRUCT_LOCK(&query_cache.structure_guard_mutex);
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 50f13a0391c6f79bf466190d427c141c6f4c766f..78bf3bdd5f5713ff8fe65318a916768e24c09274 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -341,12 +341,18 @@ class st_select_lex_unit: public st_select_lex_node {
   bool create_total_list(THD *thd, st_lex *lex, TABLE_LIST **result);
   st_select_lex_unit* master_unit();
   st_select_lex* outer_select();
-  st_select_lex* first_select() { return (st_select_lex*) slave; }
+  st_select_lex* first_select()
+  {
+    return my_reinterpret_cast(st_select_lex*)(slave);
+  }
   st_select_lex* first_select_in_union() 
   { 
-    return (st_select_lex*) slave;
+    return my_reinterpret_cast(st_select_lex*)(slave);
+  }
+  st_select_lex_unit* next_unit()
+  {
+    return my_reinterpret_cast(st_select_lex_unit*)(next);
   }
-  st_select_lex_unit* next_unit() { return (st_select_lex_unit*) next; }
   st_select_lex* return_after_parsing() { return return_to; }
   void exclude_level();
   void exclude_tree();