diff --git a/src/video_output/vout_intf.c b/src/video_output/vout_intf.c
index 4d9a755cb42537b9b58c6ae09dadfdfb26f48c14..77b94e6696bd5f2f60c5063e867d80835c768abe 100644
--- a/src/video_output/vout_intf.c
+++ b/src/video_output/vout_intf.c
@@ -147,6 +147,7 @@ void vout_ReleaseWindow( vout_thread_t *p_vout, void *dummy )
 int vout_ControlWindow( vout_thread_t *p_vout, void *dummy,
                         int i_query, va_list args )
 {
+    (void)dummy;
     vout_window_t *wnd = p_vout->p_window;
 
     if (wnd == NULL)
@@ -514,7 +515,8 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic )
         {
             msg_Err( p_vout, "Could not get snapshot" );
             image_HandlerDelete( p_image );
-            vlc_object_signal_maybe( VLC_OBJECT(p_dest) );
+            vlc_object_kill( p_dest );
+            vlc_thread_join( p_dest );
             vlc_object_release( p_dest );
             return VLC_EGENERIC;
         }
@@ -526,7 +528,7 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic )
         {
             block_Release( p_block );
             image_HandlerDelete( p_image );
-            vlc_object_signal_maybe( VLC_OBJECT(p_dest) );
+            vlc_object_signal( p_dest );
             vlc_object_release( p_dest );
             return VLC_ENOMEM;
         }
@@ -543,7 +545,7 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic )
             block_Release( p_block );
             free( p_snapshot );
             image_HandlerDelete( p_image );
-            vlc_object_signal_maybe( VLC_OBJECT(p_dest) );
+            vlc_object_signal( p_dest );
             vlc_object_release( p_dest );
             return VLC_ENOMEM;
         }
@@ -554,7 +556,7 @@ int vout_Snapshot( vout_thread_t *p_vout, picture_t *p_pic )
         block_Release( p_block );
 
         /* Unlock the object */
-        vlc_object_signal_maybe( VLC_OBJECT(p_dest) );
+        vlc_object_signal( p_dest ); /* Why do we signal here */
         vlc_object_release( p_dest );
 
         image_HandlerDelete( p_image );