diff --git a/libav/grab.c b/libav/grab.c
index 86a9ea07c6261ae2294031c26aec4cb2a6196a4e..0f9312c58618d7478ad38e7824092b32cf780ffe 100644
--- a/libav/grab.c
+++ b/libav/grab.c
@@ -306,6 +306,10 @@ static int grab_read_packet(AVFormatContext *s1, AVPacket *pkt)
 static int grab_read_close(AVFormatContext *s1)
 {
     VideoData *s = s1->priv_data;
+
+    if (s->use_mmap)
+        munmap(video_buf, gb_buffers.size);
+
     /* restore audio settings */
     ioctl(s->fd, VIDIOCSAUDIO, &audio_saved);