@@ -522,7 +522,10 @@ static CommandCost ReplaceChain(Vehicle
if ((flags & DC_EXEC) != 0) TransferCargo(w, new_head, true);
cost.AddCost(DoCommand(0, w->index, 0, flags, GetCmdSellVeh(w)));
/* Sell the vehicle.
* Note: This might temporarly construct new trains, so use DC_AUTOREPLACE to prevent
* it from failing due to engine limits. */
cost.AddCost(DoCommand(0, w->index, 0, flags | DC_AUTOREPLACE, GetCmdSellVeh(w)));
if ((flags & DC_EXEC) != 0) {
old_vehs[i] = NULL;
if (i == 0) old_head = NULL;
Status change: