diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 062fcbd1976b12ca58bcbd44d2d6e35972cbdfce..c3bbae1390c40c93bdd53a6258b9c316959001be 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -4909,6 +4909,9 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
   else // if we run out of slots or we are not using tempool
     sprintf(path,"%s%s%lx_%lx_%x",mysql_tmpdir,tmp_file_prefix,current_pid,
             thd->thread_id, thd->tmp_table++);
+  
+  if (lower_case_table_names)
+    my_casedn_str(files_charset_info, path);
 
   if (group)
   {
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 9fe61e06d83719a8da76b8fb5cdd0ede4c441777..8ed18f5e1254791221c73f97ae0361848ac4b864 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1159,6 +1159,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
     my_snprintf(path, sizeof(path), "%s%s%lx_%lx_%x%s",
 		mysql_tmpdir, tmp_file_prefix, current_pid, thd->thread_id,
 		thd->tmp_table++, reg_ext);
+    if (lower_case_table_names)
+      my_casedn_str(files_charset_info, path);
     create_info->table_options|=HA_CREATE_DELAY_KEY_WRITE;
   }
   else
@@ -2086,6 +2088,8 @@ int mysql_create_like_table(THD* thd, TABLE_LIST* table,
     my_snprintf(dst_path, sizeof(dst_path), "%s%s%lx_%lx_%x%s",
 		mysql_tmpdir, tmp_file_prefix, current_pid,
 		thd->thread_id, thd->tmp_table++, reg_ext);
+    if (lower_case_table_names)
+      my_casedn_str(files_charset_info, dst_path);
     create_info->table_options|= HA_CREATE_DELAY_KEY_WRITE;
   }
   else
@@ -3044,6 +3048,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
   thd->proc_info="rename result table";
   my_snprintf(old_name, sizeof(old_name), "%s2-%lx-%lx", tmp_file_prefix,
 	      current_pid, thd->thread_id);
+  if (lower_case_table_names)
+    my_casedn_str(files_charset_info, old_name);
   if (new_name != table_name || new_db != db)
   {
     if (!access(new_name_buff,F_OK))