"Can't create file 'foobar.frm' (errno: 13)" should be something like "Can't create file 'foobar.frm' (errno: 13 - permission denied)". So error message should be ""Can't create file '%-.64s' (errno: %d - %s)" To be done in 4.1. Note, there're system error messages and handler error messages, check extra/perror.c source code. Problems: 3.23 and 4.0, when run on new errmsg files could crash, as they don't provide an argument for %s. To fix that 3.23 and 4.0 should be fixed to always provide errstr in addition to errno. But error messages in 3.23/4.0 should NOT be changed - so this errstr will be visible on new 4.1 errmsg.sys, and for old errmsg.sys it will be silently. error message length is limited by MYSQL_ERRMSG_SIZE. Longer error messages gets truncated, So, this constant should be increased to 1024 in 4.1. Also my_error() functin uses ERRMSGSIZE - it should be changed to use MYSQL_ERRMSG_SIZE. Probably MYSQL_ERRMSG_SIZE should be increased in 3.23 too - so that old clients wouldn't crash with new server. Or - may be better - use long MYSQL_ERRMSG_SIZE only in new protocol.