diff --git a/core/chain_manager.go b/core/chain_manager.go
index edf8825f35986a21fef941d1079dfd41b89704d7..3408b5030b2eb0cbd994ac8835d50c0052edf814 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -522,9 +522,9 @@ type queueEvent struct {
 }
 
 func (self *ChainManager) procFutureBlocks() {
-	blocks := make([]*types.Block, len(self.futureBlocks.blocks))
+	blocks := []*types.Block{}
 	self.futureBlocks.Each(func(i int, block *types.Block) {
-		blocks[i] = block
+		blocks = append(blocks, block)
 	})
 
 	types.BlockBy(types.Number).Sort(blocks)