diff --git a/daemon/src/video/video_v4l2_list.cpp b/daemon/src/video/video_v4l2_list.cpp
index 2a811890bc5fdb69fcecf6a0d7900fa1c50c37ae..e7e704a418501f0adf5eaadc79ea309f424b3c93 100644
--- a/daemon/src/video/video_v4l2_list.cpp
+++ b/daemon/src/video/video_v4l2_list.cpp
@@ -288,12 +288,12 @@ void VideoV4l2ListThread::delDevice(const string &node)
 {
     ScopedLock lock(mutex_);
 
-    for (auto itr = devices_.begin(); itr != devices_.end(); ++itr) {
-        if (itr->device == node) {
-            devices_.erase(itr);
-            Manager::instance().getVideoControls()->deviceEvent();
-            return;
-        }
+    const auto itr = std::find_if(devices_.begin(), devices_.end(),
+            [&] (const VideoV4l2Device &d) { return d.device == node; });
+
+    if (itr != devices_.end()) {
+        devices_.erase(itr);
+        Manager::instance().getVideoControls()->deviceEvent();
     }
 }