diff --git a/pallets/membership/src/benchmarking.rs b/pallets/membership/src/benchmarking.rs
index 531bd3e13f8b4815a4df65d12f4be83864d3cee4..e3a028dbb48fc8dd3fcb6f642bff3303e5bb49cb 100644
--- a/pallets/membership/src/benchmarking.rs
+++ b/pallets/membership/src/benchmarking.rs
@@ -76,9 +76,9 @@ benchmarks_instance_pallet! {
     }: {Pallet::<T, I>::on_initialize(BlockNumberFor::<T>::zero());}
 
     expire_memberships {
-        let i in 0..1024;
+        let i in 0..3; // Limited by the number of validators
         let mut idties: Vec<T::IdtyId> = Vec::new();
-        for j in 0..i {
+        for j in 1..i+1 {
             let j: T::IdtyId = j.into();
             Membership::<T, I>::insert(j, MembershipData::<T::BlockNumber>::default());
             idties.push(j);
diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs
index 284a03244170fa20dc4029b9b1112d843aceca89..08bbb81ad94295f46691fde78233a633b42ad687 100644
--- a/pallets/membership/src/lib.rs
+++ b/pallets/membership/src/lib.rs
@@ -308,7 +308,7 @@ pub mod pallet {
             for idty_id in MembershipsExpireOn::<T, I>::take(block_number) {
                 // remove membership (take)
                 Self::do_remove_membership(idty_id, MembershipRemovalReason::Expired);
-                expired_idty_count = 0;
+                expired_idty_count += 1;
             }
             T::WeightInfo::expire_memberships(expired_idty_count)
         }