diff --git a/src/media/video/video_mixer.cpp b/src/media/video/video_mixer.cpp
index d09febad9b747dbe4f9cdad6e66c623063cba1a1..0a08feaf816db43fdd8014514a3d30ed7d25dfcc 100644
--- a/src/media/video/video_mixer.cpp
+++ b/src/media/video/video_mixer.cpp
@@ -109,6 +109,8 @@ VideoMixer::update(Observable<std::shared_ptr<VideoFrame>>* ob,
         if (x->source == ob) {
             if (!x->update_frame)
                 x->update_frame.reset(new VideoFrame);
+            else
+                x->update_frame->reset();
             *x->update_frame = *frame_p;
             x->atomic_swap_render(x->update_frame);
             return;