int curidx = focus.incrPosition();
Item it = itor.next();
focus.setContextItem(it);
// REVIEWME workaround for fn:last()
dynEnv.pushSequence(_delegate);
// evaluates predicate
IFocus baseFocus = dynEnv.getFocus();
dynEnv.setFocus(focus); // change focus
Sequence cond = predicate.eval(it, dynEnv);