diff --git a/ethpub/types.go b/ethpub/types.go
index a7642100734421c57239d71043e6ef46bea2dcce..31b92f6ed6f47e1b143fe56dacf36eb1b3391f15 100644
--- a/ethpub/types.go
+++ b/ethpub/types.go
@@ -104,16 +104,17 @@ type PTx struct {
 func NewPTx(tx *ethchain.Transaction) *PTx {
 	hash := hex.EncodeToString(tx.Hash())
 	receiver := hex.EncodeToString(tx.Recipient)
-
-	if receiver == "" {
+	if receiver == "0000000000000000000000000000000000000000" {
 		receiver = hex.EncodeToString(tx.CreationAddress())
 	}
 	sender := hex.EncodeToString(tx.Sender())
 	createsContract := tx.CreatesContract()
 
-	data := string(tx.Data)
+	var data string
 	if tx.CreatesContract() {
 		data = strings.Join(ethchain.Disassemble(tx.Data), "\n")
+	} else {
+		data = hex.EncodeToString(tx.Data)
 	}
 
 	return &PTx{ref: tx, Hash: hash, Value: ethutil.CurrencyToString(tx.Value), Address: receiver, Contract: tx.CreatesContract(), Gas: tx.Gas.String(), GasPrice: tx.GasPrice.String(), Data: data, Sender: sender, CreatesContract: createsContract, RawData: hex.EncodeToString(tx.Data)}