diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index f9329866acb31f37c7597c707327281fc5a0857f..8f73636e75a183769cc0719d74a0889d8a0a6504 100644
--- a/src/sip/sipvoiplink.cpp
+++ b/src/sip/sipvoiplink.cpp
@@ -747,10 +747,10 @@ SIPVoIPLink::enqueueKeyframeRequest(const std::string &id)
 void
 SIPVoIPLink::dequeKeyframeRequests()
 {
+    std::lock_guard<std::mutex> lock(keyframeRequestsMutex_);
     int max_requests = 20;
 
     while (not keyframeRequests_.empty() and max_requests--) {
-        std::lock_guard<std::mutex> lock(keyframeRequestsMutex_);
         const std::string &id(keyframeRequests_.front());
         requestKeyframe(id);
         keyframeRequests_.pop();