diff --git a/sflphone_kde/Account.cpp b/sflphone_kde/Account.cpp
index 03e778a235aa361e08678cb12bee08d36a6dce4e..202eac12bc1bbae277b6c5cea07022c8246ad167 100644
--- a/sflphone_kde/Account.cpp
+++ b/sflphone_kde/Account.cpp
@@ -1,6 +1,7 @@
 #include "Account.h"
 #include "sflphone_const.h"
 #include "configurationmanager_interface_singleton.h"
+#include "kled.h"
 
 #include <iostream>
 
@@ -49,28 +50,68 @@ Account::Account(QString & _accountId, MapStringString & _accountDetails, accoun
 }
 */
 
+/**
+ * Sets text of the item associated with some spaces to avoid writing under checkbox.
+ * @param text the text to set in the item
+ */
+void Account::setItemText(QString text)
+{
+	item->setText("       " + text);
+}
+
 void Account::initAccountItem()
 {
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	item = new QListWidgetItem();
-	item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsDropEnabled|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
-	cout << getAccountDetail(*(new QString(ACCOUNT_ENABLED))).toStdString() << endl;
-	item->setCheckState((getAccountDetail(*(new QString(ACCOUNT_ENABLED))) == ACCOUNT_ENABLED_TRUE) ? Qt::Checked : Qt::Unchecked);
-	item->setText(getAccountDetail(*(new QString(ACCOUNT_ALIAS))));
+	item->setSizeHint(QSize(140,25));
+	//item->setTextAlignment(Qt::AlignCenter);
+	item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsDropEnabled|Qt::ItemIsEnabled);
+	bool enabled = getAccountDetail(*(new QString(ACCOUNT_ENABLED))) == ACCOUNT_ENABLED_TRUE;
+	//item->setCheckState(enabled ? Qt::Checked : Qt::Unchecked);
+	setItemText(getAccountDetail(*(new QString(ACCOUNT_ALIAS))));
+	itemWidget = new QWidget();
+	QCheckBox * checkbox = new QCheckBox(itemWidget);
+	checkbox->setObjectName("checkbox");
+	checkbox->setCheckState(enabled ? Qt::Checked : Qt::Unchecked);
+	//QLabel* name = new QLabel(getAccountDetail(*(new QString(ACCOUNT_ALIAS))), itemWidget);
+	//QLabel* name = new QLabel("", itemWidget);
+	KLed * led = new KLed(itemWidget);
+	led->setObjectName("led");
+	led->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+	if(! isNew() && enabled)
+	{
+		led->setState(KLed::On);
+		if(getAccountDetail(* new QString(ACCOUNT_STATUS)) == ACCOUNT_STATE_REGISTERED)
+		{
+			led->setColor(QColor(0,255,0));
+		}
+		else
+		{
+			led->setColor(QColor(255,0,0));
+		}
+	}
+	else
+	{
+		led->setState(KLed::Off);
+	}
+	QHBoxLayout* hlayout = new QHBoxLayout();
+	hlayout->setContentsMargins(0,0,0,0);
+	hlayout->addWidget(checkbox);
+	//hlayout->addWidget(name);
+	hlayout->addWidget(led);
+	itemWidget->setLayoutDirection(Qt::LeftToRight);
+	itemWidget->setLayout(hlayout);
+	//itemWidget->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+	//item->parent()->setItemWidget(item, widget);
 }
 
 Account * Account::buildExistingAccountFromId(QString _accountId)
 {
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	Account * a = new Account();
 	a->accountId = new QString(_accountId);
-	a->accountDetails = new MapStringString( ConfigurationManagerInterfaceSingleton::getInstance().getAccountDetails(_accountId).value() );
+	a->accountDetails = new MapStringString( configurationManager.getAccountDetails(_accountId).value() );
 	a->initAccountItem();
-	if(a->item->checkState() == Qt::Checked)
-	{
-		if(a->getAccountDetail(* new QString(ACCOUNT_STATUS)) == ACCOUNT_STATE_REGISTERED)
-			a->item->setTextColor(Qt::darkGreen);
-		else
-			a->item->setTextColor(Qt::red);
-	}
 	return a;
 }
 
@@ -113,7 +154,13 @@ QListWidgetItem * Account::getItem()
 	if(!item)
 		cout<<"null"<<endl;
 	return item;
-	
+}
+
+QWidget * Account::getItemWidget()
+{
+	if(!item)
+		cout<<"null"<<endl;
+	return itemWidget;
 }
 
 QString Account::getStateName(QString & state)
diff --git a/sflphone_kde/Account.h b/sflphone_kde/Account.h
index 103f0d552a173e75ff092df9ef10350ed99a746f..d37e0931fc25fdec975d04095a0a98e4e16d6228 100644
--- a/sflphone_kde/Account.h
+++ b/sflphone_kde/Account.h
@@ -13,6 +13,7 @@ private:
 	QString * accountId;
 	MapStringString * accountDetails;
 	QListWidgetItem * item;
+	QWidget * itemWidget;
 
 	Account();
 
@@ -29,6 +30,7 @@ public:
 	QString & getAccountId();
 	MapStringString & getAccountDetails();
 	QListWidgetItem * getItem();
+	QWidget * getItemWidget();
 	QString getStateName(QString & state);
 	QColor getStateColor();
 	QString getStateColorName();
@@ -36,6 +38,7 @@ public:
 	//QString getAccountDetail(std::string param);
 	
 	//Setters
+	void setItemText(QString text);
 	void initAccountItem();
 	void setAccountId(QString id);
 	void setAccountDetails(MapStringString m);
diff --git a/sflphone_kde/AccountList.cpp b/sflphone_kde/AccountList.cpp
index 15b512cfe804f7c389099b4cac110682a7ba2d13..13ffbce09b209d0b19b1ca4e805dcdd4e20e848f 100644
--- a/sflphone_kde/AccountList.cpp
+++ b/sflphone_kde/AccountList.cpp
@@ -80,11 +80,11 @@ void AccountList::addAccount(Account & account)
 	accounts->add(account);
 }
 */
-QListWidgetItem * AccountList::addAccount(QString & alias)
+Account * AccountList::addAccount(QString & alias)
 {
 	Account * a = Account::buildNewAccountFromAlias(alias);
 	(*accounts) += a;
-	return a->getItem();
+	return a;
 }
 
 void AccountList::removeAccount(QListWidgetItem * item)
diff --git a/sflphone_kde/AccountList.h b/sflphone_kde/AccountList.h
index 50bff69bba990bee0238f30ea6e65a12cc76d105..8edaf3f5fddc672da24336e3c3f3b1e24eb665ca 100644
--- a/sflphone_kde/AccountList.h
+++ b/sflphone_kde/AccountList.h
@@ -27,7 +27,7 @@ public:
 	
 	//Setters
 	//void addAccount(Account & account);
-	QListWidgetItem * addAccount(QString & alias);
+	Account * addAccount(QString & alias);
 	void removeAccount(QListWidgetItem * item);
 
 	//Operators
diff --git a/sflphone_kde/ConfigDialog.cpp b/sflphone_kde/ConfigDialog.cpp
index 741f5007bf21f7e3893d591df685c11ff57d1afd..ed252759822a592c582a12f16660136c2d771447 100644
--- a/sflphone_kde/ConfigDialog.cpp
+++ b/sflphone_kde/ConfigDialog.cpp
@@ -7,6 +7,7 @@
 #include "ConfigDialog.h"
 #include "configurationmanager_interface_singleton.h"
 
+
 using namespace std;
 
 
@@ -31,6 +32,8 @@ ConfigurationDialog::ConfigurationDialog(SFLPhone *parent) : QDialog(parent)
 	toolButton_codecDown->setIcon(style->standardIcon(QStyle::SP_ArrowDown));
 	tableWidget_codecs->verticalHeader()->hide();
 	tableWidget_codecs->setSelectionBehavior(QAbstractItemView::SelectRows);
+	//tableWidget_codecs->setStyleSheet("border-style: hidden;");
+
 
 
 	//TODO ajouter les items de l'interface audio ici avec les constantes
@@ -54,17 +57,17 @@ ConfigurationDialog::~ConfigurationDialog()
 
 void ConfigurationDialog::loadOptions()
 {
-	ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance();
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	
 	////////////////////////
 	////General settings////
 	////////////////////////
 	
 	//Call history settings
-	spinBox_historyCapacity->setValue(daemon.getMaxCalls());
+	spinBox_historyCapacity->setValue(configurationManager.getMaxCalls());
 	
 	//SIP port settings
-	int sipPort = daemon.getSipPort();
+	int sipPort = configurationManager.getSipPort();
 	if(sipPort<1025){
 		spinBox_SIPPort->setMinimum(sipPort);
 		label_WarningSIP->setText("Attention : le port SIP doit être supérieur à 1024 !");
@@ -75,19 +78,19 @@ void ConfigurationDialog::loadOptions()
 		label_WarningSIP->setText("Attention : le port SIP doit être inférieur à 65536 !");
 		label_WarningSIP->setVisible(true);
 	}
-	spinBox_SIPPort->setValue(daemon.getSipPort());
+	spinBox_SIPPort->setValue(configurationManager.getSipPort());
 	
 	////////////////////////
 	////Display settings////
 	////////////////////////
 
 	//Notification settings
-	checkBox1_notifOnCalls->setCheckState(daemon.getNotify() ? Qt::Checked : Qt::Unchecked);
-	checkBox2_notifOnMessages->setCheckState(daemon.getMailNotify() ? Qt::Checked : Qt::Unchecked);
+	checkBox1_notifOnCalls->setCheckState(configurationManager.getNotify() ? Qt::Checked : Qt::Unchecked);
+	checkBox2_notifOnMessages->setCheckState(configurationManager.getMailNotify() ? Qt::Checked : Qt::Unchecked);
 	
 	//Window display settings
-	checkBox1_displayOnStart->setCheckState(daemon.isStartHidden() ? Qt::Unchecked : Qt::Checked);
-	checkBox2_displayOnCalls->setCheckState(daemon.popupMode() ? Qt::Checked : Qt::Unchecked);
+	checkBox1_displayOnStart->setCheckState(configurationManager.isStartHidden() ? Qt::Unchecked : Qt::Checked);
+	checkBox2_displayOnCalls->setCheckState(configurationManager.popupMode() ? Qt::Checked : Qt::Unchecked);
 	
 	/////////////////////////
 	////Accounts settings////
@@ -96,21 +99,21 @@ void ConfigurationDialog::loadOptions()
 	loadAccountList();
 
 	//Stun settings
-	checkBox_stun->setCheckState(daemon.isStunEnabled() ? Qt::Checked : Qt::Unchecked);
-	lineEdit_stun->setText(QString(daemon.getStunServer()));
+	checkBox_stun->setCheckState(configurationManager.isStunEnabled() ? Qt::Checked : Qt::Unchecked);
+	lineEdit_stun->setText(QString(configurationManager.getStunServer()));
 	
 	//////////////////////
 	////Audio settings////
 	//////////////////////
 	
 	//Audio Interface settings
-	comboBox_interface->setCurrentIndex(daemon.getAudioManager());
-	stackedWidget_interfaceSpecificSettings->setCurrentIndex(daemon.getAudioManager());
+	comboBox_interface->setCurrentIndex(configurationManager.getAudioManager());
+	stackedWidget_interfaceSpecificSettings->setCurrentIndex(configurationManager.getAudioManager());
 	
 	//ringtones settings
-	checkBox_ringtones->setCheckState(daemon.isRingtoneEnabled() ? Qt::Checked : Qt::Unchecked);
+	checkBox_ringtones->setCheckState(configurationManager.isRingtoneEnabled() ? Qt::Checked : Qt::Unchecked);
 	//TODO widget choix de sonnerie
-	//widget_nomSonnerie->setText(daemon.getRingtoneChoice());
+	urlComboRequester_ringtone->setUrl(KUrl::fromPath(configurationManager.getRingtoneChoice()));
 	
 	//codecs settings
 	loadCodecs();
@@ -118,28 +121,26 @@ void ConfigurationDialog::loadOptions()
 	//
 	//alsa settings
 	comboBox1_alsaPlugin->clear();
-	QStringList pluginList = daemon.getOutputAudioPluginList();
+	QStringList pluginList = configurationManager.getOutputAudioPluginList();
 	comboBox1_alsaPlugin->addItems(pluginList);
-	comboBox1_alsaPlugin->setCurrentIndex(comboBox1_alsaPlugin->findText(daemon.getCurrentAudioOutputPlugin()));
+	comboBox1_alsaPlugin->setCurrentIndex(comboBox1_alsaPlugin->findText(configurationManager.getCurrentAudioOutputPlugin()));
+	
+	QStringList devices = configurationManager.getCurrentAudioDevicesIndex();
 	
-	qDebug() << "avant daemon.getCurrentAudioDevicesIndex();";
-	QStringList devices = daemon.getCurrentAudioDevicesIndex();
-	qDebug() << "apres daemon.getCurrentAudioDevicesIndex();";
-
 	int inputDevice = devices[1].toInt();
 	comboBox2_in->clear();
-	QStringList inputDeviceList = daemon.getAudioInputDeviceList();
+	QStringList inputDeviceList = configurationManager.getAudioInputDeviceList();
 	comboBox2_in->addItems(inputDeviceList);
 	comboBox2_in->setCurrentIndex(inputDevice);
 	
 	int outputDevice = devices[0].toInt();
 	comboBox3_out->clear();
-	QStringList outputDeviceList = daemon.getAudioOutputDeviceList();
+	QStringList outputDeviceList = configurationManager.getAudioOutputDeviceList();
 	comboBox3_out->addItems(inputDeviceList);
 	comboBox3_out->setCurrentIndex(outputDevice);
 	
 	//pulseaudio settings
-	checkBox_pulseAudioVolumeAlter->setCheckState(daemon.getPulseAppVolumeControl() ? Qt::Checked : Qt::Unchecked);
+	checkBox_pulseAudioVolumeAlter->setCheckState(configurationManager.getPulseAppVolumeControl() ? Qt::Checked : Qt::Unchecked);
 	
 	
 }
@@ -147,14 +148,14 @@ void ConfigurationDialog::loadOptions()
 
 void ConfigurationDialog::saveOptions()
 {
-	ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance();
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	
 	////////////////////////
 	////General settings////
 	////////////////////////
 	
 	//Call history settings
-	daemon.setMaxCalls(spinBox_historyCapacity->value());
+	configurationManager.setMaxCalls(spinBox_historyCapacity->value());
 	
 	//SIP port settings
 	int sipPort = spinBox_SIPPort->value();
@@ -165,20 +166,20 @@ void ConfigurationDialog::saveOptions()
 	if(sipPort>65535){
 		errorWindow->showMessage("Attention : le port SIP doit être inférieur à 65536 !");
 	}
-	daemon.setSipPort(sipPort);
+	configurationManager.setSipPort(sipPort);
 	
 	////////////////////////
 	////Display settings////
 	////////////////////////
 
 	//Notification settings
-	if(checkBox1_notifOnCalls->checkState() != (daemon.getNotify() ? Qt::Checked : Qt::Unchecked)) daemon.setNotify();
-	if(checkBox2_notifOnMessages->checkState() != (daemon.getMailNotify() ? Qt::Checked : Qt::Unchecked)) daemon.setMailNotify();
+	if(checkBox1_notifOnCalls->checkState() != (configurationManager.getNotify() ? Qt::Checked : Qt::Unchecked)) configurationManager.setNotify();
+	if(checkBox2_notifOnMessages->checkState() != (configurationManager.getMailNotify() ? Qt::Checked : Qt::Unchecked)) configurationManager.setMailNotify();
 	
 	//Window display settings
 	//WARNING états inversés
-	if(checkBox1_displayOnStart->checkState() != (daemon.isStartHidden() ? Qt::Unchecked : Qt::Checked)) daemon.startHidden();
-	if(checkBox2_displayOnCalls->checkState() != (daemon.popupMode() ? Qt::Checked : Qt::Unchecked)) daemon.switchPopupMode();
+	if(checkBox1_displayOnStart->checkState() != (configurationManager.isStartHidden() ? Qt::Unchecked : Qt::Checked)) configurationManager.startHidden();
+	if(checkBox2_displayOnCalls->checkState() != (configurationManager.popupMode() ? Qt::Checked : Qt::Unchecked)) configurationManager.switchPopupMode();
 	
 	/////////////////////////
 	////Accounts settings////
@@ -187,8 +188,8 @@ void ConfigurationDialog::saveOptions()
 	saveAccountList();
 
 	//Stun settings
-	if(checkBox_stun->checkState() != (daemon.isStunEnabled() ? Qt::Checked : Qt::Unchecked)) daemon.enableStun();
-	daemon.setStunServer(lineEdit_stun->text());
+	if(checkBox_stun->checkState() != (configurationManager.isStunEnabled() ? Qt::Checked : Qt::Unchecked)) configurationManager.enableStun();
+	configurationManager.setStunServer(lineEdit_stun->text());
 
 	//////////////////////
 	////Audio settings////
@@ -197,13 +198,14 @@ void ConfigurationDialog::saveOptions()
 	//Audio Interface settings
 	qDebug() << "setting audio manager";
 	int manager = comboBox_interface->currentIndex();
-	daemon.setAudioManager(manager);
+	configurationManager.setAudioManager(manager);
 	
 	//ringtones settings
 	qDebug() << "setting ringtone options";
-	if(checkBox_ringtones->checkState() != (daemon.isRingtoneEnabled() ? Qt::Checked : Qt::Unchecked)) daemon.ringtoneEnabled();
+	if(checkBox_ringtones->checkState() != (configurationManager.isRingtoneEnabled() ? Qt::Checked : Qt::Unchecked)) configurationManager.ringtoneEnabled();
 	//TODO widget choix de sonnerie
-	//daemon.getRingtoneChoice(widget_nomSonnerie->text());
+	//configurationManager.setRingtoneChoice(urlComboRequester_ringtone->text());
+	configurationManager.setRingtoneChoice(urlComboRequester_ringtone->url().url());
 	
 	//codecs settings
 	qDebug() << "saving codecs";
@@ -213,29 +215,29 @@ void ConfigurationDialog::saveOptions()
 	if(manager == ALSA)
 	{
 		qDebug() << "setting alsa settings";
-		daemon.setOutputAudioPlugin(comboBox1_alsaPlugin->currentText());
-		daemon.setAudioInputDevice(comboBox2_in->currentIndex());
-		daemon.setAudioOutputDevice(comboBox3_out->currentIndex());
+		configurationManager.setOutputAudioPlugin(comboBox1_alsaPlugin->currentText());
+		configurationManager.setAudioInputDevice(comboBox2_in->currentIndex());
+		configurationManager.setAudioOutputDevice(comboBox3_out->currentIndex());
 	}
 	//pulseaudio settings
 	if(manager == PULSEAUDIO)
 	{
 		qDebug() << "setting pulseaudio settings";
-		if(checkBox_pulseAudioVolumeAlter->checkState() != (daemon.getPulseAppVolumeControl() ? Qt::Checked : Qt::Unchecked)) daemon.setPulseAppVolumeControl();
+		if(checkBox_pulseAudioVolumeAlter->checkState() != (configurationManager.getPulseAppVolumeControl() ? Qt::Checked : Qt::Unchecked)) configurationManager.setPulseAppVolumeControl();
 	}
 }
 
 
 void ConfigurationDialog::loadAccountList()
 {
-	//ask for the list of accounts ids to the daemon
+	//ask for the list of accounts ids to the configurationManager
 	QStringList accountIds = ConfigurationManagerInterfaceSingleton::getInstance().getAccountList().value();
 	//create the AccountList object with the ids
 	accountList = new AccountList(accountIds);
 	//initialize the QListWidget object with the AccountList
 	listWidget_accountList->clear();
 	for (int i = 0; i < accountList->size(); ++i){
-		listWidget_accountList->addItem((*accountList)[i].getItem());
+		addAccountToAccountList(&(*accountList)[i]);
 	}
 	if (listWidget_accountList->count() > 0) 
 		listWidget_accountList->setCurrentRow(0);
@@ -248,10 +250,10 @@ void ConfigurationDialog::saveAccountList()
 	//save the account being edited
 	if(listWidget_accountList->currentItem())
 		saveAccount(listWidget_accountList->currentItem());
-	//get the daemon instance
-	ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance();
-	//ask for the list of accounts ids to the daemon
-	QStringList accountIds= QStringList(daemon.getAccountList().value());
+	//get the configurationManager instance
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+	//ask for the list of accounts ids to the configurationManager
+	QStringList accountIds= QStringList(configurationManager.getAccountList().value());
 	//create or update each account from accountList
 	for (int i = 0; i < accountList->size(); i++){
 		Account & current = (*accountList)[i];
@@ -259,9 +261,9 @@ void ConfigurationDialog::saveAccountList()
 		//if the account has no instanciated id, it has just been created in the client
 		if(current.isNew())
 		{
-			currentId = QString(daemon.addAccount(current.getAccountDetails()));
+			currentId = QString(configurationManager.addAccount(current.getAccountDetails()));
 		}
-		//if the account has an instanciated id but it's not in daemon
+		//if the account has an instanciated id but it's not in configurationManager
 		else{
 			if(! accountIds.contains(current.getAccountId()))
 			{
@@ -270,17 +272,17 @@ void ConfigurationDialog::saveAccountList()
 			}
 			else
 			{
-				daemon.setAccountDetails(current.getAccountId(), current.getAccountDetails());
+				configurationManager.setAccountDetails(current.getAccountId(), current.getAccountDetails());
 				currentId = QString(current.getAccountId());
 			}
 		}
-		daemon.sendRegister(currentId, (current.getItem()->checkState() == Qt::Checked) ? 1 : 0 );
+		configurationManager.sendRegister(currentId, (current.getItem()->checkState() == Qt::Checked) ? 1 : 0 );
 	}
-	//remove accounts that are in the daemon but not in the client
+	//remove accounts that are in the configurationManager but not in the client
 	for (int i = 0; i < accountIds.size(); i++)
 		if(! accountList->getAccountById(accountIds[i])){
 			qDebug() << "remove account " << accountIds[i];
-			daemon.removeAccount(accountIds[i]);
+			configurationManager.removeAccount(accountIds[i]);
 		}
 }
 
@@ -299,6 +301,7 @@ void ConfigurationDialog::loadAccount(QListWidgetItem * item)
 	edit5_password->setText( account->getAccountDetail(*(new QString(ACCOUNT_PASSWORD))));
 	edit6_mailbox->setText( account->getAccountDetail(*(new QString(ACCOUNT_MAILBOX))));
 	QString status = account->getAccountDetail(*(new QString(ACCOUNT_STATUS)));
+	qDebug() << "Color : " << account->getStateColorName();
 	edit7_state->setText( "<FONT COLOR=\"" + account->getStateColorName() + "\">" + status + "</FONT>" );
 	//edit7_Etat->setTextColor( account->getStateColor );
 }
@@ -317,15 +320,24 @@ void ConfigurationDialog::saveAccount(QListWidgetItem * item)
 	account->setAccountDetail(ACCOUNT_USERNAME, edit4_user->text());
 	account->setAccountDetail(ACCOUNT_PASSWORD, edit5_password->text());
 	account->setAccountDetail(ACCOUNT_MAILBOX, edit6_mailbox->text());
-	
+	//account->setAccountDetail(ACCOUNT_ENABLED, account->getItemWidget()->findChild(*(new QString("checkbox"))).checkState() == Qt::Checked ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE);
+	account->setItemText(edit1_alias->text());
 }
 
+void ConfigurationDialog::addAccountToAccountList(Account * account)
+{
+	qDebug() << "addAccountToAccountList";
+	QListWidgetItem * item = account->getItem();
+	QWidget * widget = account->getItemWidget();
+	listWidget_accountList->addItem(item);
+	listWidget_accountList->setItemWidget(item, widget);
+}
 
 void ConfigurationDialog::loadCodecs()
 {
-	ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance();
-	QStringList codecList = daemon.getCodecList();
-	QStringList activeCodecList = daemon.getActiveCodecList();
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+	QStringList codecList = configurationManager.getCodecList();
+	QStringList activeCodecList = configurationManager.getActiveCodecList();
 	qDebug() << codecList;
 	qDebug() << activeCodecList;
 	tableWidget_codecs->setRowCount(0);
@@ -337,10 +349,10 @@ void ConfigurationDialog::loadCodecs()
 		QString payloadStr = QString(codecList[i]);
 		int payload = payloadStr.toInt(&ok);
 		if(!ok)	
-			qDebug() << "The codec's payload sent by the daemon is not a number : " << codecList[i];
+			qDebug() << "The codec's payload sent by the configurationManager is not a number : " << codecList[i];
 		else
 		{
-			QStringList details = daemon.getCodecDetails(payload);
+			QStringList details = configurationManager.getCodecDetails(payload);
 			tableWidget_codecs->insertRow(i);
 			QTableWidgetItem * headerItem = new QTableWidgetItem("");
 			tableWidget_codecs->setVerticalHeaderItem (i, headerItem);
@@ -358,6 +370,7 @@ void ConfigurationDialog::loadCodecs()
 			tableWidget_codecs->item(i,2)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
 			tableWidget_codecs->item(i,3)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
 			tableWidget_codecs->item(i,4)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
 			(*codecPayloads)[details[CODEC_NAME]] = payloadStr;
 			qDebug() << "Added to codecs : " << payloadStr << " , " << details[CODEC_NAME];
 		}
@@ -369,7 +382,7 @@ void ConfigurationDialog::loadCodecs()
 
 void ConfigurationDialog::saveCodecs()
 {
-	ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance();
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	QStringList activeCodecs;
 	for(int i = 0 ; i < tableWidget_codecs->rowCount() ; i++)
 	{
@@ -381,7 +394,7 @@ void ConfigurationDialog::saveCodecs()
 		}
 	}
 	qDebug() << "Calling setActiveCodecList with list : " << activeCodecs ;
-	daemon.setActiveCodecList(activeCodecs);
+	configurationManager.setActiveCodecList(activeCodecs);
 }
 
 void ConfigurationDialog::setPage(int page)
@@ -435,11 +448,13 @@ void ConfigurationDialog::updateCodecListCommands()
 
 void ConfigurationDialog::on_edit1_alias_textChanged(const QString & text)
 {
-	listWidget_accountList->currentItem()->setText(text);
+	qDebug() << "on_edit1_alias_textChanged";
+	//listWidget_accountList->currentItem()->setText(text);
 }
 
 void ConfigurationDialog::on_spinBox_SIPPort_valueChanged ( int value )
 {
+	qDebug() << "on_spinBox_SIPPort_valueChanged";
 	if(value>1024 && value<65536)
 		label_WarningSIP->setVisible(false);
 	else
@@ -470,7 +485,7 @@ void ConfigurationDialog::on_toolButton_codecUp_clicked()
 
 void ConfigurationDialog::on_toolButton_codecDown_clicked()
 {
-	qDebug() << "on_toolButton_codecUp_clicked";
+	qDebug() << "on_toolButton_codecDown_clicked";
 	int currentCol = tableWidget_codecs->currentColumn();
 	int currentRow = tableWidget_codecs->currentRow();
 	int nbCol = tableWidget_codecs->columnCount();
@@ -496,6 +511,7 @@ void ConfigurationDialog::on_listWidget_accountList_currentItemChanged ( QListWi
 
 void ConfigurationDialog::on_button_accountUp_clicked()
 {
+	qDebug() << "on_button_accountUp_clicked";
 	int currentRow = listWidget_accountList->currentRow();
 	QListWidgetItem * item = listWidget_accountList->takeItem(currentRow);
 	listWidget_accountList->insertItem(currentRow - 1 , item);
@@ -504,6 +520,7 @@ void ConfigurationDialog::on_button_accountUp_clicked()
 
 void ConfigurationDialog::on_button_accountDown_clicked()
 {
+	qDebug() << "on_button_accountDown_clicked";
 	int currentRow = listWidget_accountList->currentRow();
 	QListWidgetItem * item = listWidget_accountList->takeItem(currentRow);
 	listWidget_accountList->insertItem(currentRow + 1 , item);
@@ -512,13 +529,12 @@ void ConfigurationDialog::on_button_accountDown_clicked()
 
 void ConfigurationDialog::on_button_accountAdd_clicked()
 {
+	qDebug() << "on_button_accountAdd_clicked";
 	QString itemName = QInputDialog::getText(this, "New account", "Enter new account's alias");
 	itemName = itemName.simplified();
 	if (!itemName.isEmpty()) {
-		QListWidgetItem * item = accountList->addAccount(itemName);
-     
-		//TODO verifier que addItem set bien le parent
-		listWidget_accountList->addItem(item);
+		Account * account = accountList->addAccount(itemName);
+		addAccountToAccountList(account);
 		int r = listWidget_accountList->count() - 1;
 		listWidget_accountList->setCurrentRow(r);
 		frame2_editAccounts->setEnabled(true);
@@ -527,6 +543,7 @@ void ConfigurationDialog::on_button_accountAdd_clicked()
 
 void ConfigurationDialog::on_button_accountRemove_clicked()
 {
+	qDebug() << "on_button_accountRemove_clicked";
 	int r = listWidget_accountList->currentRow();
 	QListWidgetItem * item = listWidget_accountList->takeItem(r);
 	accountList->removeAccount(item);
@@ -536,6 +553,7 @@ void ConfigurationDialog::on_button_accountRemove_clicked()
 
 void ConfigurationDialog::on_buttonBoxDialog_clicked(QAbstractButton * button)
 {
+	qDebug() << "on_buttonBoxDialog_clicked";
 	if(buttonBoxDialog->standardButton(button) == QDialogButtonBox::Apply)
 	{
 		this->saveOptions();
@@ -578,34 +596,3 @@ void ConfigurationDialog::on_tableWidget_codecs_currentCellChanged(int currentRo
 	}
 	updateCodecListCommands();
 }
-
-/*
-void ConfigurationDialog::on_listWidgetComptes_itemChanged(QListWidgetItem * item)
-{
-	if(! item)  { qDebug() << "Attempting to save details of an account from a NULL item\n"; return; }
-	
-	Account * account = accountList->getAccountByItem(item);
-	if(! account)  {  qDebug() << "Attempting to save details of an unexisting account\n"; return;  }
-
-	if(item->checkState() != account->getAccountState)
-	
-	if(buttonBoxDialog->standardButton(button) == QDialogButtonBox::Apply)
-	{
-		this->saveOptions();
-		this->loadOptions();
-	}
-	if(buttonBoxDialog->standardButton(button) == QDialogButtonBox::RestoreDefaults)
-	{
-		this->loadOptions();
-	}
-	if(buttonBoxDialog->standardButton(button) == QDialogButtonBox::Ok)
-	{
-		this->saveOptions();
-		this->setVisible(false);
-	}
-	if(buttonBoxDialog->standardButton(button) == QDialogButtonBox::Cancel)
-	{
-		this->setVisible(false);
-	}
-}
-*/
\ No newline at end of file
diff --git a/sflphone_kde/ConfigDialog.h b/sflphone_kde/ConfigDialog.h
index 72e94458199df62e5b8bb61775413f5ae93cc12f..259e110d30367de1ec761e1aaba243e08ca70ffd 100644
--- a/sflphone_kde/ConfigDialog.h
+++ b/sflphone_kde/ConfigDialog.h
@@ -28,6 +28,8 @@ public:
 
 	void loadAccountList();
 	void saveAccountList();
+	
+	void addAccountToAccountList(Account * account);
 
 	void loadCodecs();
 	void saveCodecs();
diff --git a/sflphone_kde/ConfigDialog.ui b/sflphone_kde/ConfigDialog.ui
index 342ec5d390f2c30fb9ac808486214961c0d9b2c4..3e9d6154b9b682b842d93a54b1a95d4a6388f914 100644
--- a/sflphone_kde/ConfigDialog.ui
+++ b/sflphone_kde/ConfigDialog.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>504</width>
-    <height>435</height>
+    <height>455</height>
    </rect>
   </property>
   <property name="minimumSize" >
@@ -474,7 +474,7 @@
                <item>
                 <widget class="QListWidget" name="listWidget_accountList" >
                  <property name="sizePolicy" >
-                  <sizepolicy vsizetype="Expanding" hsizetype="Fixed" >
+                  <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
                    <horstretch>0</horstretch>
                    <verstretch>0</verstretch>
                   </sizepolicy>
@@ -797,10 +797,16 @@
          </item>
          <item>
           <widget class="QGroupBox" name="groupBox1_audio" >
+           <property name="mouseTracking" >
+            <bool>false</bool>
+           </property>
            <property name="title" >
             <string/>
            </property>
            <layout class="QFormLayout" name="formLayout_3" >
+            <property name="fieldGrowthPolicy" >
+             <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+            </property>
             <item row="0" column="0" >
              <widget class="QLabel" name="label_interface" >
               <property name="text" >
@@ -839,7 +845,35 @@
              </widget>
             </item>
             <item row="1" column="1" >
-             <widget class="KUrlComboRequester" name="kurlcomborequester" />
+             <widget class="KUrlComboRequester" name="urlComboRequester_ringtone" />
+            </item>
+            <item row="2" column="0" >
+             <widget class="KLed" name="kled" >
+              <property name="sizePolicy" >
+               <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="mouseTracking" >
+               <bool>false</bool>
+              </property>
+              <property name="focusPolicy" >
+               <enum>Qt::NoFocus</enum>
+              </property>
+              <property name="layoutDirection" >
+               <enum>Qt::RightToLeft</enum>
+              </property>
+              <property name="state" >
+               <enum>KLed::On</enum>
+              </property>
+              <property name="shape" >
+               <enum>KLed::Circular</enum>
+              </property>
+              <property name="look" >
+               <enum>KLed::Flat</enum>
+              </property>
+             </widget>
             </item>
            </layout>
           </widget>
@@ -1098,6 +1132,11 @@
  </widget>
  <layoutdefault spacing="4" margin="4" />
  <customwidgets>
+  <customwidget>
+   <class>KLed</class>
+   <extends>QWidget</extends>
+   <header>kled.h</header>
+  </customwidget>
   <customwidget>
    <class>KUrlComboRequester</class>
    <extends>KUrlRequester</extends>
diff --git a/sflphone_kde/sflphone-qt.ui b/sflphone_kde/sflphone-qt.ui
index b92044de3f7e6b1d690cfc49514cbacb6a479b1d..6189ef6c7c118a56f088f133710bda4e89b601a2 100644
--- a/sflphone_kde/sflphone-qt.ui
+++ b/sflphone_kde/sflphone-qt.ui
@@ -12,6 +12,10 @@
   <property name="windowTitle" >
    <string>SFLPhone</string>
   </property>
+  <property name="windowIcon" >
+   <iconset resource="resources.qrc" >
+    <normaloff>:/images/icons/sflphone.png</normaloff>:/images/icons/sflphone.png</iconset>
+  </property>
   <widget class="QWidget" name="centralwidget" >
    <layout class="QVBoxLayout" name="verticalLayout" >
     <property name="sizeConstraint" >