If this is for 10.6, you may try to use Grand Central Dispatch timer instead. I don't know if they suffer the same issue though. But as GCD does not store relative and absolute time (walltime) the same way, it should works out of the box.