diff --git a/substrate/core/network/src/protocol/sync.rs b/substrate/core/network/src/protocol/sync.rs
index bd67c6cde7e6c868b95f340cff32ca398c5aee09..625d9a840a3e6f3f4b607dfeb95be133a93a40fb 100644
--- a/substrate/core/network/src/protocol/sync.rs
+++ b/substrate/core/network/src/protocol/sync.rs
@@ -922,10 +922,10 @@ impl<B: BlockT> ChainSync<B> {
 		}
 		// We assume that the announced block is the latest they have seen, and so our common number
 		// is either one further ahead or it's the one they just announced, if we know about it.
-		if header.parent_hash() == &self.best_queued_hash || known_parent {
-			peer.common_number = number - One::one();
-		} else if known {
+		if known {
 			peer.common_number = number
+		} else if header.parent_hash() == &self.best_queued_hash || known_parent {
+			peer.common_number = number - One::one();
 		}
 		self.is_idle = false;