Reholding must occur only in the outermost call
Merge branch 'task/implement-compatible-buffer'