diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3240,8 +3240,9 @@ static bool TrainCheckIfLineEnds(Vehicle return false; } if ((ts &= (ts >> 16)) == 0) { - /* make a rail/road crossing red */ - if (IsLevelCrossingTile(tile)) { + /* make a rail/road crossing red + * do not make crossing red behind depot the train is entering */ + if (IsLevelCrossingTile(tile) && (GetRailTileType(v->tile) != RAIL_TILE_DEPOT || GetRailDepotDirection(v->tile) == dir)) { if (!IsCrossingBarred(tile)) { BarCrossing(tile); SndPlayVehicleFx(SND_0E_LEVEL_CROSSING, v);