>Thanks guys for your help. I really appreciate it. I'm going to put the suggestions in the below referenced message and link. Changing the SCAN to a DO WHILE is a very easy test. Checking that every single object is explicitly released rather than going out of scope is more tedious, but doable and worthwhile. I found it interesting that Bruce used MORE SQL in his solution. I remembered a KB article about reiterative SQLs with either XX number of joins or using BETWEEN() or something like that causing C5 problems and was about to try to strip more SQL out of my code.
>
>I'll give these two a try. Thanks again.
>
>Any other/further suggestions are greatly appreciated.
>
>Christian Berrigan
>
Why not skip the scan / endscan and go to a for / endfor.
Now break the iterations down to half the volitle #.
none_left=.f.
do while ! none_left
for i= 1 to 700 or eof()
call your process here
if eof()
none_left=.t.
endif
endfor
enddo