Ein weiteres Problom könnte sein, dass der Timer bereits wieder ausgelöst wird, während die Timerroutine noch nicht vollständig abgearbeitet ist.
Seit dem ich bei Timerroutinen zuerst den Timer ausschalte und am Ende wieder einschalte, hab' ich das Problem nicht mehr gehabt.
Delphi-Quellcode:
procedure Tform1.tmTimer(Sender: TObject);
begin
tm.Enabled := false;
// tu mal was
tm.Enabled := true;
end;