diff --git a/src/cam/camera_session.cpp b/src/cam/camera_session.cpp
index 605018278c5a..594cd51bb6a2 100644
--- a/src/cam/camera_session.cpp
+++ b/src/cam/camera_session.cpp
@@ -348,6 +348,9 @@ void CameraSession::processRequest(Request *request)
 {
 	const Request::BufferMap &buffers = request->buffers();
 
+	if (captureLimit_ && captureCount_ >= captureLimit_)
+		return;
+
 	/*
 	 * Compute the frame rate. The timestamp is arbitrarily retrieved from
 	 * the first buffer, as all buffers should have matching timestamps.
