diff --git a/accountdetails.cpp b/accountdetails.cpp
index 1486052..7932b26 100644
--- a/accountdetails.cpp
+++ b/accountdetails.cpp
@@ -33,8 +33,7 @@
     QWidget(parent),
     ui(new Ui::AccountDetails),
     codecModel_(nullptr),
-    currentAccount_(nullptr),
-    codecModelModified(false)
+    currentAccount_(nullptr)
 {
     ui->setupUi(this);
 
@@ -150,9 +149,6 @@
 
     currentAccount_ = currentAccount;
 
-    if (codecModel_ && codecModelModified)
-        codecModel_->save();
-
     codecModel_ = currentAccount->codecModel();
 
     ui->typeValueLabel->setText(currentAccount_->protocolModel()->
@@ -238,7 +234,6 @@
     auto idx = codecModel_->audioCodecs()->index(row, 0);
     codecModel_->audioCodecs()->setData(idx, item->checkState(),
                                         Qt::CheckStateRole);
-    codecModelModified = true;
 }
 
 void
@@ -249,7 +244,6 @@
     auto idx = codecModel_->videoCodecs()->index(row, 0);
     codecModel_->videoCodecs()->setData(idx, item->checkState(),
                                         Qt::CheckStateRole);
-    codecModelModified = true;
 }
 
 void
@@ -257,7 +251,6 @@
 {
     codecModel_->moveUp();
     reloadCodec(CodecType::AUDIO);
-    codecModelModified = true;
 }
 
 void
@@ -265,7 +258,6 @@
 {
     codecModel_->moveDown();
     reloadCodec(CodecType::AUDIO);
-    codecModelModified = true;
 }
 
 void
@@ -273,7 +265,6 @@
 {
     codecModel_->moveUp();
     reloadCodec(CodecType::VIDEO);
-    codecModelModified = true;
 }
 
 void
@@ -281,7 +272,6 @@
 {
     codecModel_->moveDown();
     reloadCodec(CodecType::VIDEO);
-    codecModelModified = true;
 }
 
 void
@@ -306,8 +296,7 @@
 
 void
 AccountDetails::save() {
-    if (codecModelModified)
-        codecModel_->save();
+    codecModel_->performAction(CodecModel::EditAction::SAVE);
 }
 
 void
