diff --git src/simutrans/gui/depot_frame.cc src/simutrans/gui/depot_frame.cc
index ddc7644c9..6234e9fd4 100644
--- src/simutrans/gui/depot_frame.cc
+++ src/simutrans/gui/depot_frame.cc
@@ -39,6 +39,7 @@
 #include "../descriptor/goods_desc.h"
 #include "../descriptor/intro_dates.h"
 #include "../builder/vehikelbauer.h"
+#include "../dataobj/koord3d.h"
 #include "../dataobj/schedule.h"
 #include "../dataobj/translator.h"
 #include "../dataobj/environment.h"
@@ -190,7 +191,7 @@ void depot_frame_t::init(depot_t *dep)
 	set_table_layout(1,0);
 
 	// header with convoi/line selector
-	add_table(4,0);
+	add_table(5,0);
 	// first row
 	/*
 	* [SELECT]:
@@ -198,7 +199,7 @@ void depot_frame_t::init(depot_t *dep)
 	add_component(&lb_convois, 2);
 
 	convoy_selector.add_listener(this);
-	add_component(&convoy_selector);
+	add_component(&convoy_selector, 2);
 
 	// Bolt image for electrified depots:
 	add_component(&img_bolt);
@@ -220,6 +221,15 @@ void depot_frame_t::init(depot_t *dep)
 	line_selector.set_wrapping(false);
 	add_component(&line_selector);
 
+	cbuffer_t tip_nearby_lines;
+	nearby_lines_toggle.set_typ(button_t::square_state);
+	nearby_lines_toggle.set_text("Only nearby lines");
+	// Would be nice to printf() into a tooltip, but I don't know how
+	nearby_lines_toggle.set_tooltip(translator::translate("Only show lines which pass within 42 tiles of the depot"));
+	nearby_lines_toggle.add_listener(this);
+	nearby_lines_toggle.pressed = depot->only_nearby_lines;
+	add_component(&nearby_lines_toggle);
+
 	new_component<gui_empty_t>();
 
 	end_table();
@@ -637,7 +647,22 @@ DBG_DEBUG("depot_frame_t::build_vehicle_lists()","finally %i passenger vehicle,
 
 static void get_line_list(const depot_t* depot, vector_tpl<linehandle_t>* lines)
 {
-	depot->get_owner()->simlinemgmt.get_lines(depot->get_line_type(), lines);
+	if (depot->only_nearby_lines) {
+		vector_tpl<linehandle_t> all_lines;
+		depot->get_owner()->simlinemgmt.get_lines(depot->get_line_type(), &all_lines);
+		// Remove lines that do not pass close enough
+		for (linehandle_t &l : all_lines) {
+			for (schedule_entry_t &entry : l->get_schedule()->entries) {
+				if (koord_distance(depot->get_pos(), entry.pos) <= depot->nearby_line_treshold) {
+					lines->append(l);
+					break;
+				}
+			}
+		}
+	}
+	else {
+				depot->get_owner()->simlinemgmt.get_lines(depot->get_line_type(), lines);
+	}
 }
 
 
@@ -1170,6 +1195,10 @@ bool depot_frame_t::action_triggered( gui_action_creator_t *comp, value_t p)
 				welt->set_dirty();
 			}
 		}
+		else if(  comp == &nearby_lines_toggle  ) {
+			nearby_lines_toggle.pressed = !nearby_lines_toggle.pressed;
+			depot->only_nearby_lines = nearby_lines_toggle.pressed;
+		}
 		else if(  comp == &bt_sell  ) {
 			char tool = (event_get_last_control_shift() ^ tool_t::control_invert)==2 ? 'V' : 'v'; // sell all with CTRL-click
 			depot->call_depot_tool( tool, cnv, NULL);
diff --git src/simutrans/gui/depot_frame.h src/simutrans/gui/depot_frame.h
index 02c2efb95..d445c538f 100644
--- src/simutrans/gui/depot_frame.h
+++ src/simutrans/gui/depot_frame.h
@@ -130,6 +130,7 @@ private:
 	const char* line_seperator;
 
 	gui_combobox_t line_selector;
+	button_t nearby_lines_toggle;
 
 	gui_combobox_t vehicle_filter;
 
diff --git src/simutrans/obj/depot.cc src/simutrans/obj/depot.cc
index d33a2df5c..5f83c4878 100644
--- src/simutrans/obj/depot.cc
+++ src/simutrans/obj/depot.cc
@@ -53,8 +53,9 @@ depot_t::depot_t(loadsave_t *file) : gebaeude_t()
 	selected_filter = VEHICLE_FILTER_RELEVANT;
 	selected_sort_by = SORT_BY_DEFAULT;
 	last_selected_line = linehandle_t();
+	only_nearby_lines = false;
 	command_pending = false;
-	}
+}
 
 
 depot_t::depot_t(koord3d pos, player_t *player, const building_tile_desc_t *t) :
@@ -64,6 +65,7 @@ depot_t::depot_t(koord3d pos, player_t *player, const building_tile_desc_t *t) :
 	selected_filter = VEHICLE_FILTER_RELEVANT;
 	selected_sort_by = SORT_BY_DEFAULT;
 	last_selected_line = linehandle_t();
+	only_nearby_lines = false;
 	command_pending = false;
 	if (depotlist_frame_t* f = (depotlist_frame_t*)win_get_magic(magic_depotlist + player->get_player_nr())) {
 		f->fill_list();
diff --git src/simutrans/obj/depot.h src/simutrans/obj/depot.h
index dd6fb7e03..c3d15574e 100644
--- src/simutrans/obj/depot.h
+++ src/simutrans/obj/depot.h
@@ -53,6 +53,11 @@ public:
 	// Last selected vehicle sort
 	int selected_sort_by;
 
+	// Whether to only show lines passing close to the depot
+	bool only_nearby_lines;
+	// Should it depend on the depot?
+	static const int nearby_line_treshold = 42;
+
 	// finds the next/previous depot relative to the current position
 	static depot_t *find_depot( koord3d start, const obj_t::typ depot_type, const player_t *player, bool next);
 
