diff --git a/core/chain_manager.go b/core/chain_manager.go
index 7acd171ecc23508a2116f56b7c55556f7bfdf356..7d4aeaab6ef1ed1e4a1ab10d4a1d1ab23cfc3300 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -267,7 +267,10 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
 		}
 
 		self.add(block)
-		self.SetTotalDifficulty(td)
+		if td.Cmp(self.TD) > 0 {
+			self.SetTotalDifficulty(td)
+		}
+
 		self.eventMux.Post(NewBlockEvent{block})
 		self.eventMux.Post(messages)
 	}