diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c
index a3c1832011..f90d305c26 100644
--- a/menu/menu_entries_cbs.c
+++ b/menu/menu_entries_cbs.c
@@ -2893,6 +2893,7 @@ static void menu_entries_cbs_init_bind_up_or_down(menu_file_list_cbs_t *cbs,
 static void menu_entries_cbs_init_bind_toggle(menu_file_list_cbs_t *cbs,
       const char *path, const char *label, unsigned type, size_t idx)
 {
+   int i;
    rarch_setting_t *setting = (rarch_setting_t*)
       setting_data_find_setting(driver.menu->list_settings, label);
 
@@ -2901,9 +2902,6 @@ static void menu_entries_cbs_init_bind_toggle(menu_file_list_cbs_t *cbs,
 
    cbs->action_toggle = menu_action_setting_set;
 
-   if (setting && setting->action_toggle)
-      return;
-
    switch (type)
    {
       case MENU_SETTINGS_CORE_DISK_OPTIONS_DISK_INDEX:
@@ -2962,6 +2960,14 @@ static void menu_entries_cbs_init_bind_toggle(menu_file_list_cbs_t *cbs,
    else if ((type >= MENU_SETTINGS_CORE_OPTION_START))
       cbs->action_toggle = core_setting_toggle;
 
+   for (i = 0; i < MAX_USERS; i++)
+   {
+      char label_setting[PATH_MAX_LENGTH];
+      snprintf(label_setting, sizeof(label_setting), "input_player%d_joypad_index", i + 1);
+
+      if (!strcmp(label, label_setting))
+         cbs->action_toggle = menu_action_setting_set;
+   }
 }
 
 static void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs,