diff --git a/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs b/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs
index 4a997666027f07cfc25469ee9150d318c85446ff..f1c48ba9b83040af5d14086924b35e1acb7acd1e 100644
--- a/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs
+++ b/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs
@@ -413,8 +413,9 @@ benchmarks! {
 			executor.set_holding(expected_assets_in_holding.into());
 		}
 
+		let valid_pallet = T::valid_pallet();
 		let instruction = Instruction::QueryPallet {
-			module_name: b"frame_system".to_vec(),
+			module_name: valid_pallet.module_name.as_bytes().to_vec(),
 			response_info: QueryResponseInfo { destination, query_id, max_weight },
 		};
 		let xcm = Xcm(vec![instruction]);
@@ -428,13 +429,13 @@ benchmarks! {
 
 	expect_pallet {
 		let mut executor = new_executor::<T>(Default::default());
-
+		let valid_pallet = T::valid_pallet();
 		let instruction = Instruction::ExpectPallet {
-			index: 0,
-			name: b"System".to_vec(),
-			module_name: b"frame_system".to_vec(),
-			crate_major: 4,
-			min_crate_minor: 0,
+			index: valid_pallet.index as u32,
+			name: valid_pallet.name.as_bytes().to_vec(),
+			module_name: valid_pallet.module_name.as_bytes().to_vec(),
+			crate_major: valid_pallet.crate_version.major.into(),
+			min_crate_minor: valid_pallet.crate_version.minor.into(),
 		};
 		let xcm = Xcm(vec![instruction]);
 	}: {
diff --git a/polkadot/xcm/pallet-xcm-benchmarks/src/generic/mod.rs b/polkadot/xcm/pallet-xcm-benchmarks/src/generic/mod.rs
index cbdfa8d0112cbe7fac6da7160c199f5f4eeda3d6..11f7bba19a9873ec5d21eebec237097958bc461e 100644
--- a/polkadot/xcm/pallet-xcm-benchmarks/src/generic/mod.rs
+++ b/polkadot/xcm/pallet-xcm-benchmarks/src/generic/mod.rs
@@ -91,6 +91,18 @@ pub mod pallet {
 		///
 		/// If set to `Err`, benchmarks which rely on a universal alias will be skipped.
 		fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError>;
+
+		/// Returns a valid pallet info for `ExpectPallet` or `QueryPallet` benchmark.
+		///
+		/// By default returns `frame_system::Pallet` info with expected pallet index `0`.
+		fn valid_pallet() -> frame_support::traits::PalletInfoData {
+			frame_support::traits::PalletInfoData {
+				index: <frame_system::Pallet<Self> as frame_support::traits::PalletInfoAccess>::index(),
+				name: <frame_system::Pallet<Self> as frame_support::traits::PalletInfoAccess>::name(),
+				module_name: <frame_system::Pallet<Self> as frame_support::traits::PalletInfoAccess>::module_name(),
+				crate_version: <frame_system::Pallet<Self> as frame_support::traits::PalletInfoAccess>::crate_version(),
+			}
+		}
 	}
 
 	#[pallet::pallet]