diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index ec6d265d..d2419b96 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -428,7 +428,7 @@ int V4L2CameraProxy::vidioc_dqbuf(struct v4l2_buffer *arg)
 
 	if (nonBlocking_ && !vcam_->bufferSema_.tryAcquire())
 		return -EAGAIN;
-	else
+	else if (!nonBlocking_)
 		vcam_->bufferSema_.acquire();
 
 	updateBuffers();
