diff --git a/main/manager.c b/main/manager.c
index 8c44f7cbfbfee39f171cb3c2b4f3df2f9210680b..5f976afdccdf7cc143ea421d5eae615133f25f08 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -3317,6 +3317,7 @@ static int action_login(struct mansession *s, const struct message *m)
 	}
 	astman_send_ack(s, m, "Authentication accepted");
 	if ((s->session->send_events & EVENT_FLAG_SYSTEM)
+		&& (s->session->readperm & EVENT_FLAG_SYSTEM)
 		&& ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) {
 		struct ast_str *auth = ast_str_alloca(80);
 		const char *cat_str = authority_to_str(EVENT_FLAG_SYSTEM, &auth);