diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index d37d6f81b8be89d84fdeaa519f3a47d95ba5eabd..66614478c5842d9145d1f157784f92932dcde673 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -238,13 +238,11 @@ func (gui *Gui) insertTransaction(window string, tx *types.Transaction) {
 		inout = "recv"
 	}
 
-	var (
-		ptx  = xeth.NewTx(tx)
-		send = from.Hex()
-		rec  = tx.To().Hex()
-	)
-	ptx.Sender = send
-	ptx.Address = rec
+	ptx := xeth.NewTx(tx)
+	ptx.Sender = from.Hex()
+	if to := tx.To(); to != nil {
+		ptx.Address = to.Hex()
+	}
 
 	if window == "post" {
 		//gui.getObjectByName("transactionView").Call("addTx", ptx, inout)
diff --git a/xeth/types.go b/xeth/types.go
index 7390924740be0e92cea540c2d0b214b9d780154d..1be5e109cab745a0c25b0682f8f45d9da8e68838 100644
--- a/xeth/types.go
+++ b/xeth/types.go
@@ -140,8 +140,11 @@ type Transaction struct {
 
 func NewTx(tx *types.Transaction) *Transaction {
 	hash := tx.Hash().Hex()
-	receiver := tx.To().Hex()
-	if len(receiver) == 0 {
+
+	var receiver string
+	if to := tx.To(); to != nil {
+		receiver = to.Hex()
+	} else {
 		receiver = core.AddressFromMessage(tx).Hex()
 	}
 	sender, _ := tx.From()