The smart branch logic assumed b->start refers to the old offsets, while b->start was already adjusted to the new offsets at this point. Delay the change until later.