diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp
index 51d8342d80b9420de3435c53a01b7e1e46501606..ab0f97ff7d588c5ed014647983ea0de8aa8db0cb 100644
--- a/src/managerimpl.cpp
+++ b/src/managerimpl.cpp
@@ -274,6 +274,11 @@ ManagerImpl::answerCall(const CallID& id)
     return false;
   }
 
+  if (hasCurrentCall()) {
+    _debug("* Manager Info: there is currently a call, try to hold it\n");
+    onHoldCall(getCurrentCallId());
+  }
+
   if (!getAccountLink(accountid)->answer(id)) {
     // error when receiving...
     removeCallAccount(id);