Здравствуйте, стоит задача иметь на клиенте всегда актуальное серверное время с минимальной погрешностью. для этого на клиент при инициализации передается время с сервера, и считается его дельта к клиентскому. Далее ,каждую секунду, время обновляется на актуальное:

Код AS3:
private static function tick(t:TimerEvent = null) {
_now = new Date().getTime() + timeDiff;
sendEvent(CLOCK.TICK, now);
}
В теории все должно работать правильно, и время на клиенте всегда должно отставать от серверного на пару секунд. Но на практике время иногда отстает больше чем на минуту, а у некоторых даже обгоняет серверное. Приходится каждую минуту сверяться (при учете пинга). Для меня это большая загадка, если учесть что все обращения ко времени идут после события TICK, и оно на клиенте не может постоянно плавать без перевода часов. Кто сталкивался с подобной проблемой, и есть ли какое-то объяснение и решение?