diff --git a/mysql-test/r/rpl_rotate_logs.result b/mysql-test/r/rpl_rotate_logs.result
index 741c53fe52bcb4b71ff4a7e5f5a410c7c7ef0179..f49006e8e05f17a90d6ed9156fefe24a8036ac59 100644
--- a/mysql-test/r/rpl_rotate_logs.result
+++ b/mysql-test/r/rpl_rotate_logs.result
@@ -5,7 +5,7 @@ Could not initialize master info structure, check permisions on master.info
 slave start;
 Could not initialize master info structure, check permisions on master.info
 change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
-Could not initialize master info
+Could not initialize master info structure, check permisions on master.info
 reset slave;
 change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
 reset master;
diff --git a/mysql-test/t/rpl_rotate_logs.test b/mysql-test/t/rpl_rotate_logs.test
index 9f7f44d7c289136524693da51be208a7f1a653b4..c4dc5de38da5433e5d761af33226234f2562f352 100644
--- a/mysql-test/t/rpl_rotate_logs.test
+++ b/mysql-test/t/rpl_rotate_logs.test
@@ -16,14 +16,20 @@ system cat /dev/null > var/slave-data/master.info;
 system chmod 000 var/slave-data/master.info;
 connection slave;
 drop table if exists t1, t2, t3, t4;
+# START SLAVE will fail because it can't read the file (mode 000) (system error 13)
 --error 1201
 slave start;
 system chmod 600 var/slave-data/master.info;
+# It will fail again because the file is empty so the slave cannot get valuable
+# info about how to connect to the master from it (failure in
+# init_strvar_from_file() in init_master_info()).
 --error 1201
 slave start;
 --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT
-# Will get error 13 on Unix systems becasue file is not readable
-!eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root';
+# CHANGE MASTER will fail because it first parses master.info before changing it
+# (so when master.info is bad, people have to use RESET SLAVE first).
+--error 1201
+eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root';
 reset slave;
 --replace_result 3306 MASTER_PORT 9306 MASTER_PORT 3334 MASTER_PORT 3336 MASTER_PORT
 eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root'; 
diff --git a/sql/slave.cc b/sql/slave.cc
index dc9ce9715d8957ab312935f83c1032d9288976ec..6c29d1a98bcbc704f1af3763ed4585ea423d96ad 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1644,6 +1644,7 @@ int show_master_info(THD* thd, MASTER_INFO* mi)
 
   if (mi->host[0])
   {
+    DBUG_PRINT("info",("host is set: '%s'", mi->host));
     String *packet= &thd->packet;
     packet->length(0);
   
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index a651d8002fda4cd0de226e65700e1eb7b76294d5..e3af076da1fc8cc31dc552be6323ede944ee68bf 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -828,7 +828,7 @@ int change_master(THD* thd, MASTER_INFO* mi)
   // TODO: see if needs re-write
   if (init_master_info(mi, master_info_file, relay_log_info_file, 0))
   {
-    send_error(&thd->net, 0, "Could not initialize master info");
+    send_error(&thd->net, ER_MASTER_INFO);
     unlock_slave_threads(mi);
     DBUG_RETURN(1);
   }