diff --git a/mysql-test/r/rpl_flush_tables.result b/mysql-test/r/rpl_flush_tables.result
index ca2e77cac663cf31622bdbf3c6fd4cac0a94665e..667530c4071ea1e5d4132e5873b06a90a8c113e0 100644
--- a/mysql-test/r/rpl_flush_tables.result
+++ b/mysql-test/r/rpl_flush_tables.result
@@ -38,3 +38,9 @@ master-bin.000001	#	Query	1	#	use `test`; rename table t1 to t5, t2 to t1
 master-bin.000001	#	Query	1	#	use `test`; flush tables
 select * from t3;
 a
+stop slave;
+drop table t1;
+flush tables with read lock;
+start slave;
+stop slave;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
diff --git a/mysql-test/t/rpl_flush_tables.test b/mysql-test/t/rpl_flush_tables.test
index 4411d6ea1c9085ab7288962fc3f9a4619cdb48b6..92aef9c85d00a175ec09caf78f1e4fc3921ee114 100644
--- a/mysql-test/t/rpl_flush_tables.test
+++ b/mysql-test/t/rpl_flush_tables.test
@@ -39,5 +39,15 @@ select * from t3;
 # Note that all this confusion may cause warnings 'table xx is open on rename'
 # in the .err files; these are not fatal and are not reported by mysql-test-run.
 
+stop slave;
+connection master;
+drop table t1;
+connection slave;
+flush tables with read lock;
+start slave;
+sleep 1;
+--error 1192
+stop slave;
+
 # End of 4.1 tests
 # Adding comment for force manual merge 5.0 -> wl1012. Delete me if needed.
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 39aad216b401cdc53569381165fa2e2305f55c13..cc5b931493b1c17f39f0dc2fed5e358dfbd317f6 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2944,7 +2944,7 @@ end_with_restore_list:
     To prevent that, refuse SLAVE STOP if the
     client thread has locked tables
   */
-  if (thd->locked_tables || thd->active_transaction())
+  if (thd->locked_tables || thd->active_transaction() || thd->global_read_lock)
   {
     my_message(ER_LOCK_OR_ACTIVE_TRANSACTION,
                ER(ER_LOCK_OR_ACTIVE_TRANSACTION), MYF(0));