diff --git a/src/input/decoder.c b/src/input/decoder.c
index 7283344852235b0fecc3ca9288ca32fc0f07ff05..4a62457b87e910d3c0acebd2ac417c96591231d7 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -901,7 +901,7 @@ static subpicture_t *ModuleThread_NewSpuBuffer( decoder_t *p_dec,
 
             vout_Release(p_owner->p_vout);
             p_owner->p_vout = NULL; // the DecoderThread should not use the old vout anymore
-            vlc_fifo_Lock( p_owner->p_fifo );
+            vlc_fifo_Unlock( p_owner->p_fifo );
         }
         return NULL;
     }