diff -ru a/src/configuration.c b/src/configuration.c
--- a/src/configuration.c	2025-11-01 18:27:40
+++ b/src/configuration.c	2026-03-30 19:53:54
@@ -88,10 +88,8 @@
 	{ "bEnableAutoGrab", Bool_Tag, &ConfigureParams.Mouse.bEnableAutoGrab },
 	{ "bEnableMapToKey", Bool_Tag, &ConfigureParams.Mouse.bEnableMapToKey },
 	{ "bEnableMacClick", Bool_Tag, &ConfigureParams.Mouse.bEnableMacClick },
-	{ "fLinSpeedNormal", Float_Tag, &ConfigureParams.Mouse.fLinSpeedNormal },
-	{ "fLinSpeedLocked", Float_Tag, &ConfigureParams.Mouse.fLinSpeedLocked },
-	{ "fExpSpeedNormal", Float_Tag, &ConfigureParams.Mouse.fExpSpeedNormal },
-	{ "fExpSpeedLocked", Float_Tag, &ConfigureParams.Mouse.fExpSpeedLocked },
+	{ "fLinScale",       Float_Tag, &ConfigureParams.Mouse.fLinScale },
+	{ "fExpScale",       Float_Tag, &ConfigureParams.Mouse.fExpScale },
 	{ NULL , Error_Tag, NULL }
 };
 
@@ -458,10 +456,8 @@
 	strcpy(ConfigureParams.Keyboard.szMappingFileName, "");
 
 	/* Set defaults for Mouse */
-	ConfigureParams.Mouse.fLinSpeedNormal = 1.0;
-	ConfigureParams.Mouse.fLinSpeedLocked = 1.0;
-	ConfigureParams.Mouse.fExpSpeedNormal = 1.0;
-	ConfigureParams.Mouse.fExpSpeedLocked = 1.0;
+	ConfigureParams.Mouse.fLinScale = 1.0;
+	ConfigureParams.Mouse.fExpScale = 1.0;
 	ConfigureParams.Mouse.bEnableAutoGrab = true;
 	ConfigureParams.Mouse.bEnableMapToKey = false;
 	ConfigureParams.Mouse.bEnableMacClick = false;
@@ -579,10 +575,8 @@
 	if (ConfigureParams.Mouse.bEnableMacClick) {
 		ConfigureParams.Mouse.bEnableAutoGrab = false;
 	}
-	Configuration_CheckFloatMinMax(&ConfigureParams.Mouse.fLinSpeedNormal, MOUSE_LIN_MIN, MOUSE_LIN_MAX);
-	Configuration_CheckFloatMinMax(&ConfigureParams.Mouse.fLinSpeedLocked, MOUSE_LIN_MIN, MOUSE_LIN_MAX);
-	Configuration_CheckFloatMinMax(&ConfigureParams.Mouse.fExpSpeedNormal, MOUSE_EXP_MIN, MOUSE_EXP_MAX);
-	Configuration_CheckFloatMinMax(&ConfigureParams.Mouse.fExpSpeedLocked, MOUSE_EXP_MIN, MOUSE_EXP_MAX);
+	Configuration_CheckFloatMinMax(&ConfigureParams.Mouse.fLinScale, MOUSE_LIN_MIN, MOUSE_LIN_MAX);
+	Configuration_CheckFloatMinMax(&ConfigureParams.Mouse.fExpScale, MOUSE_EXP_MIN, MOUSE_EXP_MAX);
 
 	/* Check/constrain CPU settings and change corresponding
 	 * cpu_model/cpu_compatible/cpu_cycle_exact/... variables
diff -ru a/src/gui-sdl/dlgMouse.c b/src/gui-sdl/dlgMouse.c
--- a/src/gui-sdl/dlgMouse.c	2026-03-29 18:21:01
+++ b/src/gui-sdl/dlgMouse.c	2026-03-30 20:02:10
@@ -70,38 +70,26 @@
 	{ SGSTOP, 0, 0, 0,0, 0,0, NULL }
 };
 
-#define DLGSPEED_EXIT 18
+#define DLGSPEED_EXIT 9
 
-static char n_lin_string[8];
-static char n_exp_string[8];
-static char l_lin_string[8];
-static char l_exp_string[8];
+static char lin_string[8];
+static char exp_string[8];
 
 /* The mouse speed adjustment dialog */
 static SGOBJ speeddlg[] =
 {
-	{ SGBOX, 0, 0, 0,0, 48,25, NULL },
-	{ SGTEXT, 0, 0, 16,1, 13,1, "Mouse speed scale" },
+	{ SGBOX, 0, 0, 0,0, 50,14, NULL },
+	{ SGTEXT, 0, 0, 17,1, 13,1, "Mouse speed scale" },
 	
-	{ SGTEXT, 0, 0, 2,4, 32,1, "Unlocked window mode:" },
-	{ SGBOX, 0, 0, 1,6, 46,5, NULL },
-	{ SGTEXT, 0, 0, 2,7, 32,1, "Linear adjustment:" },
-	{ SGEDITFIELD, 0, 0, 26,7, 5,1, n_lin_string },
-	{ SGTEXT, 0, 0, 32,7, 32,1, "(0.01 to 10.0)" },
-	{ SGTEXT, 0, 0, 2,9, 38,1, "Exponential adjustment:" },
-	{ SGEDITFIELD, 0, 0, 26,9, 5,1, n_exp_string },
-	{ SGTEXT, 0, 0, 32,9, 32,1, "(0.50 to 1.00)" },
+	{ SGBOX, 0, 0, 1,4, 48,5, NULL },
+	{ SGTEXT, 0, 0, 2,5, 32,1, "Linear adjustment:" },
+	{ SGEDITFIELD, 0, 0, 26,5, 6,1, lin_string },
+	{ SGTEXT, 0, 0, 34,5, 32,1, "(0.01 to 10.0)" },
+	{ SGTEXT, 0, 0, 2,7, 38,1, "Exponential adjustment:" },
+	{ SGEDITFIELD, 0, 0, 26,7, 6,1, exp_string },
+	{ SGTEXT, 0, 0, 34,7, 32,1, "(0.50 to 1.00)" },
 	
-	{ SGTEXT, 0, 0, 2,13, 32,1, "Locked or fullscreen mode:" },
-	{ SGBOX, 0, 0, 1,15, 46,5, NULL },
-	{ SGTEXT, 0, 0, 2,16, 32,1, "Linear adjustment:" },
-	{ SGEDITFIELD, 0, 0, 26,16, 5,1, l_lin_string },
-	{ SGTEXT, 0, 0, 32,16, 32,1, "(0.01 to 10.0)" },
-	{ SGTEXT, 0, 0, 2,18, 38,1, "Exponential adjustment:" },
-	{ SGEDITFIELD, 0, 0, 26,18, 5,1, l_exp_string },
-	{ SGTEXT, 0, 0, 32,18, 32,1, "(0.50 to 1.00)" },
-
-	{ SGBUTTON, SG_DEFAULT, 0, 19,22, 10,1, "Done" },
+	{ SGBUTTON, SG_DEFAULT, 0, 20,11, 10,1, "Done" },
 	{ SGSTOP, 0, 0, 0,0, 0,0, NULL }
 };
 
@@ -158,10 +146,8 @@
 	SDLGui_CenterDlg(speeddlg);
 	
 	/* Set up the dialog from actual values */
-	snprintf(n_lin_string, sizeof(n_lin_string), "%#.2f", ConfigureParams.Mouse.fLinSpeedNormal);	
-	snprintf(n_exp_string, sizeof(n_exp_string), "%#.2f", ConfigureParams.Mouse.fExpSpeedNormal);
-	snprintf(l_lin_string, sizeof(l_lin_string), "%#.2f", ConfigureParams.Mouse.fLinSpeedLocked);	
-	snprintf(l_exp_string, sizeof(l_exp_string), "%#.2f", ConfigureParams.Mouse.fExpSpeedLocked);
+	snprintf(lin_string, sizeof(lin_string), "%#.3f", ConfigureParams.Mouse.fLinScale);	
+	snprintf(exp_string, sizeof(exp_string), "%#.3f", ConfigureParams.Mouse.fExpScale);
 	
 	/* Draw and process the dialog */
 	do
@@ -170,10 +156,8 @@
 	}
 	while (but != DLGSPEED_EXIT && but != SDLGUI_QUIT && but != SDLGUI_ERROR && !bQuitProgram);
 	
-	ConfigureParams.Mouse.fLinSpeedNormal = read_float_string(n_lin_string, MOUSE_LIN_MIN, MOUSE_LIN_MAX, 2);
-	ConfigureParams.Mouse.fExpSpeedNormal = read_float_string(n_exp_string, MOUSE_EXP_MIN, MOUSE_EXP_MAX, 2);
-	ConfigureParams.Mouse.fLinSpeedLocked = read_float_string(l_lin_string, MOUSE_LIN_MIN, MOUSE_LIN_MAX, 2);
-	ConfigureParams.Mouse.fExpSpeedLocked = read_float_string(l_exp_string, MOUSE_EXP_MIN, MOUSE_EXP_MAX, 2);
+	ConfigureParams.Mouse.fLinScale = read_float_string(lin_string, MOUSE_LIN_MIN, MOUSE_LIN_MAX, 3);
+	ConfigureParams.Mouse.fExpScale = read_float_string(exp_string, MOUSE_EXP_MIN, MOUSE_EXP_MAX, 3);
 }
 
 
@@ -206,29 +190,29 @@
 	mousedlg[DLGMOUSE_MAPTOKEY].state &= ~SG_SELECTED;
 	mousedlg[DLGMOUSE_AUTOLOCK].state &= ~SG_SELECTED;
 	
-	if (ConfigureParams.Mouse.fLinSpeedLocked == LIN_VERYSLOW) {
+	if (ConfigureParams.Mouse.fLinScale == LIN_VERYSLOW) {
 		mousedlg[DLGMOUSE_UNLOCK_VERYSLOW].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fLinSpeedLocked == LIN_SLOW) {
+	} else if (ConfigureParams.Mouse.fLinScale == LIN_SLOW) {
 		mousedlg[DLGMOUSE_UNLOCK_SLOW].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fLinSpeedLocked == LIN_NORMAL) {
+	} else if (ConfigureParams.Mouse.fLinScale == LIN_NORMAL) {
 		mousedlg[DLGMOUSE_UNLOCK_NORMAL].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fLinSpeedLocked == LIN_FAST) {
+	} else if (ConfigureParams.Mouse.fLinScale == LIN_FAST) {
 		mousedlg[DLGMOUSE_UNLOCK_FAST].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fLinSpeedLocked == LIN_VERYFAST) {
+	} else if (ConfigureParams.Mouse.fLinScale == LIN_VERYFAST) {
 		mousedlg[DLGMOUSE_UNLOCK_VERYFAST].state |= SG_SELECTED;
 	} else {
 		mousedlg[DLGMOUSE_UNLOCK_CUSTOM].state |= SG_SELECTED;
 	}
 	
-	if (ConfigureParams.Mouse.fExpSpeedLocked == EXP_VERYSLOW) {
+	if (ConfigureParams.Mouse.fExpScale == EXP_VERYSLOW) {
 		mousedlg[DLGMOUSE_LOCK_VERYSLOW].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fExpSpeedLocked == EXP_SLOW) {
+	} else if (ConfigureParams.Mouse.fExpScale == EXP_SLOW) {
 		mousedlg[DLGMOUSE_LOCK_SLOW].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fExpSpeedLocked == EXP_NORMAL) {
+	} else if (ConfigureParams.Mouse.fExpScale == EXP_NORMAL) {
 		mousedlg[DLGMOUSE_LOCK_NORMAL].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fExpSpeedLocked == EXP_FAST) {
+	} else if (ConfigureParams.Mouse.fExpScale == EXP_FAST) {
 		mousedlg[DLGMOUSE_LOCK_FAST].state |= SG_SELECTED;
-	} else if (ConfigureParams.Mouse.fExpSpeedLocked == EXP_VERYFAST) {
+	} else if (ConfigureParams.Mouse.fExpScale == EXP_VERYFAST) {
 		mousedlg[DLGMOUSE_LOCK_VERYFAST].state |= SG_SELECTED;
 	} else {
 		mousedlg[DLGMOUSE_LOCK_CUSTOM].state |= SG_SELECTED;
@@ -249,26 +233,26 @@
 static void DlgMouseRead(void)
 {
 	if (mousedlg[DLGMOUSE_UNLOCK_VERYSLOW].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fLinSpeedLocked = LIN_VERYSLOW;
+		ConfigureParams.Mouse.fLinScale = LIN_VERYSLOW;
 	} else if (mousedlg[DLGMOUSE_UNLOCK_SLOW].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fLinSpeedLocked = LIN_SLOW;
+		ConfigureParams.Mouse.fLinScale = LIN_SLOW;
 	} else if (mousedlg[DLGMOUSE_UNLOCK_NORMAL].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fLinSpeedLocked = LIN_NORMAL;
+		ConfigureParams.Mouse.fLinScale = LIN_NORMAL;
 	} else if (mousedlg[DLGMOUSE_UNLOCK_FAST].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fLinSpeedLocked = LIN_FAST;
+		ConfigureParams.Mouse.fLinScale = LIN_FAST;
 	} else if (mousedlg[DLGMOUSE_UNLOCK_VERYFAST].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fLinSpeedLocked = LIN_VERYFAST;
+		ConfigureParams.Mouse.fLinScale = LIN_VERYFAST;
 	}
 	if (mousedlg[DLGMOUSE_LOCK_VERYSLOW].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fExpSpeedLocked = EXP_VERYSLOW;
+		ConfigureParams.Mouse.fExpScale = EXP_VERYSLOW;
 	} else if (mousedlg[DLGMOUSE_LOCK_SLOW].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fExpSpeedLocked = EXP_SLOW;
+		ConfigureParams.Mouse.fExpScale = EXP_SLOW;
 	} else if (mousedlg[DLGMOUSE_LOCK_NORMAL].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fExpSpeedLocked = EXP_NORMAL;
+		ConfigureParams.Mouse.fExpScale = EXP_NORMAL;
 	} else if (mousedlg[DLGMOUSE_LOCK_FAST].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fExpSpeedLocked = EXP_FAST;
+		ConfigureParams.Mouse.fExpScale = EXP_FAST;
 	} else if (mousedlg[DLGMOUSE_LOCK_VERYFAST].state&SG_SELECTED) {
-		ConfigureParams.Mouse.fExpSpeedLocked = EXP_VERYFAST;
+		ConfigureParams.Mouse.fExpScale = EXP_VERYFAST;
 	}
 	ConfigureParams.Mouse.bEnableMacClick = mousedlg[DLGMOUSE_CTRLCLCK].state&SG_SELECTED ? true : false;
 	ConfigureParams.Mouse.bEnableMapToKey = mousedlg[DLGMOUSE_MAPTOKEY].state&SG_SELECTED ? true : false;
diff -ru a/src/gui-sdl/sdlevent.c b/src/gui-sdl/sdlevent.c
--- a/src/gui-sdl/sdlevent.c	2026-03-29 18:21:01
+++ b/src/gui-sdl/sdlevent.c	2026-03-30 19:54:38
@@ -184,8 +184,8 @@
 	if ((fDeltaX != 0.0) || (fDeltaY != 0.0)) {
 		float fExp, fLin;
 
-		fExp = bGrabMouse ? ConfigureParams.Mouse.fExpSpeedLocked : ConfigureParams.Mouse.fExpSpeedNormal;
-		fLin = bGrabMouse ? ConfigureParams.Mouse.fLinSpeedLocked : ConfigureParams.Mouse.fLinSpeedNormal;
+		fExp = ConfigureParams.Mouse.fExpScale;
+		fLin = ConfigureParams.Mouse.fLinScale;
 
 		/* Exponential adjustment */
 		if (fExp != 1.0) {
diff -ru a/src/includes/configuration.h b/src/includes/configuration.h
--- a/src/includes/configuration.h	2026-03-29 18:21:01
+++ b/src/includes/configuration.h	2026-03-30 19:52:29
@@ -123,10 +123,8 @@
   bool bEnableAutoGrab;
   bool bEnableMapToKey;
   bool bEnableMacClick;
-  float fLinSpeedNormal;
-  float fLinSpeedLocked;
-  float fExpSpeedNormal;
-  float fExpSpeedLocked;
+  float fLinScale;
+  float fExpScale;
 } CNF_MOUSE;
 
 
