diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c
index 1c8cd0ef4a6502718e21906d618f4b6ab7cf5dac..3ae71a3408223800ce442efc413c8589bb18ae4a 100644
--- a/drivers/media/video/saa7134/saa7134-empress.c
+++ b/drivers/media/video/saa7134/saa7134-empress.c
@@ -110,6 +110,8 @@ static int ts_release(struct inode *inode, struct file *file)
 {
 	struct saa7134_dev *dev = file->private_data;
 
+	mutex_lock(&dev->empress_tsq.vb_lock);
+
 	videobuf_stop(&dev->empress_tsq);
 	videobuf_mmap_free(&dev->empress_tsq);
 
@@ -122,6 +124,8 @@ static int ts_release(struct inode *inode, struct file *file)
 
 	dev->empress_users--;
 
+	mutex_unlock(&dev->empress_tsq.vb_lock);
+
 	return 0;
 }