diff --git a/substrate/frame/contracts/src/benchmarking/mod.rs b/substrate/frame/contracts/src/benchmarking/mod.rs
index 2ecd56b412decc5d42bc6d072ec18e5123d50ee7..794777ef05cfae248542c61a811875925deaed45 100644
--- a/substrate/frame/contracts/src/benchmarking/mod.rs
+++ b/substrate/frame/contracts/src/benchmarking/mod.rs
@@ -927,7 +927,7 @@ benchmarks! {
 					value: code_hashes_bytes,
 				},
 			],
-			deploy_body: Some(body::repeated_dyn(r, vec![
+			deploy_body: Some(body::repeated_dyn(T::MaxDelegateDependencies::get(), vec![
 				Counter(beneficiary_len as u32, code_hash_len as u32), // code_hash_ptr
 				Regular(Instruction::Call(1)),
 			])),
@@ -943,6 +943,7 @@ benchmarks! {
 		assert_eq!(T::Currency::total_balance(&beneficiary), 0u32.into());
 		assert_eq!(T::Currency::balance(&instance.account_id), Pallet::<T>::min_balance() * 2u32.into());
 		assert_ne!(T::Currency::balance_on_hold(&HoldReason::StorageDepositReserve.into(), &instance.account_id), 0u32.into());
+		assert_eq!(ContractInfoOf::<T>::get(&instance.account_id).unwrap().delegate_dependencies_count() as u32, T::MaxDelegateDependencies::get());
 	}: call(origin, instance.addr.clone(), 0u32.into(), Weight::MAX, None, vec![])
 	verify {
 		if r > 0 {
diff --git a/substrate/frame/contracts/src/storage.rs b/substrate/frame/contracts/src/storage.rs
index 52c5150ca21750f9558eeb0fdc6fe21bb27ed629..e99afd5d42ee4684adc874d68bdba325feb58358 100644
--- a/substrate/frame/contracts/src/storage.rs
+++ b/substrate/frame/contracts/src/storage.rs
@@ -108,6 +108,11 @@ impl<T: Config> ContractInfo<T> {
 		Ok(contract)
 	}
 
+	/// Returns the number of locked delegate dependencies.
+	pub fn delegate_dependencies_count(&self) -> usize {
+		self.delegate_dependencies.len()
+	}
+
 	/// Associated child trie unique id is built from the hash part of the trie id.
 	pub fn child_trie_info(&self) -> ChildInfo {
 		ChildInfo::new_default(self.trie_id.as_ref())