summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/order_cmd.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp
index c72f0d087..eefa249e7 100644
--- a/src/order_cmd.cpp
+++ b/src/order_cmd.cpp
@@ -428,10 +428,10 @@ StationIDStack OrderList::GetNextStoppingStation(const Vehicle *v, const Order *
hops);
const Order *advance = this->GetNextDecisionNode(
this->GetNext(next), hops);
- if (advance == NULL) {
- next = skip_to;
- } else if (skip_to == NULL) {
- next = advance;
+ if (advance == NULL || advance == first) {
+ next = (skip_to == first) ? NULL : skip_to;
+ } else if (skip_to == NULL || skip_to == first) {
+ next = (advance == first) ? NULL : advance;
} else {
StationIDStack st1 = this->GetNextStoppingStation(v, skip_to);
StationIDStack st2 = this->GetNextStoppingStation(v, advance);