diff --git "a/wcfs/internal/xbtree/\316\264btail.go" "b/wcfs/internal/xbtree/\316\264btail.go"
index 98a3f262bbaf2be4588239360d265101b1c4c50d..0270c8c03578ece6438fe2ddd19fb280f02f57c6 100644
--- "a/wcfs/internal/xbtree/\316\264btail.go"
+++ "b/wcfs/internal/xbtree/\316\264btail.go"
@@ -83,9 +83,6 @@ type ΔTail struct {
 
 	// tracked objects that are not yet taken into in current δBtail
 	trackNew map[zodb.Oid]struct{}	// XXX SetOid
-
-	// index for LastRevOf queries
-	lastRevOf map[zodb.Oid]map[Key]zodb.Tid // {} root -> {} key -> last
 }
 
 // ΔRoots describes which BTrees were change in one revision.
@@ -103,6 +100,9 @@ type ΔTreeTail struct {
 
 	// {}k/v @tail for keys that are changed in (tail, head].
 	KVAtTail map[Key]Value
+
+	// index for LastRevOf queries
+	lastRevOf map[Key]zodb.Tid // {} key -> last
 }
 
 // ΔTree describes changes to one BTree in one revision.
@@ -119,6 +119,7 @@ type ΔTree struct {
 func NewΔTail(at0 zodb.Tid) *ΔTail {
 	return &ΔTail{
 		ΔZtail:   zodb.NewΔTail(at0),
+		byRoot:   make(map[*Tree]*ΔTreeTail),
 		trackIdx: make(map[zodb.Oid]SetTree),
 	}
 }