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/cmd/utils/customflags.go b/cmd/utils/customflags.go
index a623ae19c2553e059870a3b9e5d8efca5cb71ae4..78a6b8d22036502616259f5da1fa8bd0ccf50fb6 100644
--- a/cmd/utils/customflags.go
+++ b/cmd/utils/customflags.go
@@ -18,11 +18,11 @@ type DirectoryString struct {
 	Value string
 }
 
-func (self DirectoryString) String() string {
+func (self *DirectoryString) String() string {
 	return self.Value
 }
 
-func (self DirectoryString) Set(value string) error {
+func (self *DirectoryString) Set(value string) error {
 	self.Value = expandPath(value)
 	return nil
 }
@@ -72,9 +72,8 @@ func (self DirectoryFlag) Apply(set *flag.FlagSet) {
 	}
 
 	eachName(self.Name, func(name string) {
-		set.Var(self.Value, self.Name, "a: "+self.Usage)
+		set.Var(&self.Value, self.Name, self.Usage)
 	})
-
 }
 
 func prefixFor(name string) (prefix string) {
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()