diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp
index 7103a4d5810faf930f9b6dc4d4f77404b193bf6f..62bf9dca483463db723acf4dc8ea47cb3bfc11ce 100644
--- a/src/accountmodel.cpp
+++ b/src/accountmodel.cpp
@@ -61,8 +61,8 @@ void AccountModelPrivate::init()
    CallManagerInterface& callManager = DBus::CallManager::instance();
    ConfigurationManagerInterface& configurationManager = DBus::ConfigurationManager::instance();
 
-   connect(&configurationManager, SIGNAL(sipRegistrationStateChanged(QString,QString,int)),this ,
-      SLOT(slotAccountChanged(QString,QString,int)));
+   connect(&configurationManager, SIGNAL(registrationStateChanged(QString,int, unsigned, QString)),this ,
+      SLOT(slotAccountChanged(QString,int, unsigned, QString)));
    connect(&configurationManager, SIGNAL(accountsChanged())                               ,q_ptr,
       SLOT(updateAccounts())                  );
    connect(&callManager         , SIGNAL(voiceMailNotify(QString,int))                    ,this ,
@@ -197,7 +197,7 @@ Account::RegistrationState AccountModelPrivate::fromDaemonName(const QString& st
 }
 
 ///Account status changed
-void AccountModelPrivate::slotAccountChanged(const QString& account,const QString& status, int code)
+void AccountModelPrivate::slotAccountChanged(const QString& account,int registration_state, unsigned code, const QString& status)
 {
    Account* a = q_ptr->getById(account.toLatin1());
 
diff --git a/src/private/accountmodel_p.h b/src/private/accountmodel_p.h
index e98db48fc9674e548c0e583d20c0f16795c59527..4fbba889e7690e5276773652f602cf42754e0899 100644
--- a/src/private/accountmodel_p.h
+++ b/src/private/accountmodel_p.h
@@ -54,7 +54,7 @@ public:
    static  QHash<QByteArray,AccountPlaceHolder*> m_hsPlaceHolder;
 
 public Q_SLOTS:
-   void slotAccountChanged(const QString& account,const QString& state, int code);
+   void slotAccountChanged(const QString& account,int registration_state, unsigned code, const QString& status);
    void slotAccountChanged(Account* a);
    void slotVoiceMailNotify( const QString& accountID , int count );
    void slotAccountPresenceEnabledChanged(bool state);
diff --git a/src/qtwrapper/configurationmanager_wrap.h b/src/qtwrapper/configurationmanager_wrap.h
index 7e7ec6a2bf17084980a917364fef4ae7d172e10b..d750408196e680a2e237c3289940bcbcfb7046d8 100644
--- a/src/qtwrapper/configurationmanager_wrap.h
+++ b/src/qtwrapper/configurationmanager_wrap.h
@@ -77,15 +77,12 @@ public:
                        });
             }),
             exportable_callback<ConfigurationSignal::RegistrationStateChanged>(
-                [this] (const std::string &accountID, int registration_state) {
-                       QTimer::singleShot(0, [this, accountID, registration_state] {
-                             emit this->registrationStateChanged(QString(accountID.c_str()), registration_state);
-                       });
-            }),
-            exportable_callback<ConfigurationSignal::SipRegistrationStateChanged>(
-                [this] (const std::string &accountID, const std::string &state, int code) {
-                       QTimer::singleShot(0, [this,accountID, state, code] {
-                             emit this->sipRegistrationStateChanged(QString(accountID.c_str()), QString(state.c_str()), code);
+                [this] (const std::string &accountID, int registration_state, unsigned detail_code, const std::string& detail_str) {
+                       QTimer::singleShot(0, [this, accountID, registration_state, detail_code, detail_str] {
+                             emit this->registrationStateChanged(QString(accountID.c_str()),
+                                                                registration_state,
+                                                                detail_code,
+                                                                QString(detail_str.c_str()));
                        });
             }),
             exportable_callback<ConfigurationSignal::VolatileDetailsChanged>(
@@ -513,8 +510,7 @@ Q_SIGNALS: // SIGNALS
     void accountsChanged();
     void historyChanged();
     void stunStatusFailure(const QString &reason);
-    void registrationStateChanged(const QString &accountID, int registration_state);
-    void sipRegistrationStateChanged(const QString &accountID, const QString &state, int code);
+    void registrationStateChanged(const QString& accountID, int registration_state, unsigned detail_code, const QString& detail_str);
     void stunStatusSuccess(const QString &message);
     void errorAlert(int code);
     void volatileAccountDetailsChanged(const QString &accountID, MapStringString details);