diff --git a/ptrie/iterator.go b/ptrie/iterator.go
index c6d4f64a017243bb53f5b41dd8f94cc1e385889a..5714bdbc8a511b847e47003867feaef87efc517f 100644
--- a/ptrie/iterator.go
+++ b/ptrie/iterator.go
@@ -65,9 +65,9 @@ func (self *Iterator) next(node Node, key []byte) []byte {
 			}
 		} else {
 			cnode := node.Value()
-			skey := key[len(k):]
 
 			var ret []byte
+			skey := key[len(k):]
 			if trie.BeginsWith(key, k) {
 				ret = self.next(cnode, skey)
 			} else if bytes.Compare(k, key[:len(k)]) > 0 {
@@ -93,7 +93,8 @@ func (self *Iterator) key(node Node) []byte {
 
 			return k
 		} else {
-			return self.key(node.Value())
+			k := trie.RemTerm(node.Key())
+			return append(k, self.key(node.Value())...)
 		}
 	case *FullNode:
 		if node.Value() != nil {
diff --git a/ptrie/iterator_test.go b/ptrie/iterator_test.go
index 8921bb67087412a891f15ef918923947fe4d3f75..acfc03d63371d5044584b31cdf93e614aea3e0b2 100644
--- a/ptrie/iterator_test.go
+++ b/ptrie/iterator_test.go
@@ -8,12 +8,17 @@ func TestIterator(t *testing.T) {
 		{"do", "verb"},
 		{"ether", "wookiedoo"},
 		{"horse", "stallion"},
+		{"shaman", "horse"},
+		{"doge", "coin"},
+		{"dog", "puppy"},
+		{"somethingveryoddindeedthis is", "myothernodedata"},
 	}
 	v := make(map[string]bool)
 	for _, val := range vals {
 		v[val.k] = false
 		trie.UpdateString(val.k, val.v)
 	}
+	trie.Commit()
 
 	it := trie.Iterator()
 	for it.Next() {
diff --git a/ptrie/trie_test.go b/ptrie/trie_test.go
index dfc89709d759c5be140f619c8dcf6e16b66708ae..ba50f50a51e0719960f3443bfdbc9a347c972279 100644
--- a/ptrie/trie_test.go
+++ b/ptrie/trie_test.go
@@ -122,7 +122,6 @@ func TestEmptyValues(t *testing.T) {
 }
 
 func TestReplication(t *testing.T) {
-	t.Skip()
 	trie := NewEmpty()
 	vals := []struct{ k, v string }{
 		{"do", "verb"},
@@ -138,7 +137,7 @@ func TestReplication(t *testing.T) {
 	for _, val := range vals {
 		trie.UpdateString(val.k, val.v)
 	}
-	trie.Hash()
+	trie.Commit()
 
 	trie2 := New(trie.roothash, trie.cache.backend)
 	if string(trie2.GetString("horse")) != "stallion" {