Index: src/lang/english.txt
===================================================================
--- src/lang/english.txt	(revision 21523)
+++ src/lang/english.txt	(working copy)
@@ -1190,6 +1190,7 @@
 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN              :Dark green
 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET                  :Violet
 STR_CONFIG_SETTING_REVERSE_SCROLLING                            :{LTBLUE}Reverse scroll direction: {ORANGE}{STRING1}
+STR_CONFIG_SETTING_LOCK_CURSOR_WHILE_SCROLLING                  :{LTBLUE}Lock the cursor while scrolling: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_SMOOTH_SCROLLING                             :{LTBLUE}Smooth viewport scrolling: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_MEASURE_TOOLTIP                              :{LTBLUE}Show a measurement tooltip when using various build-tools: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_LIVERIES                                     :{LTBLUE}Show company liveries: {ORANGE}{STRING1}
Index: src/settings_gui.cpp
===================================================================
--- src/settings_gui.cpp	(revision 21523)
+++ src/settings_gui.cpp	(working copy)
@@ -1285,6 +1285,7 @@
 	SettingEntry("gui.prefer_teamchat"),
 	SettingEntry("gui.autoscroll"),
 	SettingEntry("gui.reverse_scroll"),
+	SettingEntry("gui.lock_cursor_scroll"),
 	SettingEntry("gui.smooth_scroll"),
 	SettingEntry("gui.left_mouse_btn_scrolling"),
 	/* While the horizontal scrollwheel scrolling is written as general code, only
Index: src/table/settings.h
===================================================================
--- src/table/settings.h	(revision 21523)
+++ src/table/settings.h	(working copy)
@@ -564,6 +564,7 @@
 	 SDTC_BOOL(gui.show_finances,                        S,  0,  true,                        STR_CONFIG_SETTING_SHOWFINANCES,                NULL),
 	 SDTC_BOOL(gui.autoscroll,                           S,  0, false,                        STR_CONFIG_SETTING_AUTOSCROLL,                  NULL),
 	 SDTC_BOOL(gui.reverse_scroll,                       S,  0, false,                        STR_CONFIG_SETTING_REVERSE_SCROLLING,           NULL),
+	 SDTC_BOOL(gui.lock_cursor_scroll,                   S,  0,  true,                        STR_CONFIG_SETTING_LOCK_CURSOR_WHILE_SCROLLING, NULL),
 	 SDTC_BOOL(gui.smooth_scroll,                        S,  0, false,                        STR_CONFIG_SETTING_SMOOTH_SCROLLING,            NULL),
 	 SDTC_BOOL(gui.left_mouse_btn_scrolling,             S,  0, false,                        STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING,    NULL),
 	 SDTC_BOOL(gui.measure_tooltip,                      S,  0,  true,                        STR_CONFIG_SETTING_MEASURE_TOOLTIP,             NULL),
Index: src/settings_type.h
===================================================================
--- src/settings_type.h	(revision 21523)
+++ src/settings_type.h	(working copy)
@@ -57,6 +57,7 @@
 	bool   link_terraform_toolbar;           ///< display terraform toolbar when displaying rail, road, water and airport toolbars
 	uint8  smallmap_land_colour;             ///< colour used for land and heightmap at the smallmap
 	bool   reverse_scroll;                   ///< right-Click-Scrolling scrolls in the opposite direction
+	bool   lock_cursor_scroll;               ///< Lock the cursor position while scrolling
 	bool   smooth_scroll;                    ///< smooth scroll viewports
 	bool   measure_tooltip;                  ///< show a permanent tooltip when dragging tools
 	byte   liveries;                         ///< options for displaying company liveries, 0=none, 1=self, 2=all
Index: src/window.cpp
===================================================================
--- src/window.cpp	(revision 21523)
+++ src/window.cpp	(working copy)
@@ -2224,7 +2224,7 @@
 			case MC_RIGHT:
 				if (!(w->flags4 & WF_DISABLE_VP_SCROLL)) {
 					_scrolling_viewport = true;
-					_cursor.fix_at = true;
+					_cursor.fix_at = _settings_client.gui.lock_cursor_scroll;
 
 					/* clear 2D scrolling caches before we start a 2D scroll */
 					_cursor.h_wheel = 0;
