Index: vehicle.c =================================================================== --- vehicle.c (revision 5910) +++ vehicle.c (working copy) @@ -1577,12 +1577,10 @@ if (flags & DC_EXEC) { w = GetVehicle(_new_vehicle_id); - if (v->type != VEH_Road) { // road vehicles can't be refitted - if (v->cargo_type != w->cargo_type) { - // we can't pay for refitting because we can't estimate refitting costs for a vehicle before it's build - // if we pay for it anyway, the cost and the estimated cost will not be the same and we will have an assert - DoCommand(0, w->index, v->cargo_type, flags, CMD_REFIT_VEH(v->type)); - } + if (v->cargo_type != w->cargo_type) { + // we can't pay for refitting because we can't estimate refitting costs for a vehicle before it's build + // if we pay for it anyway, the cost and the estimated cost will not be the same and we will have an assert + DoCommand(0, w->index, v->cargo_type, flags, CMD_REFIT_VEH(v->type)); } if (v->type == VEH_Train && HASBIT(v->u.rail.flags, VRF_REVERSE_DIRECTION)) { SETBIT(w->u.rail.flags, VRF_REVERSE_DIRECTION);