diff --git a/src/call.h b/src/call.h
index 1410f13e310d8cc5ded25b58667183695bb5f910..10e3121b0f9aace24ec85275639016a4fd1233c3 100644
--- a/src/call.h
+++ b/src/call.h
@@ -283,6 +283,7 @@ public:
 
     void addStateListener(StateListenerCb&& listener)
     {
+        std::lock_guard<std::recursive_mutex> lk {callMutex_};
         stateChangedListeners_.emplace_back(std::move(listener));
     }