}
// Make a copy of the context item
SequenceIterator currentIterator = context.getCurrentIterator();
if (currentIterator != null) {
Item contextItem = currentIterator.current();
c.savedXPathContext.setCurrentIterator(SingletonIterator.makeIterator(contextItem));
// we don't save position() and last() because we have no way
// of restoring them. So the caller must ensure that a Closure is not
// created if the expression depends on position() or last()
}