diff --git a/bridges/primitives/runtime/src/chain.rs b/bridges/primitives/runtime/src/chain.rs
index eba3bcadfead084878e456ebe8d69cc69d015da0..8dc2a5fb4e797794e5317f99960b5647be8e126a 100644
--- a/bridges/primitives/runtime/src/chain.rs
+++ b/bridges/primitives/runtime/src/chain.rs
@@ -351,7 +351,7 @@ macro_rules! decl_bridge_finality_runtime_apis {
 						$(
 							/// Returns the justifications accepted in the current block.
 							fn [<synced_headers_ $consensus:lower _info>](
-							) -> sp_std::vec::Vec<$justification_type>;
+							) -> $crate::private::Vec<$justification_type>;
 						)?
 					}
 				}
@@ -409,7 +409,7 @@ macro_rules! decl_bridge_messages_runtime_apis {
 							lane: $lane_id_type,
 							begin: bp_messages::MessageNonce,
 							end: bp_messages::MessageNonce,
-						) -> sp_std::vec::Vec<bp_messages::OutboundMessageDetails>;
+						) -> $crate::private::Vec<bp_messages::OutboundMessageDetails>;
 					}
 
 					/// Inbound message lane API for messages sent by this chain.
@@ -423,8 +423,8 @@ macro_rules! decl_bridge_messages_runtime_apis {
 						/// Return details of given inbound messages.
 						fn message_details(
 							lane: $lane_id_type,
-							messages: sp_std::vec::Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
-						) -> sp_std::vec::Vec<bp_messages::InboundMessageDetails>;
+							messages: $crate::private::Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
+						) -> $crate::private::Vec<bp_messages::InboundMessageDetails>;
 					}
 				}
 			}
diff --git a/bridges/primitives/runtime/src/lib.rs b/bridges/primitives/runtime/src/lib.rs
index ca35475f727b28726c3ce7f4e259afa1fb28165f..fc13870904de40f5dac909664d68a46db1c98821 100644
--- a/bridges/primitives/runtime/src/lib.rs
+++ b/bridges/primitives/runtime/src/lib.rs
@@ -52,6 +52,8 @@ pub use storage_proof::{
 };
 pub use storage_types::BoundedStorageValue;
 
+extern crate alloc;
+
 pub mod extensions;
 pub mod messages;
 
@@ -62,6 +64,13 @@ mod storage_types;
 // Re-export macro to avoid include paste dependency everywhere
 pub use sp_runtime::paste;
 
+// Re-export for usage in macro.
+#[doc(hidden)]
+pub mod private {
+	#[doc(hidden)]
+	pub use alloc::vec::Vec;
+}
+
 /// Use this when something must be shared among all instances.
 pub const NO_INSTANCE_ID: ChainId = [0, 0, 0, 0];