diff --git a/modules/video_filter/grain.c b/modules/video_filter/grain.c
index a948046fd649d7ac6df174b3a6cee001c7863086..1d5f9ccc4cd266c7eee3e1b8ee8b72aa67c2b891 100644
--- a/modules/video_filter/grain.c
+++ b/modules/video_filter/grain.c
@@ -427,6 +427,7 @@ static void Close(vlc_object_t *object)
     filter_t     *filter = (filter_t *)object;
     filter_sys_t *sys    = filter->p_sys;
 
+    var_DelCallback(filter, CFG_PREFIX "variance", Callback, NULL);
     vlc_mutex_destroy(&sys->cfg.lock);
     free(sys);
 }