It is because Checkpoint files are created before _time_old is set for the next timestep, although looking at the code again this doesn't seem to be the case. Anyway, this was the fix needed to get the restart tests working again, otherwise when they restarted everything was one step behind where is should be. I will look again.