diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index b9e33bdb9265afbe1032ac3c7e008006ca23d7dc..2807a64f4df35d20f050c8319fa6cf1c48aab59e 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -449,9 +449,9 @@ bool ManagerImpl::hangupCall (const CallID& callId)
     _debug ("Manager: Send DBUS call state change (HUNGUP) for id %s", callId.c_str());
     _dbus->getCallManager()->callStateChanged (callId, "HUNGUP");
 
-    if(!isValidCall(callId)) {
+    if (not isValidCall(callId) and not getConfigFromCall(callId) == Call::IPtoIP) {
     	_error("Manager: Error: Could not hang up call, call not valid");
-    	return false;
+        return false;
     }
 
     // Disconnect streams