Index: economy.c =================================================================== --- economy.c (revision 5986) +++ 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) && ((u->current_order.flags & OF_TRANSFER) || !(ge->waiting_acceptance & 0x8000))) { /* unload goods and let it wait at the station */ st->time_since_unload = 0; @@ -1440,6 +1440,9 @@ v = u; + + /* don't unload goods after the first tick or we'll unload transfers we just loaded @ accepting */ + if (v->current_order.flags & OF_FULL_LOAD) v->current_order.flags |= OF_TRANSFER; if (v_profit_total > 0) { ShowFeederIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, v_profit_total);