diff --git a/substrate/core/network/src/protocol/sync.rs b/substrate/core/network/src/protocol/sync.rs
index aa4714d0d5aa5cef2a6b0adcaec54930ed196586..12839136a501f968457aa293cc9547377828a6bf 100644
--- a/substrate/core/network/src/protocol/sync.rs
+++ b/substrate/core/network/src/protocol/sync.rs
@@ -704,12 +704,8 @@ impl<B: BlockT> ChainSync<B> {
 								matching_hash,
 								peer.common_number,
 							);
-							let client = &self.client;
 							if peer.common_number < peer.best_number
 								&& peer.best_number < self.best_queued_number
-								&& matching_hash.and_then(
-									|h| client.block_status(&BlockId::Hash(h)).ok()
-								).unwrap_or(BlockStatus::Unknown) != BlockStatus::InChainPruned
 							{
 								trace!(target: "sync", "Added fork target {} for {}" , peer.best_hash, who);
 								self.fork_targets
diff --git a/substrate/core/network/src/test/sync.rs b/substrate/core/network/src/test/sync.rs
index 072099d6f7ff376c4cf2ef58cbed18dae3813034..9868bd0ed2bd9bba2c09646b94fe4eac110402d7 100644
--- a/substrate/core/network/src/test/sync.rs
+++ b/substrate/core/network/src/test/sync.rs
@@ -617,9 +617,9 @@ fn syncs_header_only_forks() {
 	net.peer(1).push_blocks(4, false);
 
 	net.block_until_sync(&mut runtime);
-	// Peer 1 won't sync the small fork because common block state is missing
+	// Peer 1 will sync the small fork even though common block state is missing
 	assert_eq!(9, net.peer(0).blocks_count());
-	assert_eq!(7, net.peer(1).blocks_count());
+	assert_eq!(9, net.peer(1).blocks_count());
 
 	// Request explicit header-only sync request for the ancient fork.
 	let first_peer_id = net.peer(0).id();