diff --git a/accountdetails.cpp b/accountdetails.cpp
index 2c163e7..850d632 100644
--- a/accountdetails.cpp
+++ b/accountdetails.cpp
@@ -28,6 +28,7 @@
 #include "protocolmodel.h"
 #include "certificate.h"
 #include "ciphermodel.h"
+#include "ringtonemodel.h"
 
 AccountDetails::AccountDetails(QWidget *parent) :
     QWidget(parent),
@@ -148,6 +149,11 @@
     });
 
     ui->cipherListView->setModel(currentAccount_->cipherModel());
+
+    disconnect(ui->ringtonesBox);
+    ui->ringtonesBox->setModel(&RingtoneModel::instance());
+    ui->ringtonesBox->setCurrentIndex(RingtoneModel::instance().selectionModel(currentAccount_)->currentIndex().row());
+    connect(ui->ringtonesBox, SIGNAL(currentIndexChanged(int)), this, SLOT(ringtonesBoxCurrentIndexChanged(int)));
 }
 
 void
@@ -207,3 +213,17 @@
     auto idx = codecModel_->videoCodecs()->mapToSource(selected.indexes().at(0));
     codecModel_->selectionModel()->setCurrentIndex(idx, QItemSelectionModel::ClearAndSelect);
 }
+
+void
+AccountDetails::ringtonesBoxCurrentIndexChanged(int index)
+{
+    RingtoneModel::instance().selectionModel(currentAccount_)->setCurrentIndex(
+                RingtoneModel::instance().index(index, 0), QItemSelectionModel::ClearAndSelect);
+}
+
+void
+AccountDetails::on_playButton_clicked()
+{
+    RingtoneModel::instance().play(RingtoneModel::instance().index(
+                                       ui->ringtonesBox->currentIndex(), 0));
+}
