Index: station_cmd.cpp =================================================================== --- station_cmd.cpp (revision 19209) +++ station_cmd.cpp (working copy) @@ -3175,11 +3175,10 @@ assert(st2 != NULL); assert(best_rating1 != 0 || best_rating2 != 0); - /* the 2nd highest one gets a penalty */ - best_rating2 >>= 1; + /* the 2nd highest one gets a penalty */ /* amount given to station 1 */ - uint t = (best_rating1 * (amount + 1)) / (best_rating1 + best_rating2); + uint t = (best_rating1 * (amount + 1)) / (best_rating1 + (best_rating2 >> 1)); uint moved = 0; if (t != 0) {