diff --git a/polkadot/xcm/src/v4/mod.rs b/polkadot/xcm/src/v4/mod.rs
index 57840562ba3e4754efea5eb6185f86691bd3c326..2a279f989e9b23084925c1484f7f366c08325080 100644
--- a/polkadot/xcm/src/v4/mod.rs
+++ b/polkadot/xcm/src/v4/mod.rs
@@ -231,15 +231,15 @@ parameter_types! {
 #[derive(Clone, Eq, PartialEq, Encode, Decode, Debug, TypeInfo, MaxEncodedLen)]
 pub struct PalletInfo {
 	#[codec(compact)]
-	index: u32,
-	name: BoundedVec<u8, MaxPalletNameLen>,
-	module_name: BoundedVec<u8, MaxPalletNameLen>,
+	pub index: u32,
+	pub name: BoundedVec<u8, MaxPalletNameLen>,
+	pub module_name: BoundedVec<u8, MaxPalletNameLen>,
 	#[codec(compact)]
-	major: u32,
+	pub major: u32,
 	#[codec(compact)]
-	minor: u32,
+	pub minor: u32,
 	#[codec(compact)]
-	patch: u32,
+	pub patch: u32,
 }
 
 impl TryInto<OldPalletInfo> for PalletInfo {
diff --git a/prdoc/pr_4976.prdoc b/prdoc/pr_4976.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..72b7b92bc47f711a564046349e0b351b08884287
--- /dev/null
+++ b/prdoc/pr_4976.prdoc
@@ -0,0 +1,15 @@
+# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
+# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
+
+title: Add pub to xcm::v4::PalletInfo
+
+doc:
+  - audience: Runtime Dev
+    description: |
+      Forgot to make v4 PalletInfo fields public. Without them we cannot make use of the struct.
+
+crates:
+  - name: staging-xcm
+    bump: patch
+    validate: false
+