FYI, I've committed the attached, from DJ Barrow, to both the HEAD and 5.1 branch. The problem it gets around is painful, there should really be two predicate expressions - one for initialization and one for normal use. enjoy, Andrew