> position() is being re-evaluated *inside* the predicate, whereas $pos is not being re-evaluated inside the predicate. Fascinating. Unexpected, but entirely logical. Thanks Ken. Mark