diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 0190f677e679..d1d4d85ebe76 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -791,8 +791,7 @@ void IPU3CameraData::cancelPendingRequests()
 	while (!pendingRequests_.empty()) {
 		Request *request = pendingRequests_.front();
 
-		for (auto it : request->buffers()) {
-			FrameBuffer *buffer = it.second;
+		for (auto [stream, buffer] : request->buffers()) {
 			buffer->_d()->cancel();
 			pipe()->completeBuffer(request, buffer);
 		}
@@ -1225,10 +1224,7 @@ void IPU3CameraData::paramsComputed(unsigned int id)
 		return;
 
 	/* Queue all buffers from the request aimed for the ImgU. */
-	for (auto it : info->request->buffers()) {
-		const Stream *stream = it.first;
-		FrameBuffer *outbuffer = it.second;
-
+	for (auto [stream, outbuffer] : info->request->buffers()) {
 		if (stream == &outStream_)
 			imgu_->output_->queueBuffer(outbuffer);
 		else if (stream == &vfStream_)
@@ -1304,8 +1300,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)
 
 	/* If the buffer is cancelled force a complete of the whole request. */
 	if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
-		for (auto it : request->buffers()) {
-			FrameBuffer *b = it.second;
+		for (auto [stream, b] : request->buffers()) {
 			b->_d()->cancel();
 			pipe()->completeBuffer(request, b);
 		}
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index 4a03c149a617..025e7dbdd26f 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -607,8 +607,7 @@ void VimcCameraData::imageBufferReady(FrameBuffer *buffer)
 
 	/* If the buffer is cancelled force a complete of the whole request. */
 	if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
-		for (auto it : request->buffers()) {
-			FrameBuffer *b = it.second;
+		for (auto [stream, b] : request->buffers()) {
 			b->_d()->cancel();
 			pipe->completeBuffer(request, b);
 		}
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 25b61d049a0e..02c50886a084 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -2042,10 +2042,8 @@ int V4L2VideoDevice::streamOff()
 	state_ = State::Stopping;
 
 	/* Send back all queued buffers. */
-	for (auto it : queuedBuffers_) {
-		FrameBuffer *buffer = it.second;
-
-		cache_->put(it.first);
+	for (auto [id, buffer] : queuedBuffers_) {
+		cache_->put(id);
 		buffer->_d()->cancel();
 		bufferReady.emit(buffer);
 	}
