diff --git a/core/state_transition.go b/core/state_transition.go
index 0d79923f2ac7df92a5db07e398f0d651ecd8d376..1f879d9633842db408165a5545c12a5428133f51 100644
--- a/core/state_transition.go
+++ b/core/state_transition.go
@@ -238,20 +238,18 @@ func (st *StateTransition) TransitionDb() (ret []byte, usedGas uint64, failed bo
 	output2 := new(big.Int).SetBytes(input2.Bytes())
 
 	// add transfer log
-	if amount.Cmp(bigZero) > 0 {
-		AddFeeTransferLog(
-			st.state,
-
-			msg.From(),
-			st.evm.Coinbase,
-
-			amount,
-			input1,
-			input2,
-			output1.Sub(output1, amount),
-			output2.Add(output2, amount),
-		)
-	}
+	AddFeeTransferLog(
+		st.state,
+
+		msg.From(),
+		st.evm.Coinbase,
+
+		amount,
+		input1,
+		input2,
+		output1.Sub(output1, amount),
+		output2.Add(output2, amount),
+	)
 
 	return ret, st.gasUsed(), vmerr != nil, err
 }
@@ -348,6 +346,11 @@ func addTransferLog(
 	output1,
 	output2 *big.Int,
 ) {
+	// ignore if amount is 0
+	if amount.Cmp(bigZero) <= 0 {
+		return
+	}
+
 	dataInputs := []*big.Int{
 		amount,
 		input1,