diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index a8ed7652..b0194c2f 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -279,10 +279,12 @@ gst_libcamera_src_task_run(gpointer user_data)
 						     &buffer, nullptr);
 		if (ret != GST_FLOW_OK) {
 			/*
-			 * RequestWrap does not take ownership, and we won't be
+			 * RequestWrap has ownership, and we won't be
 			 * queueing this one due to lack of buffers.
+			 * So the request will be freed when RequestWrap
+			 * goes out of scope.
 			 */
-			request.reset();
+			request.release();
 			break;
 		}
 
