diff --git a/core/block_processor.go b/core/block_processor.go
index 4c70872ac1dc5856be6995a77dc28b995d33184b..28636a725dbc2d9d6f87a5f458e675b54c967620 100644
--- a/core/block_processor.go
+++ b/core/block_processor.go
@@ -85,8 +85,8 @@ func (self *BlockProcessor) ApplyTransaction(coinbase *state.StateObject, stated
 	_, gas, err := ApplyMessage(NewEnv(statedb, self.bc, tx, block), tx, cb)
 	if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err) || IsInvalidTxErr(err)) {
 		// If the account is managed, remove the invalid nonce.
-		from, _ := tx.From()
-		self.bc.TxState().RemoveNonce(from, tx.Nonce())
+		//from, _ := tx.From()
+		//self.bc.TxState().RemoveNonce(from, tx.Nonce())
 		return nil, nil, err
 	}
 
diff --git a/core/state/managed_state.go b/core/state/managed_state.go
index 9e6be9980f2be4775cebed733483269e0c1442e7..5114f7a7a844f950fa0ad1384bc47d7e034adec8 100644
--- a/core/state/managed_state.go
+++ b/core/state/managed_state.go
@@ -62,6 +62,7 @@ func (ms *ManagedState) NewNonce(addr common.Address) uint64 {
 		}
 	}
 	account.nonces = append(account.nonces, true)
+
 	return uint64(len(account.nonces)-1) + account.nstart
 }
 
diff --git a/core/transaction_pool.go b/core/transaction_pool.go
index 94a94f93d4269c9623693b92234656c5e75f5aa5..eaddcfa091df891f1d076c4cfa1e82558813d149 100644
--- a/core/transaction_pool.go
+++ b/core/transaction_pool.go
@@ -28,6 +28,8 @@ const txPoolQueueSize = 50
 type TxPoolHook chan *types.Transaction
 type TxMsg struct{ Tx *types.Transaction }
 
+type stateFn func() *state.StateDB
+
 const (
 	minGasPrice = 1000000
 )
@@ -47,7 +49,7 @@ type TxPool struct {
 	// Quiting channel
 	quit chan bool
 	// The state function which will allow us to do some pre checkes
-	currentState func() *state.StateDB
+	currentState stateFn
 	// The actual pool
 	txs           map[common.Hash]*types.Transaction
 	invalidHashes *set.Set
@@ -57,7 +59,7 @@ type TxPool struct {
 	eventMux *event.TypeMux
 }
 
-func NewTxPool(eventMux *event.TypeMux, currentStateFn func() *state.StateDB) *TxPool {
+func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn) *TxPool {
 	return &TxPool{
 		txs:           make(map[common.Hash]*types.Transaction),
 		queueChan:     make(chan *types.Transaction, txPoolQueueSize),