diff -r 320132f2b0c0 -r 66a54e0c1c4a src/order_cmd.cpp --- a/src/order_cmd.cpp Tue Dec 11 03:41:33 2007 +0000 +++ b/src/order_cmd.cpp Tue Dec 11 17:44:55 2007 +0000 @@ -676,7 +676,7 @@ if (sel_ord >= v->num_orders) return CMD_ERROR; order = GetVehicleOrder(v, sel_ord); - if (order->type != OT_GOTO_STATION && + if ((order->type != OT_GOTO_STATION || GetStation(order->dest)->IsBuoy()) && (order->type != OT_GOTO_DEPOT || p2 == OFB_UNLOAD) && (order->type != OT_GOTO_WAYPOINT || p2 != OFB_NON_STOP)) { return CMD_ERROR;