diff --git a/substrate/client/consensus/aura/src/lib.rs b/substrate/client/consensus/aura/src/lib.rs
index a77f00d08d3e0ae663d7ab3dbdf61f821209f751..2ed451ef663ed87b6c61efbd6e1714118e0235ac 100644
--- a/substrate/client/consensus/aura/src/lib.rs
+++ b/substrate/client/consensus/aura/src/lib.rs
@@ -371,7 +371,7 @@ where
 	}
 
 	async fn claim_slot(
-		&self,
+		&mut self,
 		_header: &B::Header,
 		slot: Slot,
 		authorities: &Self::AuxData,
@@ -790,7 +790,7 @@ mod tests {
 		let client = peer.client().as_client();
 		let environ = DummyFactory(client.clone());
 
-		let worker = AuraWorker {
+		let mut worker = AuraWorker {
 			client: client.clone(),
 			block_import: client,
 			env: environ,
diff --git a/substrate/client/consensus/babe/src/lib.rs b/substrate/client/consensus/babe/src/lib.rs
index b89fa8f5df65e02807c59fde7a5e899ba97f44f8..90b7523ec18bba4d46ad17c55cd0ace64fee2dba 100644
--- a/substrate/client/consensus/babe/src/lib.rs
+++ b/substrate/client/consensus/babe/src/lib.rs
@@ -723,12 +723,12 @@ where
 	B: BlockT,
 	C: ProvideRuntimeApi<B> + HeaderBackend<B> + HeaderMetadata<B, Error = ClientError>,
 	C::Api: BabeApi<B>,
-	E: Environment<B, Error = Error> + Sync,
+	E: Environment<B, Error = Error> + Send + Sync,
 	E::Proposer: Proposer<B, Error = Error>,
 	I: BlockImport<B> + Send + Sync + 'static,
 	SO: SyncOracle + Send + Clone + Sync,
 	L: sc_consensus::JustificationSyncLink<B>,
-	BS: BackoffAuthoringBlocksStrategy<NumberFor<B>> + Sync,
+	BS: BackoffAuthoringBlocksStrategy<NumberFor<B>> + Send + Sync,
 	Error: std::error::Error + Send + From<ConsensusError> + From<I::Error> + 'static,
 {
 	type Claim = (PreDigest, AuthorityId);
@@ -769,7 +769,7 @@ where
 	}
 
 	async fn claim_slot(
-		&self,
+		&mut self,
 		_parent_header: &B::Header,
 		slot: Slot,
 		epoch_descriptor: &ViableEpochDescriptor<B::Hash, NumberFor<B>, Epoch>,
diff --git a/substrate/client/consensus/slots/src/lib.rs b/substrate/client/consensus/slots/src/lib.rs
index 5ee93d168643702387d0ee1529b8875d66b1a860..12636aae7a4412228ab1da5755c9f82669c469e5 100644
--- a/substrate/client/consensus/slots/src/lib.rs
+++ b/substrate/client/consensus/slots/src/lib.rs
@@ -126,7 +126,7 @@ pub trait SimpleSlotWorker<B: BlockT> {
 
 	/// Tries to claim the given slot, returning an object with claim data if successful.
 	async fn claim_slot(
-		&self,
+		&mut self,
 		header: &B::Header,
 		slot: Slot,
 		aux_data: &Self::AuxData,