diff --git a/src/g_game.c b/src/g_game.c
index 404e233da6898cf8670717cd04b9c15aa90a247e..a76d4770ec6135e85da6aefdd01f3d197c11c505 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -421,7 +421,7 @@ static CV_PossibleValue_t joyaxis_cons_t[] = {{0, "None"},
 #endif
 #endif
 
-static CV_PossibleValue_t deadzone_cons_t[] = {{0, "MIN"}, {FRACUNIT, "MAX"}, {0, NULL}};
+static CV_PossibleValue_t deadzone_cons_t[] = {{FRACUNIT/16, "MIN"}, {FRACUNIT, "MAX"}, {0, NULL}};
 
 // don't mind me putting these here, I was lazy to figure out where else I could put those without blowing up the compiler.
 
diff --git a/src/m_menu.c b/src/m_menu.c
index 3991c739fd48941c97c59889681d65f4e54ba810..6205c6eae38407daab2e989213fc952949df8acd 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -2571,7 +2571,7 @@ boolean M_Responder(event_t *ev)
 	{
 		if (ev->type == ev_joystick  && ev->data1 == 0 && joywait < I_GetTime())
 		{
-			const INT32 jdeadzone = ((JOYAXISRANGE-1) * cv_ydeadzone.value) >> FRACBITS;
+			const INT32 jdeadzone = ((JOYAXISRANGE-1) * max(cv_ydeadzone.value, 3*FRACUNIT/4)) >> FRACBITS;
 			if (ev->data3 != INT32_MAX)
 			{
 				if (Joystick.bGamepadStyle || abs(ev->data3) > jdeadzone)