Bill,
It would be most beneficial to diagnosing the problem if you posted the code from your Timer event.
You must treat that code like an interrupt routine, it must save the state of anything it will change, do it's work and then restore the state.
>I've had another think about this - it seems so fundamental that I must be missing something.
>
>If, on a form, I have a timer which selects table B then how can I code this in one of the forms methods:-
>
>1 select A
>2 repl x with .t.
>3 repl y with .f.
>4 gather ...
>
>I have seen instances where it crashed at line 3 because A is no longer the current file.
>
>Using the tables 'again' in the timer doesn't make any difference
>
>Do I have to write all replace commnds with 'repl .... in A'? (there's no such option for gather or scatter).
>
>Does every reference to a field have to have table.field?
>
>Does the timer have to be moved to a different form to allow private data sessions?
>
>Do real programmers use timers or are they just a glitzy trick to catch the naive newcomer?