diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index afcdc1ea0161..5c5e95c9c9da 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -673,6 +673,8 @@ int V4L2Device::releaseBuffers()
 {
 	LOG(V4L2, Debug) << "Releasing bufferPool";
 
+	streamOff();
+
 	requestBuffers(0);
 	bufferPool_ = nullptr;
 
