diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c
index 8635d303d7a3b0236f358122d915abacf0dda8c9..f2aa2508cb0d70608851da208978713f27192630 100644
--- a/modules/stream_out/transcode/audio.c
+++ b/modules/stream_out/transcode/audio.c
@@ -340,6 +340,16 @@ int transcode_audio_process( sout_stream_t *p_stream,
     block_t *p_block, *p_audio_buf;
     *out = NULL;
 
+    if( unlikely( in == NULL ) )
+    {
+        block_t *p_block;
+        do {
+           p_block = id->p_encoder->pf_encode_audio(id->p_encoder, NULL );
+           block_ChainAppend( out, p_block );
+        } while( p_block );
+        return VLC_SUCCESS;
+    }
+
     while( (p_audio_buf = id->p_decoder->pf_decode_audio( id->p_decoder,
                                                           &in )) )
     {