diff --git a/prdoc/pr_6439.prdoc b/prdoc/pr_6439.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..fb3b6252357688b78a3263908107c98ead385e59
--- /dev/null
+++ b/prdoc/pr_6439.prdoc
@@ -0,0 +1,10 @@
+title: 'pallet-membership: Do not verify the `MembershipChanged` in bechmarks'
+doc:
+- audience: Runtime Dev
+  description: |-
+    There is no need to verify in the `pallet-membership` benchmark that the `MemembershipChanged` implementation works as the pallet thinks it should work. If you for example set it to `()`, `get_prime()` will always return `None`.
+
+    TLDR: Remove the checks of `MembershipChanged` in the benchmarks to support any kind of implementation.
+crates:
+- name: pallet-membership
+  bump: patch
diff --git a/substrate/frame/membership/src/benchmarking.rs b/substrate/frame/membership/src/benchmarking.rs
index 515be7eb538609d30b5b616fd11cfff02eba83e1..d752abaae86659bce7d2503dbaf72a264deb7064 100644
--- a/substrate/frame/membership/src/benchmarking.rs
+++ b/substrate/frame/membership/src/benchmarking.rs
@@ -99,7 +99,7 @@ benchmarks_instance_pallet! {
 		assert!(!Members::<T, I>::get().contains(&remove));
 		assert!(Members::<T, I>::get().contains(&add));
 		// prime is rejigged
-		assert!(Prime::<T, I>::get().is_some() && T::MembershipChanged::get_prime().is_some());
+		assert!(Prime::<T, I>::get().is_some());
 		#[cfg(test)] crate::mock::clean();
 	}
 
@@ -119,7 +119,7 @@ benchmarks_instance_pallet! {
 		new_members.sort();
 		assert_eq!(Members::<T, I>::get(), new_members);
 		// prime is rejigged
-		assert!(Prime::<T, I>::get().is_some() && T::MembershipChanged::get_prime().is_some());
+		assert!(Prime::<T, I>::get().is_some());
 		#[cfg(test)] crate::mock::clean();
 	}
 
@@ -157,7 +157,6 @@ benchmarks_instance_pallet! {
 		));
 	} verify {
 		assert!(Prime::<T, I>::get().is_some());
-		assert!(<T::MembershipChanged>::get_prime().is_some());
 		#[cfg(test)] crate::mock::clean();
 	}