Index: economy.c =================================================================== --- economy.c (revision 5962) +++ economy.c (working copy) @@ -1345,7 +1345,7 @@ profit += DeliverGoods(v->cargo_count, v->cargo_type, v->cargo_source, last_visited, v->cargo_days); result |= 1; v->cargo_count = 0; - } else if (u->current_order.flags & (OF_UNLOAD | OF_TRANSFER)) { + } else if ((u->current_order.flags & (OF_UNLOAD | OF_TRANSFER)) && !(u->current_order.flags & OF_FULL_LOAD)) { /* unload goods and let it wait at the station */ st->time_since_unload = 0; @@ -1440,6 +1440,9 @@ v = u; + + /* prevent unloading of goods that we picked up later on */ + if ((v->current_order.flags & (OF_FULL_LOAD | OF_TRANSFER)) && !(v->current_order.flags & OF_UNLOAD)) v->current_order.flags |= (OF_FULL_LOAD | OF_TRANSFER); if (v_profit_total > 0) { ShowFeederIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, v_profit_total);