diff --git a/train_cmd.c b/train_cmd.c --- a/train_cmd.c +++ b/train_cmd.c @@ -2627,9 +2627,9 @@ static bool CheckCompatibleRail(const Ve Slope tileh = GetTileSlope(tile, &height); // correct Z position of a train going under a bridge on slopes - if (CorrectZ(tileh)) height += TILE_HEIGHT; - - if (v->z_pos != height) return true; // train is going over bridge + if (tileh != SLOPE_FLAT) height += TILE_HEIGHT; + + if (v->z_pos > height) return true; // train is going over bridge } break;