diff --git a/pallets/authority-members/src/lib.rs b/pallets/authority-members/src/lib.rs
index 587e82aa343c51fbc62bf36d61d3755a68d536f4..cb02e5b92cde3ec6f3d8287f1675429d1d228192 100644
--- a/pallets/authority-members/src/lib.rs
+++ b/pallets/authority-members/src/lib.rs
@@ -575,18 +575,25 @@ impl<T: Config> pallet_session::SessionManager<T::ValidatorId> for Pallet<T> {
             return None;
         }
 
+        // -- handle incoming members
+        // callback when smith is incoming
         for member_id in members_ids_to_add.iter() {
             T::OnIncomingMember::on_incoming_member(*member_id);
-            Self::deposit_event(Event::IncomingAuthorities {
-                members: members_ids_to_add.clone(),
-            });
         }
+        // a single event with all authorities
+        Self::deposit_event(Event::IncomingAuthorities {
+            members: members_ids_to_add.clone(),
+        });
+
+        // -- handle outgoing members
+        // callback when smith is outgoing
         for member_id in members_ids_to_del.iter() {
             T::OnOutgoingMember::on_outgoing_member(*member_id);
-            Self::deposit_event(Event::OutgoingAuthorities {
-                members: members_ids_to_del.clone(),
-            });
         }
+        // a single event with all authorities
+        Self::deposit_event(Event::OutgoingAuthorities {
+            members: members_ids_to_del.clone(),
+        });
 
         // updates the list of OnlineAuthorities and returns the list of their key
         Some(