diff --git a/modules/gui/skins2/src/skin_main.cpp b/modules/gui/skins2/src/skin_main.cpp
index c60b9e86c68b76eb06d4b78f198f36346ff8e5c5..1fa1289f0ec2734e291de5e07f70f3e325d5d771 100644
--- a/modules/gui/skins2/src/skin_main.cpp
+++ b/modules/gui/skins2/src/skin_main.cpp
@@ -362,7 +362,9 @@ static void WindowClose( vlc_object_t *p_this )
     vout_window_t *pWnd = (vout_window_t *)p_this;
     intf_thread_t *pIntf = (intf_thread_t *)pWnd->sys;
 
+    vlc_mutex_lock( &serializer );
     VoutManager::releaseWindow( pIntf, pWnd );
+    vlc_mutex_unlock( &serializer );
 
     vlc_object_release( pIntf );
 }