diff --git a/core/block_processor.go b/core/block_processor.go
index 5e943bda5fa9b314b27f2efe112afa684d052508..e48660a67f65d590d21d061dc541768431057020 100644
--- a/core/block_processor.go
+++ b/core/block_processor.go
@@ -204,9 +204,6 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big
 	// Tre receipt Trie's root (R = (Tr [[H1, R1], ... [Hn, R1]]))
 	receiptSha := types.DeriveSha(receipts)
 	if bytes.Compare(receiptSha, header.ReceiptHash) != 0 {
-		fmt.Println("receipts", receipts)
-		state.Sync()
-		chainlogger.Infof("%s\n", state.Dump())
 		err = fmt.Errorf("validating receipt root. received=%x got=%x", header.ReceiptHash, receiptSha)
 		return
 	}
@@ -249,9 +246,14 @@ func (sm *BlockProcessor) ValidateBlock(block, parent *types.Block) error {
 		return fmt.Errorf("Difficulty check failed for block %v, %v", block.Header().Difficulty, expd)
 	}
 
-	expl := CalcGasLimit(parent, block)
-	if expl.Cmp(block.Header().GasLimit) != 0 {
-		return fmt.Errorf("GasLimit check failed for block %v, %v", block.Header().GasLimit, expl)
+	//expl := CalcGasLimit(parent, block)
+	//if expl.Cmp(block.Header().GasLimit) != 0 {
+
+	// block.gasLimit - parent.gasLimit <= parent.gasLimit / 1024
+	a := new(big.Int).Sub(block.Header().GasLimit, parent.Header().GasLimit)
+	b := new(big.Int).Div(parent.Header().GasLimit, big.NewInt(1024))
+	if a.Cmp(b) > 0 {
+		return fmt.Errorf("GasLimit check failed for block %v", block.Header().GasLimit)
 	}
 
 	if block.Time() < parent.Time() {
diff --git a/state/statedb.go b/state/statedb.go
index ee37c2e68e8e28c75ec1a66e394ca44fc6776d41..2ef928a9de5b76140a26078f5cace6600d082967 100644
--- a/state/statedb.go
+++ b/state/statedb.go
@@ -239,6 +239,10 @@ func (s *StateDB) Root() []byte {
 	return s.trie.Root()
 }
 
+func (s *StateDB) Trie() *trie.SecureTrie {
+	return s.trie
+}
+
 // Resets the trie and all siblings
 func (s *StateDB) Reset() {
 	s.trie.Reset()
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index a3eb936167e633503a0b7899a9deac29cb1b3d84..e457991e5f5e54c92a815618733286ee0fe559ba 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -79,6 +79,10 @@ func RunVmTest(p string, t *testing.T) {
 	helper.CreateFileTests(t, p, &tests)
 
 	for name, test := range tests {
+		helper.Logger.SetLogLevel(4)
+		if name != "CallEcrecover0_overlappingInputOutput" {
+			continue
+		}
 		db, _ := ethdb.NewMemDatabase()
 		statedb := state.New(nil, db)
 		for addr, account := range test.Pre {
@@ -177,6 +181,7 @@ func RunVmTest(p string, t *testing.T) {
 				*/
 			}
 		}
+		//statedb.Trie().PrintRoot()
 	}
 	logger.Flush()
 }