diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result
index 8a87852d582d9d9fc71d14fc9bddf984fb47264c..2e393aea9e4b54725e825732501a1a265b62135e 100644
--- a/mysql-test/r/warnings.result
+++ b/mysql-test/r/warnings.result
@@ -313,9 +313,4 @@ ERROR 22001: Data too long for column 'c_tinytext' at row 1
 insert into t2 values(@q);
 ERROR 22001: Data too long for column 'c_tinyblob' at row 1
 drop table t1, t2;
-DROP TABLE t1;
-ERROR 42S02: Unknown table 't1'
-SHOW ERRORS;
-Level	Code	Message
-Error	1051	Unknown table 't1'
 End of 5.0 tests
diff --git a/mysql-test/t/warnings.test b/mysql-test/t/warnings.test
index 176f320e3905021d3b7e02e39b142defca4f9436..12421170eba4af022140564e55434b3cd31090ff 100644
--- a/mysql-test/t/warnings.test
+++ b/mysql-test/t/warnings.test
@@ -225,11 +225,4 @@ insert into t2 values(@q);
 
 drop table t1, t2;
 
-#
-# Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table
-#
---error ER_BAD_TABLE_ERROR
-DROP TABLE t1;
-SHOW ERRORS;
-
 --echo End of 5.0 tests
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 813a0472b7621d1ed740019825ce7a14f9f94999..e752421223a03e03f9c7be79d1f12e40a3db0373 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1995,7 +1995,6 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
   pthread_mutex_unlock(&LOCK_open);
   thd->thread_specific_used|= tmp_table_deleted;
   error= 0;
-  thd->no_warnings_for_error= 0;
   if (wrong_tables.length())
   {
     if (!foreign_key_error)
@@ -2057,6 +2056,7 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
 err_with_placeholders:
   unlock_table_names(thd, tables, (TABLE_LIST*) 0);
   pthread_mutex_unlock(&LOCK_open);
+  thd->no_warnings_for_error= 0;
   DBUG_RETURN(error);
 }
 
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c
index 73d0ab6ce1e73c8a496b42c7acc19829e7183258..b836293442a7819a4d47cc622bf4c44ee92eda40 100644
--- a/tests/mysql_client_test.c
+++ b/tests/mysql_client_test.c
@@ -4769,8 +4769,6 @@ static void test_errors()
   result= mysql_store_result(mysql);
   mytest(result);
 
-  DIE_UNLESS(mysql_num_rows(result) == 1);
-
   (void) my_process_result_set(result);
   mysql_free_result(result);
 }