diff --git a/mysql-test/r/events.result b/mysql-test/r/events.result
index ecaf1ec252ed3f1dca78c5ed7dd008bc2e563a87..ced214406861667c70252985957c370940768310 100644
--- a/mysql-test/r/events.result
+++ b/mysql-test/r/events.result
@@ -465,4 +465,10 @@ select event_schema, event_name, definer, event_body from information_schema.eve
 event_schema	event_name	definer	event_body
 events_test	white_space	root@localhost	select 3
 drop event white_space;
+create event e1 on schedule every 1 year do set @a = 5;
+create table t1 (s1 int);
+create trigger t1_ai after insert on t1 for each row show create event e1;
+ERROR 0A000: Not allowed to return a result set from a trigger
+drop table t1;
+drop event e1;
 drop database events_test;
diff --git a/mysql-test/r/sp-error.result b/mysql-test/r/sp-error.result
index 5ab8779782aaf12c61ef1979099e4f2c7106aa13..40fe0b09814e12461dd00220d067b4fe81146db5 100644
--- a/mysql-test/r/sp-error.result
+++ b/mysql-test/r/sp-error.result
@@ -1166,3 +1166,10 @@ drop procedure bug15091;
 drop function if exists bug16896;
 create aggregate function bug16896() returns int return 1;
 ERROR 42000: AGGREGATE is not supported for stored functions
+drop function if exists bug16164;
+create function bug16164() returns int
+begin
+show authors;
+return 42;
+end|
+ERROR 0A000: Not allowed to return a result set from a function
diff --git a/mysql-test/t/events.test b/mysql-test/t/events.test
index a261b3c0c11a57bab6a7565544beaa811c17b92d..d9d8d75ff8ca295d7134f7066e6d2cee1dd5210d 100644
--- a/mysql-test/t/events.test
+++ b/mysql-test/t/events.test
@@ -427,6 +427,16 @@ drop event white_space;
 # END:  BUG #17453: Creating Event crash the server
 #
 
+#
+# Bug#17403 "Events: packets out of order with show create event"
+#
+create event e1 on schedule every 1 year do set @a = 5;
+create table t1 (s1 int);
+--error ER_SP_NO_RETSET
+create trigger t1_ai after insert on t1 for each row show create event e1;
+drop table t1;
+drop event e1;
+
 ##set global event_scheduler=1;
 ##select get_lock("test_lock3", 20);
 ##create event 蟹邪泻邪褔泻邪 on schedule every 10 hour do select get_lock("test_lock3", 20);
diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test
index 4b307de2ad0ac6793b428e335afe774bcf41cee4..da40cdf643a5407f1c08322122aa57a09c651c0c 100644
--- a/mysql-test/t/sp-error.test
+++ b/mysql-test/t/sp-error.test
@@ -1691,6 +1691,24 @@ drop function if exists bug16896;
 --error ER_SP_NO_AGGREGATE
 create aggregate function bug16896() returns int return 1;
 
+#
+# End of 5.0 tests
+#
+
+#
+# Bug#16164 "Easter egg": check that SHOW AUTHORS is disabled in
+# stored functions/triggers
+#
+--disable_warnings
+drop function if exists bug16164;
+--enable_warnings
+delimiter |;
+--error ER_SP_NO_RETSET
+create function bug16164() returns int
+begin
+  show authors;
+  return 42;
+end|
 
 #
 # BUG#NNNN: New bug synopsis
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index d97dcc390ca6511ae2dac0c3b8a39b3a0fb68a4c..ea2f67b3ba58998edd4d385cbfd48b77b199607a 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -176,6 +176,7 @@ sp_get_flags_for_command(LEX *lex)
   case SQLCOM_SHOW_CREATE_DB:
   case SQLCOM_SHOW_CREATE_FUNC:
   case SQLCOM_SHOW_CREATE_PROC:
+  case SQLCOM_SHOW_CREATE_EVENT:
   case SQLCOM_SHOW_DATABASES:
   case SQLCOM_SHOW_ERRORS:
   case SQLCOM_SHOW_FIELDS:
@@ -200,6 +201,7 @@ sp_get_flags_for_command(LEX *lex)
   case SQLCOM_SHOW_WARNS:
   case SQLCOM_SHOW_PROC_CODE:
   case SQLCOM_SHOW_FUNC_CODE:
+  case SQLCOM_SHOW_AUTHORS:
   case SQLCOM_REPAIR:
   case SQLCOM_BACKUP_TABLE:
   case SQLCOM_RESTORE_TABLE: