diff --git a/bottles/frontend/ui/details-preferences.blp b/bottles/frontend/ui/details-preferences.blp
index 6ae9fe48281..d92d861f57c 100644
--- a/bottles/frontend/ui/details-preferences.blp
+++ b/bottles/frontend/ui/details-preferences.blp
@@ -35,11 +35,7 @@ template $DetailsPreferences: Adw.PreferencesPage {
         visible: false;
       }
 
-      model: StringList str_list_dxvk {
-        strings [
-          _("Disabled"),
-        ]
-      };
+      model: StringList str_list_dxvk {};
     }
 
     Adw.ComboRow combo_vkd3d {
@@ -52,11 +48,7 @@ template $DetailsPreferences: Adw.PreferencesPage {
         visible: false;
       }
 
-      model: StringList str_list_vkd3d {
-        strings [
-          _("Disabled"),
-        ]
-      };
+      model: StringList str_list_vkd3d {};
     }
 
     Adw.ComboRow combo_nvapi {
@@ -82,11 +74,7 @@ template $DetailsPreferences: Adw.PreferencesPage {
         visible: false;
       }
 
-      model: StringList str_list_latencyflex {
-        strings [
-          _("Disabled")
-        ]
-      };
+      model: StringList str_list_latencyflex {};
     }
   }
 
diff --git a/bottles/frontend/views/bottle_preferences.py b/bottles/frontend/views/bottle_preferences.py
index 444555e4789..29dc396840c 100644
--- a/bottles/frontend/views/bottle_preferences.py
+++ b/bottles/frontend/views/bottle_preferences.py
@@ -366,13 +366,37 @@ def update_combo_components(self):
         self.combo_language.handler_block_by_func(self.__set_language)
         self.combo_windows.handler_block_by_func(self.__set_windows)
 
-        self.str_list_runner.splice(0, self.str_list_runner.get_n_items(), self.manager.runners_available)
-        self.str_list_nvapi.splice(0, self.str_list_nvapi.get_n_items(), self.manager.nvapi_available)
-        self.str_list_languages.splice(0, self.str_list_languages.get_n_items(), ManagerUtils.get_languages())
+        for string_list in [
+            self.str_list_runner,
+            self.str_list_dxvk,
+            self.str_list_vkd3d,
+            self.str_list_nvapi,
+            self.str_list_latencyflex,
+            self.str_list_languages,
+            self.str_list_windows,
+        ]:
+            string_list.splice(0, string_list.get_n_items())
+
+        self.str_list_dxvk.append("Disabled")
+        self.str_list_vkd3d.append("Disabled")
+        self.str_list_latencyflex.append("Disabled")
+        for index, dxvk in enumerate(self.manager.dxvk_available):
+            self.str_list_dxvk.append(dxvk)
+
+        for index, vkd3d in enumerate(self.manager.vkd3d_available):
+            self.str_list_vkd3d.append(vkd3d)
+
+        for index, runner in enumerate(self.manager.runners_available):
+            self.str_list_runner.append(runner)
+
+        for index, nvapi in enumerate(self.manager.nvapi_available):
+            self.str_list_nvapi.append(nvapi)
+
+        for index, latencyflex in enumerate(self.manager.latencyflex_available):
+            self.str_list_latencyflex.append(latencyflex)
 
-        self.str_list_dxvk.splice(1, self.str_list_dxvk.get_n_items() - 1, self.manager.dxvk_available)
-        self.str_list_vkd3d.splice(1, self.str_list_vkd3d.get_n_items() - 1, self.manager.vkd3d_available)
-        self.str_list_latencyflex.splice(1, self.str_list_latencyflex.get_n_items() - 1, self.manager.latencyflex_available)
+        for lang in ManagerUtils.get_languages():
+            self.str_list_languages.append(lang)
 
         self.combo_runner.handler_unblock_by_func(self.__set_runner)
         self.combo_dxvk.handler_unblock_by_func(self.__set_dxvk)
@@ -464,37 +488,49 @@ def set_config(self, config: BottleConfig):
             "winxp": "Windows XP",
         }
 
-        sync_types = [
-            "wine",
-            "esync",
-            "fsync",
-        ]
-
         if self.config.Arch == Arch.WIN32:
             self.windows_versions["win98"] = "Windows 98"
             self.windows_versions["win95"] = "Windows 95"
 
-        self.str_list_windows.splice(0, self.str_list_windows.get_n_items(), list(self.windows_versions.values()))
-        self.combo_windows.set_selected(list(self.windows_versions.keys()).index(self.config.Windows))
-        self.combo_nvapi.set_selected(self.manager.nvapi_available.index(self.config.NVAPI))
-        self.combo_sync.set_selected(sync_types.index(parameters.sync))
+        for index, windows_version in enumerate(self.windows_versions):
+            self.str_list_windows.append(self.windows_versions[windows_version])
+            if windows_version == self.config.Windows:
+                self.combo_windows.set_selected(index)
         # endregion
 
         parameters = self.config.Parameters
 
-        # self.combo_windows.set_selected(self.manager.dxvk_available.index(self.config.DXVK))
+        _dxvk = self.config.DXVK
         if parameters.dxvk:
-            self.combo_dxvk.set_selected(self.manager.dxvk_available.index(self.config.DXVK) + 1)
+            if _dxvk in self.manager.dxvk_available:
+                if _i_dxvk := self.manager.dxvk_available.index(_dxvk) + 1:
+                    self.combo_dxvk.set_selected(_i_dxvk)
         else:
             self.combo_dxvk.set_selected(0)
 
+        _vkd3d = self.config.VKD3D
         if parameters.vkd3d:
-            self.combo_vkd3d.set_selected(self.manager.vkd3d_available.index(self.config.VKD3D) + 1)
+            if _vkd3d in self.manager.vkd3d_available:
+                if _i_vkd3d := self.manager.vkd3d_available.index(_vkd3d) + 1:
+                    self.combo_vkd3d.set_selected(_i_vkd3d)
         else:
             self.combo_vkd3d.set_selected(0)
 
+        _nvapi = self.config.NVAPI
+        if _nvapi in self.manager.nvapi_available:
+            if _i_nvapi := self.manager.nvapi_available.index(_nvapi):
+                self.combo_nvapi.set_selected(_i_nvapi)
+
+        _latencyflex = self.config.LatencyFleX
         if parameters.latencyflex:
-            self.combo_latencyflex.set_selected(self.manager.latencyflex_available.index(self.config.LatencyFleX) + 1)
+            if _latencyflex in self.manager.latencyflex_available:
+                if (
+                    _i_latencyflex := self.manager.latencyflex_available.index(
+                        _latencyflex
+                    )
+                    + 1
+                ):
+                    self.combo_latencyflex.set_selected(_i_latencyflex)
         else:
             self.combo_latencyflex.set_selected(0)
 
@@ -503,6 +539,15 @@ def set_config(self, config: BottleConfig):
             if _i_runner := self.manager.runners_available.index(_runner):
                 self.combo_runner.set_selected(_i_runner)
 
+        sync_types = [
+            "wine",
+            "esync",
+            "fsync",
+        ]
+        for sync in sync_types:
+            if sync == parameters.sync:
+                self.combo_sync.set_selected(sync_types.index(sync))
+
         # unlock functions connected to the widgets
         self.switch_mangohud.handler_unblock_by_func(self.__toggle_feature)
         self.switch_nvapi.handler_unblock_by_func(self.__toggle_nvapi)