diff --git a/input/input_driver.c b/input/input_driver.c
index 3f127526af..c7c6e0ece0 100644
--- a/input/input_driver.c
+++ b/input/input_driver.c
@@ -5599,7 +5599,13 @@ void input_driver_collect_system_input(input_driver_state_t *input_st,
                unsigned j = x_plus + 3;
                /* Inherit joyaxis from analogs. */
                for (k = RETRO_DEVICE_ID_JOYPAD_UP; k <= RETRO_DEVICE_ID_JOYPAD_RIGHT; k++)
-                  (general_binds)[k].joyaxis = (general_binds)[j--].joyaxis;
+               {
+                  if ((general_binds)[j].joyaxis != AXIS_NONE &&
+                        ((float)abs(joypad->axis(port, (uint32_t)(general_binds)[j].joyaxis))
+                         / 0x8000) > joypad_info.axis_threshold)
+                     (general_binds)[k].joyaxis = (general_binds)[j].joyaxis;
+                  j--;
+               }
             }
          }
       }