diff --git a/src/simutrans/vehicle/rail_vehicle.cc b/src/simutrans/vehicle/rail_vehicle.cc
index 690119139..ba1044169 100644
--- a/src/simutrans/vehicle/rail_vehicle.cc
+++ b/src/simutrans/vehicle/rail_vehicle.cc
@@ -435,7 +435,7 @@ skip_choose:
 
 		// now we are in a step and can use the route search array
 		route_t target_rt;
-		const int richtung = ribi_type(get_pos(), pos_next); // to avoid confusion at diagonals
+		const int richtung = ribi_type(cnv->get_route()->at(start_block),cnv->get_route()->at(start_block+1)); // to avoid confusion at diagonals
 		if(  !target_rt.find_route( welt, cnv->get_route()->at(start_block), this, speed_to_kmh(cnv->get_min_top_speed()), richtung, welt->get_settings().get_max_choose_route_steps() )  ) {
 			// nothing empty or not route with less than get_max_choose_route_steps() tiles
 			target_halt = halthandle_t();
