diff --git a/flatland/envs/generators.py b/flatland/envs/generators.py
index a4b627eb197384811220d4b75f8e95a02e724c11..29545eacf0fd51f6e5cda3e29c5791c793eec7e8 100644
--- a/flatland/envs/generators.py
+++ b/flatland/envs/generators.py
@@ -774,6 +774,31 @@ def realistic_rail_generator(nr_start_goal=1, seed=0):
                     agents_targets.append(add_pos)
                     idx_target += 1
 
+            add_max_dead_end = 20
+            for pos_y in np.random.choice(np.arange(width-7)+3,add_max_dead_end,False):
+                pos_x = off_set+1
+                if pos_x < height - 1:
+                    ok = True
+                    for k in range(6):
+                        c = (pos_x,pos_y-k+1)
+                        ok &= grid_map.grid[c[0]][c[1]] == 0
+                    if ok:
+                        if np.random.random() < 0.5:
+                            start_track = (pos_x, pos_y)
+                            goal_track = (pos_x, pos_y - 2)
+                            new_path = connect_rail(rail_trans, rail_array, start_track, goal_track)
+                            if len(new_path) > 0:
+                                c = (pos_x-1, pos_y-1)
+                                make_switch_e_w(width, height, grid_map, c)
+                        else:
+                            start_track = (pos_x, pos_y)
+                            goal_track = (pos_x, pos_y - 2)
+                            new_path = connect_rail(rail_trans, rail_array, start_track, goal_track)
+                            if len(new_path) > 0:
+                                c = (pos_x-1, pos_y+1)
+                                make_switch_w_e(width, height, grid_map, c)
+
+
         agents_position = []
         agents_target = []
         agents_direction = []
diff --git a/tests/test_flatland_env_sparse_rail_generator.py b/tests/test_flatland_env_sparse_rail_generator.py
index 629372131296069813e73e9d81b0dc98dbf292a5..7d1b818cc47f6e717a9da430fecfcdd48b14be4a 100644
--- a/tests/test_flatland_env_sparse_rail_generator.py
+++ b/tests/test_flatland_env_sparse_rail_generator.py
@@ -19,7 +19,7 @@ def test_realistic_rail_generator(vizualization_folder_name=None):
                                   screen_height=1200,
                                   screen_width=1600)
         env_renderer.render_env(show=True, show_observations=True, show_predictions=False)
-
+        env_renderer.close_window()
 
 def test_sparse_rail_generator():
     env = RailEnv(width=50,
@@ -38,3 +38,6 @@ def test_sparse_rail_generator():
     # reset to initialize agents_static
     env_renderer = RenderTool(env, gl="PILSVG", )
     env_renderer.render_env(show=True, show_observations=True, show_predictions=False)
+
+
+test_realistic_rail_generator()