diff --git a/src/manager.cpp b/src/manager.cpp
index 552e00a8c0d90fbeb629e60cc45129c361dcde11..072195c37081ff5068f76a31019e44809c84ff31 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -929,6 +929,11 @@ Manager::answerCall(const std::string& call_id)
     // if it was waiting, it's waiting no more
     pimpl_->removeWaitingCall(call_id);
 
+    if (!result) {
+        // do not switch to this call if it was not properly started
+        return false;
+    }
+
     // if we dragged this call into a conference already
     if (isConferenceParticipant(call_id))
         pimpl_->switchCall(call->getConfId());