diff --git src/simutrans/ground/grund.cc src/simutrans/ground/grund.cc
index b817a4d5b..834b79d73 100644
--- src/simutrans/ground/grund.cc
+++ src/simutrans/ground/grund.cc
@@ -1773,9 +1773,9 @@ void grund_t::display_overlay(const sint16 xpos, const sint16 ypos)
 				PIXVAL c1 = gfx->palette_lookup( COL_GREEN+2 );
 				PIXVAL c2 = gfx->palette_lookup( COL_GREEN );
 
-				ribi_t::ribi mask = w->get_ribi_maske();
+				ribi_t::ribi mask = w->has_signal() ? w->get_ribi_maske() : w2->get_ribi_maske();
 				if( !mask ) {
-					mask = w->get_ribi_unmasked();
+					mask = w->has_signal() ? w->get_ribi_unmasked() : w2->get_ribi_unmasked();
 				}
 
 				if (sig->get_two_ways()) {
