diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp
index 8c96be83b5dcc6ee99f455a0d59ad38fae25ec4b..0f3cd20cec164ffdd7fff5f6406ee617d7a5327b 100644
--- a/daemon/src/managerimpl.cpp
+++ b/daemon/src/managerimpl.cpp
@@ -1708,11 +1708,11 @@ ManagerImpl::callBusy(const std::string& id)
 void
 ManagerImpl::callFailure(const std::string& call_id)
 {
+    client_.getCallManager()->callStateChanged(call_id, "FAILURE");
+
     auto call = getCallFromCallID(call_id);
     if (!call) return;
 
-    client_.getCallManager()->callStateChanged(call_id, "FAILURE");
-
     if (isCurrentCall(*call)) {
         playATone(Tone::TONE_BUSY);
         unsetCurrentCall();