diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp
index e1257106c5274b6f6d8796dc294defad22668348..d6d501deb716f16e51c18fff20d0940c40b71b9e 100644
--- a/src/client/configurationmanager.cpp
+++ b/src/client/configurationmanager.cpp
@@ -549,7 +549,7 @@ setActiveCodecList(const std::string& accountID
     if (auto acc = ring::Manager::instance().getAccount(accountID))
     {
         acc->setActiveCodecs(list);
-        ring::Manager::instance().saveConfig();
+        ring::Manager::instance().saveConfig(acc);
     } else {
         RING_ERR("Could not find account %s", accountID.c_str());
     }
diff --git a/src/manager.cpp b/src/manager.cpp
index bc302b35259cab94319f17b7dbcbee51a87692f0..b44a794f789b766ab244951d9c7615f5a37d7121 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -1685,6 +1685,15 @@ void Manager::pollEvents()
 
 //THREAD=Main
 
+void
+Manager::saveConfig(const std::shared_ptr<Account>& acc)
+{
+    if (auto ringAcc = std::dynamic_pointer_cast<RingAccount>(acc))
+        saveConfig(ringAcc);
+    else
+        saveConfig();
+}
+
 void
 Manager::saveConfig(const std::shared_ptr<RingAccount>& account)
 {
diff --git a/src/manager.h b/src/manager.h
index 0fb4311c2290c254299b07d91409d81d6e08c92c..f5b3a430a5e278b6de99dbc720a194bd531c9e23 100644
--- a/src/manager.h
+++ b/src/manager.h
@@ -306,6 +306,7 @@ class Manager {
          */
         void saveConfig();
         void saveConfig(const std::shared_ptr<RingAccount>&);
+        void saveConfig(const std::shared_ptr<Account>& acc);
 
         /**
          * Play a ringtone