diff --git a/src/panels/Fahrplan/FahrplanPanel.tsx b/src/panels/Fahrplan/FahrplanPanel.tsx
index fff371529b13b0a377e99cac0f00614f4cdc64ed..1b57af804135627396a20c4c2d95d4f60a493e29 100644
--- a/src/panels/Fahrplan/FahrplanPanel.tsx
+++ b/src/panels/Fahrplan/FahrplanPanel.tsx
@@ -88,7 +88,18 @@ const FahrplanPanel = (props: {definition: FahrplanPanelDefinition}) => {
       }
 
       // Sort the output
-      newRoutes = newRoutes.sort((a, b) => a.countdown - b.countdown)
+      newRoutes = newRoutes.sort((a, b) => {
+        const diff = a.stops[0].arrival.getTime() - b.stops[0].arrival.getTime();
+
+        if(diff !== 0) {
+          return diff;
+        }
+
+        const latestA = Math.max(...a.stops.map(s => s.arrival.getTime()));
+        const latestB = Math.max(...b.stops.map(s => s.arrival.getTime()));
+
+        return latestA - latestB;
+      })
 
       // Write to the display
       setRoutes(newRoutes);