diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs
index a20e0bd04d2221ab3dfe9008bf02a5aff9ab3a68..85c9417c7e910964d7c772e3d056f96d14772ec6 100644
--- a/pallets/smith-members/src/lib.rs
+++ b/pallets/smith-members/src/lib.rs
@@ -440,6 +440,7 @@ impl<T: Config> Pallet<T> {
             if let Some(smith_meta) = maybe_smith_meta {
                 smith_meta.received_certs.push(issuer);
                 smith_meta.received_certs.sort();
+                let previous_status = smith_meta.status.clone();
                 smith_meta.status =
                     if smith_meta.received_certs.len() >= T::MinCertForMembership::get() as usize {
                         SmithStatus::Smith
@@ -451,7 +452,8 @@ impl<T: Config> Pallet<T> {
                     CurrentSession::<T>::get() + T::SmithInactivityMaxDuration::get();
                 smith_meta.expires_on = Some(new_expires_on);
                 Self::deposit_event(Event::<T>::SmithCertAdded { receiver, issuer });
-                if smith_meta.status == SmithStatus::Smith {
+                if smith_meta.status == SmithStatus::Smith && previous_status != SmithStatus::Smith
+                {
                     Self::deposit_event(Event::<T>::SmithMembershipAdded {
                         idty_index: receiver,
                     });