Paul, I would think currentByte%=PEEK([handleLength&]+currentPosition%) would work. I am assuming that handleLength& is the handle and not just the size of the handle? I would consider changing currentPosition% to currentPostion& as otherwise, you could get a loop that had no way out in a block over 32K. Hope this helps, George