Index: dosbox-0.74/src/gui/sdlmain.cpp
===================================================================
--- dosbox-0.74.orig/src/gui/sdlmain.cpp	2010-05-10 17:43:54.000000000 -0000
+++ dosbox-0.74/src/gui/sdlmain.cpp		2011-12-20 12:23:30.000000000 -0000
@@ -211,6 +211,7 @@
 		bool requestlock;
 		bool locked;
 		Bitu sensitivity;
+		Bits sensitivity_aspect;
 	} mouse;
 	SDL_Rect updateRects[1024];
 	Bitu num_joysticks;
@@ -1089,6 +1090,7 @@
 	if (!sdl.mouse.autoenable) SDL_ShowCursor(SDL_DISABLE);
 	sdl.mouse.autolock=false;
 	sdl.mouse.sensitivity=section->Get_int("sensitivity");
+	sdl.mouse.sensitivity_aspect=section->Get_int("sensitivityaspect");
 	std::string output=section->Get_string("output");
 
 	/* Setup Mouse correctly if fullscreen */
@@ -1254,14 +1256,14 @@
 	}
 }
 
 static void HandleMouseMotion(SDL_MouseMotionEvent * motion) {
 	if (sdl.mouse.locked || !sdl.mouse.autoenable)
 		Mouse_CursorMoved((float)motion->xrel*sdl.mouse.sensitivity/100.0f,
-						  (float)motion->yrel*sdl.mouse.sensitivity/100.0f,
-						  (float)(motion->x-sdl.clip.x)/(sdl.clip.w-1)*sdl.mouse.sensitivity/100.0f,
+						  (float)motion->yrel*(float)sdl.mouse.sensitivity*(float)sdl.mouse.sensitivity_aspect/10000.0f,
+						  (float)(motion->x-sdl.clip.x)/(float)(sdl.clip.w-1)*(float)sdl.mouse.sensitivity*(float)sdl.mouse.sensitivity_aspect/10000.0f,
 						  (float)(motion->y-sdl.clip.y)/(sdl.clip.h-1)*sdl.mouse.sensitivity/100.0f,
 						  sdl.mouse.locked);
 }
 
 static void HandleMouseButton(SDL_MouseButtonEvent * button) {
 	switch (button->state) {
@@ -1496,8 +1498,12 @@
 	Pbool->Set_help("Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)");
 
 	Pint = sdl_sec->Add_int("sensitivity",Property::Changeable::Always,100);
 	Pint->SetMinMax(1,1000);
-	Pint->Set_help("Mouse sensitivity.");
+	Pint->Set_help("Mouse sensitivity percentage.");
+
+	Pint = sdl_sec->Add_int("sensitivityaspect",Property::Changeable::Always,100);
+	Pint->SetMinMax(-1000,1000);
+	Pint->Set_help("Mouse vertical movement scale percentage.");
 
 	Pbool = sdl_sec->Add_bool("waitonerror",Property::Changeable::Always, true);
 	Pbool->Set_help("Wait before closing the console if dosbox has an error.");
