select vin_ref, thisform.yGetAging()as vin_aging from scvndino *yGetAging Method* with thisform do case case vin_duedate >= .ydDate return 'Current' case between(vin_duedate,.ydDate-10,.ydDate - 1) return '1 - 10' case between(vin_duedate,.ydDate-20,.ydDate - 11) return '11 - 20' case between(vin_duedate,.ydDate-30,.ydDate - 21) return '21 - 30' case between(vin_duedate,.ydDate-60,.ydDate - 31) return '31 - 60' case between(vin_duedate,.ydDate-90,.ydDate - 61) return '61 - 90' case between(vin_duedate,.ydDate-120,.ydDate - 91) return '91- 120' otherwise return '121+' endcase endwithPrior to VFP 9 this worked fine. I am finding now that the record pointer in the scvndino table is not on the correct record anymore in the method. If the select statement is going through a hundred records this method returns the results for the first record in the table all 100 times.