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/Call.cpp b/sflphone-client-kde/src/Call.cpp
index e5f2e94c1f6cad8eee3ad25a3f2a25f44867b283..5539577e4f1e8c408083326099d7b3c35a4636ff 100644
--- a/sflphone-client-kde/src/Call.cpp
+++ b/sflphone-client-kde/src/Call.cpp
@@ -54,7 +54,7 @@ const function Call::actionPerformedFunctionMap[11][5] =
 /*INCOMING       */  {&Call::accept     , &Call::refuse   , &Call::acceptTransf   , &Call::acceptHold  ,  &Call::setRecord     },
 /*RINGING        */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::nothing     ,  &Call::setRecord     },
 /*CURRENT        */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::hold        ,  &Call::setRecord     },
-/*DIALING        */  {&Call::call       , &Call::nothing  , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
+/*DIALING        */  {&Call::call       , &Call::cancel  , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
 /*HOLD           */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::unhold      ,  &Call::setRecord     },
 /*FAILURE        */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
 /*BUSY           */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
@@ -275,6 +275,14 @@ call_state Call::getStartStateFromDaemonCallState(QString daemonCallState, QStri
 	{
 		return CALL_STATE_RINGING;
 	}
+	else if(daemonCallState == DAEMON_CALL_STATE_INIT_INCOMING)
+	{
+		return CALL_STATE_INCOMING;
+	}
+	else if(daemonCallState == DAEMON_CALL_STATE_INIT_RINGING)
+	{
+		return CALL_STATE_RINGING;
+	}
 	else
 	{
 		return CALL_STATE_FAILURE;
@@ -558,6 +566,13 @@ void Call::hangUp()
 	callManager.hangUp(callId);
 }
 
+void Call::cancel()
+{
+	CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance();
+	qDebug() << "Canceling call. callId : " << callId;
+	callManager.hangUp(callId);
+}
+
 void Call::hold()
 {
 	CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance();
diff --git a/sflphone-client-kde/src/Call.h b/sflphone-client-kde/src/Call.h
index 143c0cb4ebfa5075e9cedeb6951bffe468a832ef..8ec2ca9a0f6c4b57aaa56506b816355f063ae522 100644
--- a/sflphone-client-kde/src/Call.h
+++ b/sflphone-client-kde/src/Call.h
@@ -167,6 +167,7 @@ private:
 	void acceptTransf();
 	void acceptHold();
 	void hangUp();
+	void cancel();
 	void hold();
 	void call();
 	void transfer();
diff --git a/sflphone-client-kde/src/CallList.cpp b/sflphone-client-kde/src/CallList.cpp
index ca189dee7763918ddb9e57d6b23890d990d74bab..d3415983fbec25f2f037a9654ec968851c1bee41 100644
--- a/sflphone-client-kde/src/CallList.cpp
+++ b/sflphone-client-kde/src/CallList.cpp
@@ -31,7 +31,6 @@ CallList::CallList()
 	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	QStringList callList = callManager.getCallList();
 	qDebug() << "Call List = " << callList;
-	callIdCpt = 0;
 	calls = new QVector<Call *>();
 	for(int i = 0 ; i < callList.size() ; i++)
 	{
@@ -49,7 +48,7 @@ CallList::CallList()
 		QString name = param[2];
 		uint stopTimeStamp = param[3].toUInt();
 		QString account = param[4];
-		calls->append(Call::buildHistoryCall(getAndIncCallId(), startTimeStamp, stopTimeStamp, account, name, number, type));
+		calls->append(Call::buildHistoryCall(generateCallId(), startTimeStamp, stopTimeStamp, account, name, number, type));
 	}
 }
 
@@ -127,10 +126,11 @@ Call * CallList::operator[](int ind)
 	return (*calls)[ind];
 }
 
-QString CallList::getAndIncCallId()
+
+QString CallList::generateCallId()
 {
-	QString res = QString::number(callIdCpt++);
-	
+	int id = qrand();
+	QString res = QString::number(id);
 	return res;
 }
 
@@ -141,7 +141,7 @@ int CallList::size()
 
 Call * CallList::addDialingCall(const QString & peerName, QString account)
 {
-	Call * call = Call::buildDialingCall(getAndIncCallId(), peerName, account);
+	Call * call = Call::buildDialingCall(generateCallId(), peerName, account);
 	calls->append(call);
 	return call;
 }
diff --git a/sflphone-client-kde/src/CallList.h b/sflphone-client-kde/src/CallList.h
index 2ca3dd10b1f0d304b276bbc1db4df9c7acdda67a..e9ff5341b32a19a4822620b7e63886495eb733c7 100644
--- a/sflphone-client-kde/src/CallList.h
+++ b/sflphone-client-kde/src/CallList.h
@@ -35,7 +35,6 @@ Q_OBJECT
 private:
 
 	QVector<Call *> * calls;
-	int callIdCpt;
 
 public:
 
@@ -58,7 +57,7 @@ public:
 	Call * addRingingCall(const QString & callId);
 
 	//GSetter
-	QString getAndIncCallId();
+	QString generateCallId();
 	
 public slots:
 	void clearHistory();
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());
diff --git a/sflphone-client-kde/src/main.cpp b/sflphone-client-kde/src/main.cpp
index ae4bd9142787bf43d2ba0ce85881f4f0fe06606d..23853b339751d74b5fcc37be72497c252f6a15aa 100644
--- a/sflphone-client-kde/src/main.cpp
+++ b/sflphone-client-kde/src/main.cpp
@@ -39,9 +39,7 @@ int main(int argc, char **argv)
 		   KLocalizedString(), 
 		   "http://www.sflphone.org.", 
 		   "sflphone@lists.savoirfairelinux.net");
-		about.setProgramLogo(QVariant(QImage(ICON_SFLPHONE)));
 		about.addAuthor( ki18n("Jérémy Quentin"), KLocalizedString(), "jeremy.quentin@savoirfairelinux.com" );
-		about.setProgramIconName(ICON_SFLPHONE);
 		about.setTranslator( ki18nc("NAME OF TRANSLATORS","Your names"), ki18nc("EMAIL OF TRANSLATORS","Your emails") );
 		KCmdLineArgs::init(argc, argv, &about);
 		KCmdLineOptions options;
diff --git a/sflphone-client-kde/src/sflphone_const.h b/sflphone-client-kde/src/sflphone_const.h
index 06d67cef2b1cd91e6d654cf6e066bc06db16a8ce..aa08c6e4e096ca92afacc8df1b30fdad59b25621 100644
--- a/sflphone-client-kde/src/sflphone_const.h
+++ b/sflphone-client-kde/src/sflphone_const.h
@@ -167,6 +167,8 @@
 #define DAEMON_CALL_STATE_INIT_CURRENT    "CURRENT"
 #define DAEMON_CALL_STATE_INIT_HOLD       "HOLD"
 #define DAEMON_CALL_STATE_INIT_BUSY       "BUSY"
+#define DAEMON_CALL_STATE_INIT_INCOMING       "INCOMING"
+#define DAEMON_CALL_STATE_INIT_RINGING       "RINGING"
 #define DAEMON_CALL_STATE_INIT_INACTIVE   "INACTIVE"
 
 #define DAEMON_CALL_TYPE_INCOMING         "0"