diff --git a/ethchain/transaction_pool.go b/ethchain/transaction_pool.go
index 796ec7c9a6f7b40ff7990ac3a58fa168b7cbf6e3..dcf0c4c31bcd4d54db9bdcab5ac73c9215d43ba7 100644
--- a/ethchain/transaction_pool.go
+++ b/ethchain/transaction_pool.go
@@ -81,8 +81,9 @@ func NewTxPool(ethereum EthManager) *TxPool {
 // Blocking function. Don't use directly. Use QueueTransaction instead
 func (pool *TxPool) addTransaction(tx *Transaction) {
 	pool.mutex.Lock()
+	defer pool.mutex.Unlock()
+
 	pool.pool.PushBack(tx)
-	pool.mutex.Unlock()
 
 	// Broadcast the transaction to the rest of the peers
 	pool.Ethereum.Broadcast(ethwire.MsgTxTy, []interface{}{tx.RlpData()})
@@ -182,9 +183,7 @@ out:
 			// Validate the transaction
 			err := pool.ValidateTransaction(tx)
 			if err != nil {
-				if ethutil.Config.Debug {
-					log.Println("Validating Tx failed", err)
-				}
+				ethutil.Config.Log.Debugln("Validating Tx failed", err)
 			} else {
 				// Call blocking version.
 				pool.addTransaction(tx)