diff --git a/polkadot/cli/src/command.rs b/polkadot/cli/src/command.rs
index 10acbb1d7c012ebbb28321ef2ae23fead44ab699..0d6efefbb81671ac71229906aa5efe8660508b4e 100644
--- a/polkadot/cli/src/command.rs
+++ b/polkadot/cli/src/command.rs
@@ -280,6 +280,7 @@ where
 				cli.run.beefy,
 				jaeger_agent,
 				None,
+				false,
 				overseer_gen,
 			)
 			.map(|full| full.task_manager)
diff --git a/polkadot/node/service/src/lib.rs b/polkadot/node/service/src/lib.rs
index 6c9d4b4510bd6f7a6b840df840acec3d6e3e82db..693513c3964d40d5c5638811f511d8d18bb440d0 100644
--- a/polkadot/node/service/src/lib.rs
+++ b/polkadot/node/service/src/lib.rs
@@ -1257,6 +1257,14 @@ pub fn new_chain_ops(
 	Err(Error::NoRuntime)
 }
 
+/// Build a full node.
+///
+/// The actual "flavor", aka if it will use `Polkadot`, `Rococo` or `Kusama` is determined based on
+/// [`IdentifyVariant`] using the chain spec.
+///
+/// `overseer_enable_anyways` always enables the overseer, based on the provided `OverseerGenerator`,
+/// regardless of the role the node has. The relay chain selection (longest or disputes-aware) is
+/// still determined based on the role of the node. Likewise for authority discovery.
 #[cfg(feature = "full-node")]
 pub fn build_full(
 	config: Configuration,
@@ -1265,6 +1273,7 @@ pub fn build_full(
 	enable_beefy: bool,
 	jaeger_agent: Option<std::net::SocketAddr>,
 	telemetry_worker_handle: Option<TelemetryWorkerHandle>,
+	overseer_enable_anyways: bool,
 	overseer_gen: impl OverseerGen,
 ) -> Result<NewFull<Client>, Error> {
 	#[cfg(feature = "rococo-native")]
@@ -1280,7 +1289,7 @@ pub fn build_full(
 			jaeger_agent,
 			telemetry_worker_handle,
 			None,
-			false,
+			overseer_enable_anyways,
 			overseer_gen,
 		)
 		.map(|full| full.with_client(Client::Rococo))
@@ -1296,7 +1305,7 @@ pub fn build_full(
 			jaeger_agent,
 			telemetry_worker_handle,
 			None,
-			false,
+			overseer_enable_anyways,
 			overseer_gen,
 		)
 		.map(|full| full.with_client(Client::Kusama))
@@ -1312,7 +1321,7 @@ pub fn build_full(
 			jaeger_agent,
 			telemetry_worker_handle,
 			None,
-			false,
+			overseer_enable_anyways,
 			overseer_gen,
 		)
 		.map(|full| full.with_client(Client::Westend))
@@ -1328,7 +1337,7 @@ pub fn build_full(
 			jaeger_agent,
 			telemetry_worker_handle,
 			None,
-			false,
+			overseer_enable_anyways,
 			overseer_gen,
 		)
 		.map(|full| full.with_client(Client::Polkadot))
diff --git a/polkadot/parachain/test-parachains/adder/collator/src/main.rs b/polkadot/parachain/test-parachains/adder/collator/src/main.rs
index b1366abccb9de50a4703412aca366fb95b55ff4e..09f307e6fb750b9aa86949bb0464759e4697487d 100644
--- a/polkadot/parachain/test-parachains/adder/collator/src/main.rs
+++ b/polkadot/parachain/test-parachains/adder/collator/src/main.rs
@@ -68,6 +68,7 @@ fn main() -> Result<()> {
 							true,
 							None,
 							None,
+							false,
 							polkadot_service::RealOverseerGen,
 						)
 						.map_err(|e| e.to_string())?;