diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result
index e2905ea09047596534dd1dea000cd8b3ae11db0c..1b2a0cc50b257571d35456c153fe71463ce3da20 100644
--- a/mysql-test/r/ps_1general.result
+++ b/mysql-test/r/ps_1general.result
@@ -400,16 +400,16 @@ prepare stmt3 from ' lock tables t1 read ' ;
 ERROR HY000: This command is not supported in the prepared statement protocol yet
 prepare stmt3 from ' unlock tables ' ;
 ERROR HY000: This command is not supported in the prepared statement protocol yet
-prepare stmt1 from ' load data infile ''data.txt''
-into table t1 fields terminated by ''\t'' ';
+prepare stmt1 from ' load data infile ''<MYSQLTEST_VARDIR>/tmp/data.txt''
+     into table t1 fields terminated by ''\t'' ';
 ERROR HY000: This command is not supported in the prepared statement protocol yet
-prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
+prepare stmt1 from ' select * into outfile ''<MYSQLTEST_VARDIR>/tmp/data.txt'' from t1 ';
 execute stmt1 ;
 prepare stmt1 from ' optimize table t1 ' ;
 prepare stmt1 from ' analyze table t1 ' ;
 prepare stmt1 from ' checksum table t1 ' ;
 prepare stmt1 from ' repair table t1 ' ;
-prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
+prepare stmt1 from ' restore table t1 from ''<MYSQLTEST_VARDIR>/tmp/data.txt'' ' ;
 ERROR HY000: This command is not supported in the prepared statement protocol yet
 prepare stmt1 from ' handler t1 open ';
 ERROR HY000: This command is not supported in the prepared statement protocol yet
diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result
index 0a416a20c957b4034d1d0c240b21e21c62d65348..772cedac75197592cc8c26c3f778b0321a5954cf 100644
--- a/mysql-test/r/sp.result
+++ b/mysql-test/r/sp.result
@@ -4342,9 +4342,9 @@ drop procedure if exists bug13012|
 create procedure bug13012()
 BEGIN
 REPAIR TABLE t1;
-BACKUP TABLE t1 to '../../tmp';
+BACKUP TABLE t1 to '<MYSQLTEST_VARDIR>/tmp/';
 DROP TABLE t1;
-RESTORE TABLE t1 FROM '../../tmp';
+RESTORE TABLE t1 FROM '<MYSQLTEST_VARDIR>/tmp/';
 END|
 call bug13012()|
 Table	Op	Msg_type	Msg_text
diff --git a/mysql-test/t/ps_1general.test b/mysql-test/t/ps_1general.test
index 3ad3f394840c51f10912cd755261c5173fb79258..387b3ebdd050ba9f240c48ff7026db19e5833f68 100644
--- a/mysql-test/t/ps_1general.test
+++ b/mysql-test/t/ps_1general.test
@@ -70,71 +70,71 @@ prepare stmt1 from ' select 1 as my_col ' ;
 # prepare with parameter
 prepare stmt1 from ' select ? as my_col ' ;
 # prepare must fail (incomplete statements/wrong syntax)
---error 1064
+--error ER_PARSE_ERROR
 prepare ;
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 ;
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 from ;
---error 1064
+--error ER_PARSE_ERROR
 prepare_garbage stmt1 from ' select 1 ' ;
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 from_garbage ' select 1 ' ;
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 from ' select_garbage 1 ' ;
---error 1064
+--error ER_PARSE_ERROR
 prepare from ' select 1 ' ;
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 ' select 1 ' ;
---error 1064
+--error ER_PARSE_ERROR
 prepare ? from ' select ? as my_col ' ;
 # statement in variable
 set @arg00='select 1 as my_col';
 prepare stmt1 from @arg00;
 # prepare must fail (query variable is empty)
 set @arg00='';
---error 1065
+--error ER_EMPTY_QUERY
 prepare stmt1 from @arg00;
 set @arg00=NULL;
 # prepare must fail (query variable is NULL)
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 from @arg01;
 
 prepare stmt1 from ' select * from t1 where a <= 2 ' ;
 # prepare must fail (column x does not exist)
---error 1054
+--error ER_BAD_FIELD_ERROR
 prepare stmt1 from ' select * from t1 where x <= 2 ' ;
 # cases derived from client_test.c: test_null()
 # prepare must fail (column x does not exist)
---error 1054
+--error ER_BAD_FIELD_ERROR
 prepare stmt1 from ' insert into t1(a,x) values(?,?) ' ;
---error 1054
+--error ER_BAD_FIELD_ERROR
 prepare stmt1 from ' insert into t1(x,a) values(?,?) ' ;
 --disable_warnings
 drop table if exists not_exist ;
 --enable_warnings
 # prepare must fail (table does not exist)
---error 1146
+--error ER_NO_SUCH_TABLE
 prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
 
 # case derived from client_test.c: test_prepare_syntax()
 # prepare must fail (incomplete statement)
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 from ' insert into t1 values(? ' ;
---error 1064
+--error ER_PARSE_ERROR
 prepare stmt1 from ' select a, b from t1
                      where a=? and where ' ;
 
 ################ EXECUTE ################
 # execute must fail (statement never_prepared never prepared)
---error 1243
+--error ER_UNKNOWN_STMT_HANDLER
 execute never_prepared ;
 # execute must fail (prepare stmt1 just failed,
 #         but there was a successful prepare of stmt1 before)
 prepare stmt1 from ' select * from t1 where a <= 2 ' ;
---error 1146
+--error ER_NO_SUCH_TABLE
 prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
---error 1243
+--error ER_UNKNOWN_STMT_HANDLER
 execute stmt1 ;
 
 # drop the table between prepare and execute
@@ -149,7 +149,7 @@ prepare stmt2 from ' select * from t5 ' ;
 execute stmt2 ;
 drop table t5 ;
 # execute must fail (table was dropped after prepare)
---error 1146
+--error ER_NO_SUCH_TABLE
 execute stmt2 ;
 # cases derived from client_test.c: test_select_prepare()
 # 1. drop + create table (same column names/types/order) 
@@ -230,24 +230,24 @@ set @arg01='two' ;
 prepare stmt1 from ' select * from t1 where a <= ? ' ;
 execute stmt1 using @arg00;
 # execute must fail (too small number of parameters)
---error 1210
+--error ER_WRONG_ARGUMENTS
 execute stmt1 ;
 # execute must fail (too big number of parameters)
---error 1210
+--error ER_WRONG_ARGUMENTS
 execute stmt1 using @arg00, @arg01;
 # execute must fail (parameter is not set)
 execute stmt1 using @not_set;
 
 ################ DEALLOCATE ################
 # deallocate must fail (the statement 'never_prepared' was never prepared)
---error 1243
+--error ER_UNKNOWN_STMT_HANDLER
 deallocate prepare never_prepared ;
 # deallocate must fail (prepare stmt1 just failed,
 #         but there was a successful prepare before)
 prepare stmt1 from ' select * from t1 where a <= 2 ' ;
---error 1146
+--error ER_NO_SUCH_TABLE
 prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
---error 1243
+--error ER_UNKNOWN_STMT_HANDLER
 deallocate prepare stmt1;
 create table t5
 (
@@ -345,7 +345,7 @@ drop table if exists t5;
 prepare stmt1 from ' drop table if exists t5 ' ;
 execute stmt1 ;
 prepare stmt1 from ' drop table t5 ' ;
---error 1051
+--error ER_BAD_TABLE_ERROR
 execute stmt1 ;
 
 ## SELECT @@version
@@ -432,7 +432,7 @@ drop database mysqltest ;
 prepare stmt3 from ' describe t2 ';
 execute stmt3;
 drop table t2 ;
---error 1146
+--error ER_NO_SUCH_TABLE
 execute stmt3;
 ## lock/unlock
 --error ER_UNSUPPORTED_PS
@@ -440,18 +440,29 @@ prepare stmt3 from ' lock tables t1 read ' ;
 --error ER_UNSUPPORTED_PS
 prepare stmt3 from ' unlock tables ' ;
 ## Load/Unload table contents
+
+--let $datafile = $MYSQLTEST_VARDIR/tmp/data.txt
+--error 0,1
+--remove_file $datafile
+
+--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
 --error ER_UNSUPPORTED_PS
-prepare stmt1 from ' load data infile ''data.txt''
-into table t1 fields terminated by ''\t'' ';
-prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
-execute stmt1 ;
+eval prepare stmt1 from ' load data infile ''$datafile''
+     into table t1 fields terminated by ''\t'' ';
+--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
+eval prepare stmt1 from ' select * into outfile ''$datafile'' from t1 ';
+     execute stmt1 ;
 ## 
 prepare stmt1 from ' optimize table t1 ' ;
 prepare stmt1 from ' analyze table t1 ' ;
 prepare stmt1 from ' checksum table t1 ' ;
 prepare stmt1 from ' repair table t1 ' ;
+
+--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
 --error ER_UNSUPPORTED_PS
-prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
+eval prepare stmt1 from ' restore table t1 from ''$datafile'' ' ;
+--remove_file $datafile
+
 ## handler
 --error ER_UNSUPPORTED_PS
 prepare stmt1 from ' handler t1 open ';
@@ -566,7 +577,7 @@ drop table if exists new_t2;
 --enable_warnings
 prepare stmt3 from ' rename table t2 to new_t2 ';
 execute stmt3;
---error 1050
+--error ER_TABLE_EXISTS_ERROR
 execute stmt3;
 rename table new_t2 to t2;
 drop table t2;
@@ -577,13 +588,13 @@ create table t5 (a int) ;
 # rename must fail, t7 does not exist
 # Clean up the filename here because embedded server reports whole path
 --replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ '' t7.frm t7
---error 1017
+--error ER_FILE_NOT_FOUND
 execute stmt1 ;
 create table t7 (a int) ;
 # rename, t5 -> t6 and t7 -> t8
 execute stmt1 ;
 # rename must fail, t5 and t7 does not exist t6 and t8 already exist
---error 1050
+--error ER_TABLE_EXISTS_ERROR
 execute stmt1 ;
 rename table t6 to t5, t8 to t7 ;
 # rename, t5 -> t6 and t7 -> t8
diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test
index d57fe7779530d9e7affd7687fb3111a0b2d0e710..b71a9653b7d07d8833c83d335698b7f529cafbe1 100644
--- a/mysql-test/t/sp.test
+++ b/mysql-test/t/sp.test
@@ -1272,7 +1272,7 @@ select *, f8() from v1|
 
 # Let us test what will happen if function is missing
 drop function f1|
---error 1356
+--error ER_VIEW_INVALID
 select * from v1|
 
 # And what will happen if we have recursion which involves
@@ -1311,9 +1311,9 @@ select f0()|
 select * from v0|
 select *, f0() from v0, (select 123) as d1|
 # But these should not !
---error 1100
+--error ER_TABLE_NOT_LOCKED
 select id, f3() from t1|
---error 1100
+--error ER_TABLE_NOT_LOCKED
 select f4()|
 unlock tables|
 
@@ -1323,9 +1323,9 @@ lock tables v2 read, mysql.proc read|
 select * from v2|
 select * from v1|
 # These should not work as we have too little instances of tables locked
---error 1100
+--error ER_TABLE_NOT_LOCKED
 select * from v1, t1|
---error 1100
+--error ER_TABLE_NOT_LOCKED
 select f4()|
 unlock tables|
 
@@ -5255,19 +5255,31 @@ drop procedure bug5967|
 #
 # Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server"
 #
+--let $backupdir = $MYSQLTEST_VARDIR/tmp/
+--error 0,1
+--remove_file $backupdir/t1.frm
+--error 0,1
+--remove_file $backupdir/t1.MYD
+
 --disable_warnings
 drop procedure if exists bug13012|
 # Disable warnings also for BACKUP/RESTORE: they are deprecated.
-create procedure bug13012()
-BEGIN
-  REPAIR TABLE t1;
-  BACKUP TABLE t1 to '../../tmp';
-  DROP TABLE t1;
-  RESTORE TABLE t1 FROM '../../tmp';
-END|
+--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
+eval create procedure bug13012()
+    BEGIN
+       REPAIR TABLE t1;
+       BACKUP TABLE t1 to '$backupdir';
+       DROP TABLE t1;
+       RESTORE TABLE t1 FROM '$backupdir';
+    END|
 call bug13012()|
+
 --enable_warnings
+--remove_file $backupdir/t1.frm
+--remove_file $backupdir/t1.MYD
+
 drop procedure bug13012|
+
 create view v1 as select * from t1|
 create procedure bug13012()
 BEGIN