diff --git a/sql/log_event.cc b/sql/log_event.cc
index 7a4d14d101aa8d7e3416e0b50e0451fc4236f8b3..087e58a7bad9588488edd7de7fb22e4bf26e35ca 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -1416,7 +1416,9 @@ Load_log_event::Load_log_event(THD *thd_arg, sql_exchange *ex,
 			       List<Item> &fields_arg,
 			       enum enum_duplicates handle_dup,
 			       bool using_trans)
-  :Log_event(thd_arg, 0, using_trans), thread_id(thd_arg->thread_id),
+  :Log_event(thd_arg, !thd_arg->tmp_table_used ?
+	     0 : LOG_EVENT_THREAD_SPECIFIC_F, using_trans),
+   thread_id(thd_arg->thread_id),
    slave_proxy_id(thd_arg->variables.pseudo_thread_id),
    num_fields(0),fields(0),
    field_lens(0),field_block_len(0),
@@ -1606,6 +1608,9 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db,
             commented ? "# " : "",
             db);
 
+  if (flags & LOG_EVENT_THREAD_SPECIFIC_F)
+    fprintf(file,"%sSET @@session.pseudo_thread_id=%lu;\n",
+            commented ? "# " : "", (ulong)thread_id);
   fprintf(file, "%sLOAD DATA ",
           commented ? "# " : "");
   if (check_fname_outside_temp_buf())