diff --git a/state/statedb.go b/state/statedb.go
index 1b6e274ded58eb7497ccd47848a72ab8663a9adf..af054ff09a6ea7fc5c2f2e5fe853ceb4b01f92b7 100644
--- a/state/statedb.go
+++ b/state/statedb.go
@@ -31,7 +31,7 @@ type StateDB struct {
 
 // Create a new state from a given trie
 func New(root []byte, db ethutil.Database) *StateDB {
-	trie := trie.New(root, db)
+	trie := trie.New(ethutil.CopyBytes(root), db)
 	return &StateDB{db: db, trie: trie, stateObjects: make(map[string]*StateObject), manifest: NewManifest(), refund: make(map[string]*big.Int)}
 }
 
@@ -234,12 +234,9 @@ func (self *StateDB) Copy() *StateDB {
 }
 
 func (self *StateDB) Set(state *StateDB) {
-	if state == nil {
-		panic("Tried setting 'state' to nil through 'Set'")
-	}
-
 	self.trie = state.trie
 	self.stateObjects = state.stateObjects
+
 	self.refund = state.refund
 	self.logs = state.logs
 }
diff --git a/whisper/message.go b/whisper/message.go
index bbad8e6a3761d2997dfd52fdc09c546ca17e63ec..fa631b2efa0f072633895365eeaa8589c39521dc 100644
--- a/whisper/message.go
+++ b/whisper/message.go
@@ -11,6 +11,7 @@ type Message struct {
 	Flags     byte
 	Signature []byte
 	Payload   []byte
+	Sent      uint64
 }
 
 func NewMessage(payload []byte) *Message {
diff --git a/xeth/whisper.go b/xeth/whisper.go
index 32ad1332b6f28f65349078dbac721dfd9ee960c0..d537f8c54fd7bb05d58bc2fad50631a25161859c 100644
--- a/xeth/whisper.go
+++ b/xeth/whisper.go
@@ -99,16 +99,16 @@ type Options struct {
 
 type WhisperMessage struct {
 	ref     *whisper.Message
-	Flags   int32  `json:"flags"`
 	Payload string `json:"payload"`
 	From    string `json:"from"`
+	Sent    uint64 `json:"time"`
 }
 
 func NewWhisperMessage(msg *whisper.Message) WhisperMessage {
 	return WhisperMessage{
 		ref:     msg,
-		Flags:   int32(msg.Flags),
 		Payload: "0x" + ethutil.Bytes2Hex(msg.Payload),
 		From:    "0x" + ethutil.Bytes2Hex(crypto.FromECDSAPub(msg.Recover())),
+		Sent:    msg.Sent,
 	}
 }