diff --git a/odoo/addons/base/models/res_config.py b/odoo/addons/base/models/res_config.py
index 948134d9e1747ead378aa4e1352e9348aa274435..8bd9c61eb1bd82ccdeb333ad3921957d163d9f1d 100644
--- a/odoo/addons/base/models/res_config.py
+++ b/odoo/addons/base/models/res_config.py
@@ -567,7 +567,7 @@ class ResConfigSettings(models.TransientModel, ResConfigModuleInstallationMixin)
         # group fields: modify group / implied groups
         current_settings = self.default_get(list(self.fields_get()))
         with self.env.norecompute():
-            for name, groups, implied_group in classified['group']:
+            for name, groups, implied_group in sorted(classified['group'], key=lambda k: self[k[0]]):
                 groups = groups.sudo()
                 implied_group = implied_group.sudo()
                 if self[name] == current_settings[name]: