diff --git a/mysql-test/include/wait_for_binlog_event.inc b/mysql-test/include/wait_for_binlog_event.inc
new file mode 100644
index 0000000000000000000000000000000000000000..2a57c1914131e65f908ec6477056cc5ce8979004
--- /dev/null
+++ b/mysql-test/include/wait_for_binlog_event.inc
@@ -0,0 +1,33 @@
+# include/wait_for_binlog_event.inc
+#
+# SUMMARY
+#
+#    Waits until SHOW BINLOG EVENTS has returned in last event a specified substring.
+#
+# USAGE
+#
+#    let $wait_binlog_event= DROP;
+#    --source include/wait_for_binlog_event.inc
+
+let $_loop_count= 300;
+let $_last_event= ;
+let $_event_pos= 1;
+
+while (`SELECT INSTR("$_last_event","$wait_binlog_event") = 0`)
+{
+  dec $_loop_count;
+  if (!$_loop_count)
+  {
+    SHOW BINLOG EVENTS;
+    --die ERROR: failed while waiting for $wait_binlog_event in binlog 
+  }
+  real_sleep 0.1;
+  let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos);
+  let $_last_event= $_event;
+  while (`SELECT "$_event" != "No such row"`)
+  {
+    inc $_event_pos;
+    let $_last_event= $_event;
+    let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos);
+  }
+}
diff --git a/mysql-test/suite/binlog/r/binlog_multi_engine.result b/mysql-test/suite/binlog/r/binlog_multi_engine.result
index 13227c5ecb18041a054e1caf2eedae1b9ae56da1..8574a2351a1e4958f5d8bb9fe9eb50ea15c3d5f5 100644
--- a/mysql-test/suite/binlog/r/binlog_multi_engine.result
+++ b/mysql-test/suite/binlog/r/binlog_multi_engine.result
@@ -3,8 +3,8 @@ CREATE TABLE t1b (b INT, c INT) ENGINE=BLACKHOLE;
 CREATE TABLE t1n (e INT, f INT) ENGINE=NDB;
 RESET MASTER;
 SET SESSION BINLOG_FORMAT=STATEMENT;
-INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
+INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
 *** Please look in binlog_multi_engine.test if you have a diff here ****
 START TRANSACTION;
@@ -17,30 +17,28 @@ TRUNCATE t1b;
 TRUNCATE t1n;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	use `test`; BEGIN
 master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	use `test`; COMMIT
-master-bin.000001	#	Query	#	#	use `test`; BEGIN
+master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
-master-bin.000001	#	Query	#	#	use `test`; COMMIT
 master-bin.000001	#	Query	#	#	use `test`; BEGIN
 master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	use `test`; UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f
 master-bin.000001	#	Query	#	#	use `test`; UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c
 master-bin.000001	#	Query	#	#	use `test`; COMMIT
-master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1m
-master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1b
 master-bin.000001	#	Query	#	#	BEGIN
 master-bin.000001	#	Table_map	#	#	table_id: # (test.t1n)
 master-bin.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
 master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Query	#	#	COMMIT
+master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1m
+master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1b
 master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1n
 RESET MASTER;
 SET SESSION BINLOG_FORMAT=MIXED;
-INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
+INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
 UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
 UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
@@ -52,21 +50,19 @@ TRUNCATE t1b;
 TRUNCATE t1n;
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	use `test`; BEGIN
 master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	use `test`; COMMIT
-master-bin.000001	#	Query	#	#	use `test`; BEGIN
-master-bin.000001	#	Query	#	#	use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
-master-bin.000001	#	Query	#	#	use `test`; COMMIT
-master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1m
-master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1b
+master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
 master-bin.000001	#	Query	#	#	BEGIN
 master-bin.000001	#	Table_map	#	#	table_id: # (test.t1n)
 master-bin.000001	#	Table_map	#	#	table_id: # (mysql.ndb_apply_status)
 master-bin.000001	#	Write_rows	#	#	table_id: #
 master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Query	#	#	COMMIT
+master-bin.000001	#	Query	#	#	use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
+master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1m
+master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1b
 master-bin.000001	#	Query	#	#	use `test`; TRUNCATE t1n
 RESET MASTER;
 SET SESSION BINLOG_FORMAT=ROW;
diff --git a/mysql-test/suite/binlog/t/binlog_multi_engine.test b/mysql-test/suite/binlog/t/binlog_multi_engine.test
index 058aca0f71513aad5dd93e27a007905e1464eb3f..bf84eed6ec1a537c38130549375f16537ac83f7b 100644
--- a/mysql-test/suite/binlog/t/binlog_multi_engine.test
+++ b/mysql-test/suite/binlog/t/binlog_multi_engine.test
@@ -15,11 +15,16 @@ RESET MASTER;
 
 SET SESSION BINLOG_FORMAT=STATEMENT;
 
-INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
+INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 
 UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
 
+# Here and below we need to wait when some event appears in binlog
+# to avoid unsrted mixing local events and from NDB
+let $wait_binlog_event= t1m, t1b;
+source include/wait_for_binlog_event.inc;
+
 echo *** Please look in binlog_multi_engine.test if you have a diff here ****;
 START TRANSACTION;
 INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
@@ -27,20 +32,33 @@ UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
 UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
 COMMIT;
 
+let $wait_binlog_event= COMMIT;
+source include/wait_for_binlog_event.inc;
+
 TRUNCATE t1m;
 TRUNCATE t1b;
 TRUNCATE t1n;
 
+let $wait_binlog_event= t1n;
+source include/wait_for_binlog_event.inc;
+
 source include/show_binlog_events.inc;
 
 RESET MASTER;
 
 SET SESSION BINLOG_FORMAT=MIXED;
 
-INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
 INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
+INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
+
+let $wait_binlog_event= t1m;
+source include/wait_for_binlog_event.inc;
+
 INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
 
+let $wait_binlog_event= COMMIT;
+source include/wait_for_binlog_event.inc;
+
 UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
 error ER_BINLOG_LOGGING_IMPOSSIBLE;
 UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
diff --git a/mysql-test/suite/binlog/t/disabled.def b/mysql-test/suite/binlog/t/disabled.def
index a6e73fa31d8788e2eaffea42103a173665f99ff9..888298bbb09e2eebe1471f7dde7bdc4bff6f2b9e 100644
--- a/mysql-test/suite/binlog/t/disabled.def
+++ b/mysql-test/suite/binlog/t/disabled.def
@@ -9,4 +9,3 @@
 #  Do not use any TAB characters for whitespace.
 #
 ##############################################################################
-binlog_multi_engine      : Bug#32663 binlog_multi_engine.test fails randomly
diff --git a/mysql-test/suite/bugs/r/rpl_bug23533.result b/mysql-test/suite/bugs/r/rpl_bug23533.result
new file mode 100644
index 0000000000000000000000000000000000000000..1dda75a69b05a760af0bc091b53de19506e06946
--- /dev/null
+++ b/mysql-test/suite/bugs/r/rpl_bug23533.result
@@ -0,0 +1,23 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+DROP TABLE IF EXISTS t1,t2;
+SET AUTOCOMMIT=0;
+SET GLOBAL max_binlog_cache_size=4096;
+SHOW VARIABLES LIKE 'max_binlog_cache_size';
+Variable_name	Value
+max_binlog_cache_size	4096
+CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TEXT, PRIMARY KEY(a)) ENGINE=InnoDB;
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+1000
+START TRANSACTION;
+CREATE TABLE t2 SELECT * FROM t1;
+ERROR HY000: Writing one row to the row-based binary log failed
+COMMIT;
+SHOW TABLES LIKE 't%';
+Tables_in_test (t%)
+t1
diff --git a/mysql-test/suite/bugs/t/rpl_bug23533.test b/mysql-test/suite/bugs/t/rpl_bug23533.test
new file mode 100644
index 0000000000000000000000000000000000000000..397f1102f0ec3b0f66f4c25e3302793fa105157e
--- /dev/null
+++ b/mysql-test/suite/bugs/t/rpl_bug23533.test
@@ -0,0 +1,43 @@
+#############################################################
+# Author: Serge Kozlov <skozlov@mysql.com>
+# Date:   02/26/2008
+# Purpose: testing bug report
+#  Bug#23533: CREATE SELECT max_binlog_cache_size test 
+#  case needed
+#############################################################
+
+--source include/have_innodb.inc
+--source include/have_binlog_format_row.inc
+--source include/master-slave.inc
+
+
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2;
+--enable_warnings
+
+SET AUTOCOMMIT=0;
+SET GLOBAL max_binlog_cache_size=4096;
+SHOW VARIABLES LIKE 'max_binlog_cache_size';
+
+CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TEXT, PRIMARY KEY(a)) ENGINE=InnoDB;
+
+--disable_query_log
+let $i= 1000;
+while ($i)
+{
+  eval INSERT INTO t1 VALUES($i, REPEAT('x', 4096));
+  dec $i;
+}
+--enable_query_log
+
+SELECT COUNT(*) FROM t1;
+
+# Copied data from t1 into t2 large than max_binlog_cache_size
+START TRANSACTION;
+--error 1534
+CREATE TABLE t2 SELECT * FROM t1;
+COMMIT;
+SHOW TABLES LIKE 't%';
+
+
+# 5.1 End of Test
diff --git a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
index ca06a5a328c35919c3ddd9827f2547789a0f2a97..baa740bf25028bdbecd4c90b7206ac37384165af 100644
--- a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
+++ b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
@@ -23,7 +23,7 @@ start slave;
 let $result_pattern= '%127.0.0.1%root%slave-bin.000001%slave-bin.000001%Yes%Yes%0%0%None%' ;
 
 --source include/wait_slave_status.inc
-flush logs;
+FLUSH LOGS;
 SHOW SLAVE STATUS;
 Slave_IO_State	#
 Master_Host	127.0.0.1
@@ -31,7 +31,7 @@ Master_User	root
 Master_Port	SLAVE_PORT
 Connect_Retry	60
 Master_Log_File	slave-bin.000001
-Read_Master_Log_Pos	216
+Read_Master_Log_Pos	POSITION
 Relay_Log_File	#
 Relay_Log_Pos	#
 Relay_Master_Log_File	slave-bin.000001
@@ -46,7 +46,7 @@ Replicate_Wild_Ignore_Table
 Last_Errno	0
 Last_Error	
 Skip_Counter	0
-Exec_Master_Log_Pos	216
+Exec_Master_Log_Pos	POSITION
 Relay_Log_Space	#
 Until_Condition	None
 Until_Log_File	
diff --git a/mysql-test/suite/rpl/r/rpl_invoked_features.result b/mysql-test/suite/rpl/r/rpl_invoked_features.result
index aed1dcdbb47947b91a195fd2ae48322d3eaf7333..be9169c785b653aa204d4d91cac36fe23d79d7a2 100644
--- a/mysql-test/suite/rpl/r/rpl_invoked_features.result
+++ b/mysql-test/suite/rpl/r/rpl_invoked_features.result
@@ -116,23 +116,23 @@ t12
 t13
 t2
 t3
-SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
+SELECT table_name FROM information_schema.views WHERE table_schema='test';
 table_name
 v1
 v11
-SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
+SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
 trigger_name	event_manipulation	event_object_table
 t11_tr1	INSERT	t11
 t11_tr2	UPDATE	t11
 t1_tr1	INSERT	t1
 t1_tr2	UPDATE	t1
-SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
+SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
 routine_type	routine_name
 FUNCTION	f1
 FUNCTION	f2
 PROCEDURE	p1
 PROCEDURE	p11
-SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
+SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
 event_name	status
 e1	DISABLED
 e11	DISABLED
@@ -276,23 +276,23 @@ t12
 t13
 t2
 t3
-SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
+SELECT table_name FROM information_schema.views WHERE table_schema='test';
 table_name
 v1
 v11
-SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
+SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
 trigger_name	event_manipulation	event_object_table
 t11_tr1	INSERT	t11
 t11_tr2	UPDATE	t11
 t1_tr1	INSERT	t1
 t1_tr2	UPDATE	t1
-SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
+SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
 routine_type	routine_name
 FUNCTION	f1
 FUNCTION	f2
 PROCEDURE	p1
 PROCEDURE	p11
-SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
+SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
 event_name	status
 e1	SLAVESIDE_DISABLED
 e11	SLAVESIDE_DISABLED
diff --git a/mysql-test/suite/rpl/r/rpl_row_view01.result b/mysql-test/suite/rpl/r/rpl_row_view01.result
index a4b8d0a05e331d1265233519bc47fca4f7277752..4dfe5826f3242f9592713490d304b74040e7bf17 100644
--- a/mysql-test/suite/rpl/r/rpl_row_view01.result
+++ b/mysql-test/suite/rpl/r/rpl_row_view01.result
@@ -13,6 +13,7 @@ DROP TABLE IF EXISTS mysqltest1.t3;
 DROP TABLE IF EXISTS mysqltest1.t1;
 DROP TABLE IF EXISTS mysqltest1.t2;
 DROP TABLE IF EXISTS mysqltest1.t4;
+DROP TABLE IF EXISTS mysqltest1.t10;
 CREATE TABLE mysqltest1.t1 (a INT, c CHAR(6),PRIMARY KEY(a));
 CREATE TABLE mysqltest1.t2 (a INT, c CHAR(6),PRIMARY KEY(a));
 CREATE TABLE mysqltest1.t3 (a INT, c CHAR(6), c2 CHAR(6), PRIMARY KEY(a));
@@ -35,6 +36,7 @@ a	c	c2
 1	Thank	GOD
 2	it	is
 3	Friday	TGIF
+CREATE TABLE mysqltest1.t10 (a INT, PRIMARY KEY(a));
 SELECT * FROM mysqltest1.v2;
 qty	price	value
 3	50	150
@@ -98,4 +100,5 @@ DROP TABLE IF EXISTS mysqltest1.t3;
 DROP TABLE IF EXISTS mysqltest1.t1;
 DROP TABLE IF EXISTS mysqltest1.t2;
 DROP TABLE IF EXISTS mysqltest1.t4;
+DROP TABLE IF EXISTS mysqltest1.t10;
 DROP DATABASE mysqltest1;
diff --git a/mysql-test/suite/rpl/t/rpl_change_master.test b/mysql-test/suite/rpl/t/rpl_change_master.test
index 7e4800c5c7735f35cca5044a2b252494da5fe1c2..d0cd40e2e11e0afd4224259eed2a3e4dd63a6b09 100644
--- a/mysql-test/suite/rpl/t/rpl_change_master.test
+++ b/mysql-test/suite/rpl/t/rpl_change_master.test
@@ -15,8 +15,10 @@ connection master;
 insert into t1 values(1);
 insert into t1 values(2);
 save_master_pos;
+let $slave_param= Read_Master_Log_Pos;
+let $slave_param_value= query_get_value(SHOW MASTER STATUS, Position, 1);
 connection slave;
---real_sleep 3 # wait for I/O thread to have read updates
+source include/wait_for_slave_param.inc;
 stop slave;
 source include/show_slave_status2.inc;
 change master to master_user='root';
diff --git a/mysql-test/suite/rpl/t/rpl_drop_temp.test b/mysql-test/suite/rpl/t/rpl_drop_temp.test
index 305c78d3f06c1ecca881bf2b6a0c8a9cfc7f86b7..f06b0951469e4c0b050c54b5445d7f20c7ad008c 100644
--- a/mysql-test/suite/rpl/t/rpl_drop_temp.test
+++ b/mysql-test/suite/rpl/t/rpl_drop_temp.test
@@ -6,19 +6,25 @@
 # to work around NDB's issue with temp tables
 ##############################################
 source include/master-slave.inc;
+source include/have_binlog_format_mixed_or_statement.inc;
+
 --disable_warnings
 create database if not exists mysqltest;
 --enable_warnings
 
 create temporary table mysqltest.t1 (n int)ENGINE=MyISAM;
 create temporary table mysqltest.t2 (n int)ENGINE=MyISAM;
-sync_slave_with_master;
+
 connection master;
 disconnect master;
-connection slave;
---real_sleep 3 # time for DROP to be written
-show status like 'Slave_open_temp_tables';
 
+connection master1;
+# Wait until drop of temp tables appears in binlog
+let $wait_binlog_event= DROP;
+source include/wait_for_binlog_event.inc;
+
+sync_slave_with_master;
+show status like 'Slave_open_temp_tables';
 # Cleanup
 connection default;
 drop database mysqltest;
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
index 750b49f19a97b6a678a8c16f342c9ff6cb28247a..f9f01855aa90ebc7b3c53eaa6bc62b746f300cfb 100644
--- a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
+++ b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
@@ -35,12 +35,35 @@ let $result_pattern= '%127.0.0.1%root%slave-bin.000001%slave-bin.000001%Yes%Yes%
 #
 #  Flush logs of slave
 #
-flush logs;
-sleep 5;
+# Create full loop by following way:
+# 1. Insert into t1 on master (1st).
+# 2. Insert into t1 on slave (2nd) when the event (1st) for t1 replicated.
+# 3. Master waits until the event (2nd) for t1 will be replicated.
+
+--disable_query_log
+CREATE TABLE t1 (a INT KEY) ENGINE= MyISAM;
+let $wait_binlog_event= CREATE TABLE t1;
+--source include/wait_for_binlog_event.inc
+sync_slave_with_master;
+connection master;
+INSERT INTO t1 VALUE(1);
+--enable_query_log
+FLUSH LOGS;
+connection slave;
+let $wait_condition= SELECT COUNT(*) = 1 FROM t1;
+-- source include/wait_condition.inc
+--disable_query_log
+INSERT INTO t1 VALUE(2);
+--enable_query_log
+connection master;
+let $wait_condition= SELECT COUNT(*) = 2 FROM t1;
+-- source include/wait_condition.inc
+--enable_query_log
 
 #
 #  Show status of slave
 #
---replace_result $SLAVE_MYPORT SLAVE_PORT
+let $pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1);
+--replace_result $SLAVE_MYPORT SLAVE_PORT $pos POSITION
 --replace_column 1 # 8 # 9 # 16 # 23 # 33 # 34 # 35 #
 --query_vertical SHOW SLAVE STATUS
diff --git a/mysql-test/suite/rpl/t/rpl_invoked_features.test b/mysql-test/suite/rpl/t/rpl_invoked_features.test
index 17cdc1e61cf67c3ad4abd9062ba2ce175445b98a..e73964a6e142af356495422d6c4a5e966867e3f2 100644
--- a/mysql-test/suite/rpl/t/rpl_invoked_features.test
+++ b/mysql-test/suite/rpl/t/rpl_invoked_features.test
@@ -201,11 +201,16 @@ SET GLOBAL EVENT_SCHEDULER = off;
 
 # Check original objects
 --echo
+--sorted_result
 SHOW TABLES LIKE 't%';
-SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
-SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
-SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
-SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
+--sorted_result
+SELECT table_name FROM information_schema.views WHERE table_schema='test';
+--sorted_result
+SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
+--sorted_result
+SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
+--sorted_result
+SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
 
 # Check original data
 --echo
@@ -228,11 +233,16 @@ SELECT a,b FROM v11 ORDER BY a;
 
 # Check replicated objects
 --echo
+--sorted_result
 SHOW TABLES LIKE 't%';
-SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
-SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
-SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
-SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
+--sorted_result
+SELECT table_name FROM information_schema.views WHERE table_schema='test';
+--sorted_result
+SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
+--sorted_result
+SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
+--sorted_result
+SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
 
 # Check replicated data
 --echo
diff --git a/mysql-test/suite/rpl/t/rpl_relayspace.test b/mysql-test/suite/rpl/t/rpl_relayspace.test
index d4ef2fe59bdfbbe9eea8ce49bed47571fa0d38d5..0fc564cdb46e983b20bd26a1e43cd4dc0bb0a340 100644
--- a/mysql-test/suite/rpl/t/rpl_relayspace.test
+++ b/mysql-test/suite/rpl/t/rpl_relayspace.test
@@ -14,23 +14,10 @@ connection slave;
 reset slave;
 start slave io_thread;
 # Give the I/O thread time to block.
-let $run= 1;
-let $counter= 300;
-while ($run)
-{
-  let $io_state= query_get_value("SHOW SLAVE STATUS", Slave_IO_State, 1);
-  if (`SELECT '$io_state' = 'Waiting for the slave SQL thread to free enough relay log space'`){
-    let $run= 0;
-  }
-  sleep 0.1;
-  if (!$counter){
-   --echo "Failed while waiting for slave IO thread block"
-   SHOW SLAVE STATUS;
-   exit;
-  }
-  dec $counter;
-}
-sleep 2;
+let $slave_param= Slave_IO_State;
+let $slave_param_value= Waiting for the slave SQL thread to free enough relay log space;
+source include/wait_for_slave_param.inc;
+
 # A bug caused the I/O thread to refuse stopping.
 stop slave io_thread;
 reset slave;
diff --git a/mysql-test/suite/rpl/t/rpl_row_view01.test b/mysql-test/suite/rpl/t/rpl_row_view01.test
index 634e3c30cc6240c9d5ff1933bb79400292581f5a..77e4b98f7803fecaa1c7e0b35eb2744b424752ad 100644
--- a/mysql-test/suite/rpl/t/rpl_row_view01.test
+++ b/mysql-test/suite/rpl/t/rpl_row_view01.test
@@ -23,6 +23,7 @@ DROP TABLE IF EXISTS mysqltest1.t3;
 DROP TABLE IF EXISTS mysqltest1.t1;
 DROP TABLE IF EXISTS mysqltest1.t2;
 DROP TABLE IF EXISTS mysqltest1.t4;
+DROP TABLE IF EXISTS mysqltest1.t10;
 
 # Begin test section 1 
 CREATE TABLE mysqltest1.t1 (a INT, c CHAR(6),PRIMARY KEY(a));
@@ -43,12 +44,18 @@ CREATE VIEW mysqltest1.v4 AS SELECT * FROM mysqltest1.v3 WHERE a > 1 WITH LOCAL
 
 SELECT * FROM mysqltest1.v2;
 SELECT * FROM mysqltest1.v1;
-# Had to add a sleep for use with NDB
+
+
+# Had to add a waiting for use with NDB
 # engine. Injector thread would have not 
-# populated biblog and data would not be on 
+# populated binlog and data would not be on 
 # the slave.
-sleep 10;
-sync_slave_with_master;
+
+CREATE TABLE mysqltest1.t10 (a INT, PRIMARY KEY(a));
+let $wait_binlog_event= CREATE TABLE mysqltest1.t10;
+-- source include/wait_for_binlog_event.inc
+--sync_slave_with_master
+
 SELECT * FROM mysqltest1.v2;
 SELECT * FROM mysqltest1.v1;
 connection master;
@@ -82,6 +89,7 @@ DROP TABLE IF EXISTS mysqltest1.t3;
 DROP TABLE IF EXISTS mysqltest1.t1;
 DROP TABLE IF EXISTS mysqltest1.t2;
 DROP TABLE IF EXISTS mysqltest1.t4;
+DROP TABLE IF EXISTS mysqltest1.t10;
 DROP DATABASE mysqltest1;
 sync_slave_with_master;
 
diff --git a/mysql-test/suite/rpl/t/rpl_trunc_temp.test b/mysql-test/suite/rpl/t/rpl_trunc_temp.test
index 28bcb0c06c32a86edf73816dd2b8632c9dccbf3f..93308e3eb3fdb095e6a6bb0fa0ed6be141ed2e12 100644
--- a/mysql-test/suite/rpl/t/rpl_trunc_temp.test
+++ b/mysql-test/suite/rpl/t/rpl_trunc_temp.test
@@ -27,7 +27,12 @@ show status like 'Slave_open_temp_tables';
 
 # Disconnect the master, temp table on slave should dissapear
 disconnect master;
---real_sleep 3 # time for DROP to be read by slave
+
+connection master1;
+# Wait until drop of temp tables appers in binlog
+let $wait_binlog_event= DROP;
+source include/wait_for_binlog_event.inc;
+
 connection slave;
 show status like 'Slave_open_temp_tables';