I do not think this is correct fix. This is supposed to with situation when time "wraps around" the dword.
The idea here is that most recent entries are in the second half of dword range when it wraps. Anyway, at the moment time already passed them. So they are reset to 0.
Well, anyway, I guess I just do not see the trouble. What do you achieve changing 0x80000000 to 1000000000 ?