diff --git a/sflphone-client-kde/src/Account.cpp b/sflphone-client-kde/src/Account.cpp
index e4cbead64c0b1c1c68c0b23bfaacdca60de756b1..0de2b732a4c2865059337240e229db9fdf8c46b2 100644
--- a/sflphone-client-kde/src/Account.cpp
+++ b/sflphone-client-kde/src/Account.cpp
@@ -53,7 +53,9 @@ const QString account_state_name(QString & s)
 
 //Constructors
 
-Account::Account():accountId(NULL), item(NULL), itemWidget(NULL){}
+Account::Account():accountId(NULL), item(NULL), itemWidget(NULL)
+{
+}
 
 
 void Account::initAccountItem()
@@ -90,6 +92,7 @@ void Account::initAccountItemWidget()
 	{
 		itemWidget->setState(AccountItemWidget::NotWorking);
 	}
+	connect(itemWidget, SIGNAL(checkStateChanged(bool)), this, SLOT(setEnabled(bool)));
 }
 
 Account * Account::buildExistingAccountFromId(QString _accountId)
@@ -147,13 +150,11 @@ MapStringString & Account::getAccountDetails() const
 
 QListWidgetItem * Account::getItem()
 {
-	if(!item)  {	qDebug() << "null" ;	}
 	return item;
 }
 
 AccountItemWidget * Account::getItemWidget()
 {
-	if(itemWidget == NULL)  {	qDebug() << "null";	}
 	return itemWidget;
 }
 
@@ -214,6 +215,12 @@ void Account::setAccountId(QString id)
 	accountId = new QString(id);
 }
 
+void Account::setEnabled(bool checked)
+{
+	qDebug() << "setEnabled = " << checked;
+	setAccountDetail(ACCOUNT_ENABLED, checked ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE);
+}
+
 void Account::updateState()
 {
 	qDebug() << "updateState";
diff --git a/sflphone-client-kde/src/Account.h b/sflphone-client-kde/src/Account.h
index e1463bb64e3b280999f25f7a14e1bc7b49392187..65456d57f1526ebd1d8601bd2f5550f349f43b34 100644
--- a/sflphone-client-kde/src/Account.h
+++ b/sflphone-client-kde/src/Account.h
@@ -31,8 +31,8 @@
 
 const QString account_state_name(QString & s);
 
-class Account{
-	
+class Account : public QObject{
+Q_OBJECT
 private:
 
 	QString * accountId;
@@ -76,6 +76,10 @@ public:
 	//Operators
 	bool operator==(const Account&)const;
 	
+private slots:
+	void setEnabled(bool checked);
+	
+	
 	
 };
 
diff --git a/sflphone-client-kde/src/AccountItemWidget.cpp b/sflphone-client-kde/src/AccountItemWidget.cpp
index ab841e83a60a089db27df0bae82344571972aa49..3549b5fd92f2da3398e394d35ec317e6606faebe 100644
--- a/sflphone-client-kde/src/AccountItemWidget.cpp
+++ b/sflphone-client-kde/src/AccountItemWidget.cpp
@@ -113,7 +113,8 @@ bool AccountItemWidget::getEnabled()
 	return checkBox->checkState();
 }
 
-void AccountItemWidget::on_checkBox_stateChanged()
+void AccountItemWidget::on_checkBox_stateChanged(int state)
 {
-	emit checkStateChanged();
+	qDebug() << "on_checkBox_stateChanged";
+	emit checkStateChanged(state == Qt::Checked);
 }
diff --git a/sflphone-client-kde/src/AccountItemWidget.h b/sflphone-client-kde/src/AccountItemWidget.h
index 25c1a688dc1fb7c88a753d793a1de68ce69db6f5..60055a3e5b09728a0bc886d9c152eecaee791294 100644
--- a/sflphone-client-kde/src/AccountItemWidget.h
+++ b/sflphone-client-kde/src/AccountItemWidget.h
@@ -65,11 +65,11 @@ public:
 	void updateDisplay();
 	
 private slots:	
-	void on_checkBox_stateChanged();
+	void on_checkBox_stateChanged(int state);
 	
 	
 signals:
-	void checkStateChanged();
+	void checkStateChanged(bool checked);
 
 };
 
diff --git a/sflphone-client-kde/src/conf/dlgaccounts.cpp b/sflphone-client-kde/src/conf/dlgaccounts.cpp
index f0732f85e8c26f9eff9d3a0e99da26b1cc1ffcdd..14a2089c95045ca1188f3ebd8114c61fae839d1a 100644
--- a/sflphone-client-kde/src/conf/dlgaccounts.cpp
+++ b/sflphone-client-kde/src/conf/dlgaccounts.cpp
@@ -109,7 +109,6 @@ void DlgAccounts::saveAccountList()
 			}
 		}
 		qDebug() << currentId << " : " << current.isChecked();
-		configurationManager.sendRegister(currentId, current.isChecked() ? 1 : 0 );
 	}
 	//remove accounts that are in the configurationManager but not in the client
 	for (int i = 0; i < accountIds.size(); i++)
@@ -205,7 +204,7 @@ void DlgAccounts::addAccountToAccountList(Account * account)
 	qDebug() << "addAccountToAccountList";
 	QListWidgetItem * item = account->getItem();
 	QWidget * widget = account->getItemWidget();
-	connect(widget, SIGNAL(checkStateChanged()),
+	connect(widget, SIGNAL(checkStateChanged(bool)),
 	        this,   SLOT(changedAccountList()));
 	qDebug() << "item->isHidden()" << item->isHidden();
 	listWidget_accountList->addItem(item);
@@ -215,6 +214,7 @@ void DlgAccounts::addAccountToAccountList(Account * account)
 
 void DlgAccounts::changedAccountList()
 {
+	qDebug() << "changedAccountList";
 	accountListHasChanged = true;
 	emit updateButtons();
 	toolButton_accountsApply->setEnabled(hasChanged());