diff --git a/trie/encoding.go b/trie/encoding.go
index 221fa6d3aa58606c126e69a6dc9b33a44ea46552..5f120de638ce630babe0a18d281c9152ec95013d 100644
--- a/trie/encoding.go
+++ b/trie/encoding.go
@@ -53,10 +53,9 @@ func hexToCompact(hex []byte) []byte {
 
 func compactToHex(compact []byte) []byte {
 	base := keybytesToHex(compact)
-	base = base[:len(base)-1]
-	// apply terminator flag
-	if base[0] >= 2 {
-		base = append(base, 16)
+	// delete terminator flag
+	if base[0] < 2 {
+		base = base[:len(base)-1]
 	}
 	// apply odd flag
 	chop := 2 - base[0]&1