diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 7d370bf629d7c8f7fa02eea01802ca7534c2ab5d..0ef179d0596cf85f1a66e618f14587cedaffe30a 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1605,10 +1605,8 @@ void vout_Close(vout_thread_t *vout)
 
     vout_chrono_Clean(&sys->render);
 
-    vlc_mutex_lock(&sys->window_lock);
+    vlc_mutex_destroy(&sys->window_lock);
     vout_display_window_Delete(sys->display_cfg.window);
-    sys->display_cfg.window = NULL;
-    vlc_mutex_unlock(&sys->window_lock);
 
     vlc_mutex_lock(&sys->spu_lock);
     spu_Destroy(sys->spu);
diff --git a/src/video_output/vout_internal.h b/src/video_output/vout_internal.h
index ee4ce6746335d3c7c2c1850f58e737f4968a112f..e51ed7acafa7ade702341b033729dd8f383d3720 100644
--- a/src/video_output/vout_internal.h
+++ b/src/video_output/vout_internal.h
@@ -166,6 +166,7 @@ struct vout_thread_sys_t
     vlc_mutex_t     window_lock;
 
     /* Video output display */
+    vlc_mutex_t     display_lock;
     vout_display_cfg_t display_cfg;
     vout_display_t *display;