diff --git a/main/manager.c b/main/manager.c
index 5303f18d9f3441fa3c25da9ab314be3e4472df55..6545a519e27f872077876b3b8d305ee0c4c53922 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -3705,6 +3705,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);