How did this ever work without volatile?