diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index b986824ad387bccb0b616f8374caf3ff1586c1f2..dc09c3a85144e231bb2199222c1ea573118f1c7c 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -310,16 +310,18 @@ bool ManagerImpl::outgoingCall (const std::string& account_id,
     }
 
     Call *call = NULL;
-    call = getAccountLink(account_id)->newOutgoingCall (call_id, to_cleaned);
-    if (call) {
+    try {
+        call = getAccountLink(account_id)->newOutgoingCall (call_id, to_cleaned);
+        
         switchCall (call_id);
-    } else {
+        
+        call->setConfId(conf_id);
+    } catch (VoipLinkException &e) {
         callFailure (call_id);
-        _debug ("Manager: Error: An error occur, the call was not created");
+        _error ("Manager: %s", e.what());
+	return false;
     }
 
-    call->setConfId(conf_id);
-
     getMainBuffer()->stateInfo();
 
     return true;
@@ -499,7 +501,7 @@ bool ManagerImpl::hangupConference (const ConfID& id)
         ParticipantSet::iterator iter_participant = participants.begin();
 
         while (iter_participant != participants.end()) {
-            _debug ("Manager: Hangup onference participant %s", (*iter_participant).c_str());
+            _debug ("Manager: Hangup conference participant %s", (*iter_participant).c_str());
 
             hangupCall (*iter_participant);