bActive is false any time songRow is >= the end row of the hold. This was causing the last checkpoint to be missed whenever iFirstRowCrossed == iEndRow