diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
index bdf0036..ee6f907 100644
--- a/src/v4l2/v4l2_camera.cpp
+++ b/src/v4l2/v4l2_camera.cpp
@@ -149,6 +149,7 @@ void V4L2Camera::freeBuffers()
 {
 	Stream *stream = *camera_->streams().begin();
 
+	pendingRequests_.clear();
 	bufferAllocator_->free(stream);
 }
 
@@ -189,10 +190,11 @@ int V4L2Camera::streamOn()
 
 int V4L2Camera::streamOff()
 {
-	/* \todo Restore buffers to reqbufs state? */
 	if (!isRunning_)
 		return 0;
 
+	pendingRequests_.clear();
+
 	int ret = camera_->stop();
 	if (ret < 0)
 		return ret == -EACCES ? -EBUSY : ret;
