diff --git a/cmd/blocktest/main.go b/cmd/blocktest/main.go
index 4a05b8bee8ab8e82fb2b010eb758f1e5a7afe3c4..579aa850ada902940a8bbab5999ae39109e1a934 100644
--- a/cmd/blocktest/main.go
+++ b/cmd/blocktest/main.go
@@ -168,7 +168,7 @@ func main() {
 		logger.Flush()
 	}()
 
-	utils.HandleInterrupt()
+	//utils.HandleInterrupt()
 
 	utils.InitConfig(VmType, ConfigFile, Datadir, "ethblocktest")
 
@@ -190,12 +190,17 @@ func main() {
 		MinerThreads: MinerThreads,
 	})
 
+	utils.StartEthereumForTest(ethereum)
 	utils.StartRpc(ethereum, RpcListenAddress, RpcPort)
-	utils.StartEthereum(ethereum)
 
 	ethereum.ChainManager().ResetWithGenesisBlock(blocks[0])
+	// bph := ethereum.ChainManager().GetBlock(blocks[1].Header().ParentHash)
+	// fmt.Println("bph: ", bph)
 
-	// fmt.Println("HURR: ", hex.EncodeToString(ethutil.Encode(blocks[0].RlpData())))
+	//fmt.Println("b0: ", hex.EncodeToString(ethutil.Encode(blocks[0].RlpData())))
+	//fmt.Println("b0: ", hex.EncodeToString(blocks[0].Hash()))
+	//fmt.Println("b1: ", hex.EncodeToString(ethutil.Encode(blocks[1].RlpData())))
+	//fmt.Println("b1: ", hex.EncodeToString(blocks[1].Hash()))
 
 	go ethereum.ChainManager().InsertChain(types.Blocks{blocks[1]})
 	fmt.Println("OK! ")
@@ -254,6 +259,9 @@ func loadBlocksFromTestFile(filePath string) (blocks types.Blocks, err error) {
 	}
 
 	gb := types.NewBlockWithHeader(gbh)
+	//gb.uncles = *new([]*types.Header)
+	//gb.transactions = *new(types.Transactions)
+	gb.Td = new(big.Int)
 	gb.Reward = new(big.Int)
 
 	testBlock := new(types.Block)
diff --git a/cmd/utils/cmd.go b/cmd/utils/cmd.go
index 4188802ac2bb51eb25cfe1418fce3b2a25722845..a7e609af77888b2ceea22a93654e4802747e4b05 100644
--- a/cmd/utils/cmd.go
+++ b/cmd/utils/cmd.go
@@ -133,6 +133,15 @@ func StartEthereum(ethereum *eth.Ethereum) {
 	})
 }
 
+func StartEthereumForTest(ethereum *eth.Ethereum) {
+	clilogger.Infoln("Starting ", ethereum.Name())
+	ethereum.StartForTest()
+	RegisterInterrupt(func(sig os.Signal) {
+		ethereum.Stop()
+		logger.Flush()
+	})
+}
+
 func KeyTasks(keyManager *crypto.KeyManager, KeyRing string, GenAddr bool, SecretFile string, ExportDir string, NonInteractive bool) {
 	var err error
 	switch {
diff --git a/eth/backend.go b/eth/backend.go
index 584d60c7e886b2e2aa75c5fc0873966faf4a3a54..f42ceda69399871d362de89f345839763df6f464 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -275,6 +275,17 @@ func (s *Ethereum) Start() error {
 	return nil
 }
 
+func (s *Ethereum) StartForTest() {
+		jsonlogger.LogJson(&logger.LogStarting{
+		ClientString:    s.net.Name,
+		ProtocolVersion: ProtocolVersion,
+	})
+
+	// Start services
+	s.txPool.Start()
+	s.blockPool.Start()
+}
+
 func (self *Ethereum) SuggestPeer(nodeURL string) error {
 	n, err := discover.ParseNode(nodeURL)
 	if err != nil {