diff --git a/lnwallet/channel.go b/lnwallet/channel.go
index <HASH>..<HASH> 100644
--- a/lnwallet/channel.go
+++ b/lnwallet/channel.go
@@ -1421,9 +1421,14 @@ func createCommitTx(fundingOutput *wire.TxIn, selfKey, theirKey *btcec.PublicKey
 	commitTx := wire.NewMsgTx()
 	commitTx.Version = 2
 	commitTx.AddTxIn(fundingOutput)
-	// TODO(roasbeef): don't make 0 BTC output...
-	commitTx.AddTxOut(wire.NewTxOut(int64(amountToSelf), payToUsScriptHash))
-	commitTx.AddTxOut(wire.NewTxOut(int64(amountToThem), theirWitnessKeyHash))
+
+	// Avoid creating zero value outputs within the commitment transaction.
+	if amountToSelf != 0 {
+		commitTx.AddTxOut(wire.NewTxOut(int64(amountToSelf), payToUsScriptHash))
+	}
+	if amountToThem != 0 {
+		commitTx.AddTxOut(wire.NewTxOut(int64(amountToThem), theirWitnessKeyHash))
+	}
 
 	return commitTx, nil
 }
lnwallet: never create zero-value outputs within the commitment transaction