diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp
index 70bda7043309bd2400d5d8829dbb2278017579f6..d07b7d605dc0f31a9ce0002748ddbfec8ffa0c73 100644
--- a/src/managerimpl.cpp
+++ b/src/managerimpl.cpp
@@ -1758,6 +1758,10 @@ ManagerImpl::addAccount(const std::map< ::DBus::String, ::DBus::String >& detail
   _accountMap[newAccountID] = newAccount;
 
   setAccountDetails(accountID.str(), details);
+
+  saveConfig();
+  
+  if (_dbus) _dbus->getConfigurationManager()->accountsChanged();
 }
 
 void 
@@ -1775,6 +1779,8 @@ ManagerImpl::removeAccount(const AccountID& accountID)
   _config.removeSection(accountID);
 
   saveConfig();
+  
+  if (_dbus) _dbus->getConfigurationManager()->accountsChanged();
 }
 
 //THREAD=Main
diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp
index fa531eb28b14cc3a18df007ecd0ebede543799d9..9d1a0f5cf74d4310dd9af7fe82e6deef70ca5e59 100644
--- a/src/sipvoiplink.cpp
+++ b/src/sipvoiplink.cpp
@@ -69,8 +69,8 @@ SIPVoIPLink::SIPVoIPLink(const AccountID& accountID)
 
 SIPVoIPLink::~SIPVoIPLink()
 {
-  delete _evThread; _evThread = 0;
   terminate();
+  delete _evThread; _evThread = 0;
 }
 
 bool