diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index f0186067e71afa84c29cb741f637d3731f934975..454ee91dfa662cba02e385ec420c5080c8a5dc85 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -475,7 +475,14 @@ bool ManagerImpl::hangupCall (const std::string& callId)
 
     if (getConfigFromCall (callId) == Call::IPtoIP) {
         /* Direct IP to IP call */
-        returnValue = SIPVoIPLink::instance ()->hangup (callId);
+        try {
+            returnValue = SIPVoIPLink::instance ()->hangup (callId);
+        }
+        catch (const VoipLinkException &e)
+        {
+            _error("%s", e.what());
+            returnValue = 1;
+        }
     }
     else {
     	std::string accountId = getAccountFromCall (callId);