diff --git a/substrate/client/service/src/lib.rs b/substrate/client/service/src/lib.rs
index e631646a7b8487224989f4dbfb3461aef6db0f3a..f61af1f3b549b0ae33f435de373263bb35d09c6d 100644
--- a/substrate/client/service/src/lib.rs
+++ b/substrate/client/service/src/lib.rs
@@ -562,7 +562,7 @@ where
 	fn transaction(&self, hash: &H) -> Option<Arc<B::Extrinsic>> {
 		self.pool.ready_transaction(hash).and_then(
 			// Only propagable transactions should be resolved for network service.
-			|tx| if tx.is_propagable() { Some(Arc::new((**tx.data()).clone())) } else { None },
+			|tx| tx.is_propagable().then(|| { tx.data().clone() }),
 		)
 	}
 }