<p>Attached is a patch that circumvents any potential issue by giving DecoderDispatchBlock a new argument named <code>b_do_cc</code> which simply toggles any potential invocation of <code>DecoderGetCc</code> on/off.</p>
<p>The pertinent changes compared to the previous patch are below:</p>
<pre><code>diff --git a/src/input/decoder.c b/src/input/decoder.c
index d723acf..5e4fbf6 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -1207,7 +1207,7 @@ static void DecoderProcessSpu( decoder_t *p_dec, block_t *p_block )
  * \param pf_decode pointer-to-function responsible for decoding the passed block
  **/ 
 static void DecoderDispatchBlock( decoder_t * p_dec, block_t * p_block,
-  void( *pf_decode )( decoder_t*, block_t* ) )
+  void( *pf_decode )( decoder_t*, block_t* ), bool b_do_cc )
 {
     decoder_owner_sys_t *p_owner = p_dec->p_owner;
 
@@ -1236,7 +1236,7 @@ static void DecoderDispatchBlock( decoder_t * p_dec, block_t * p_block,
                 }   
             }   
 
-            if( p_packetizer->pf_get_cc )
+            if( b_do_cc && p_packetizer->pf_get_cc )
                 DecoderGetCc( p_dec, p_packetizer );
 
             while( p_packetized_block )
@@ -1289,8 +1289,8 @@ static void DecoderProcess( decoder_t *p_dec, block_t *p_block )
 
     switch( p_dec->fmt_out.i_cat )
     {   
-        case VIDEO_ES: return DecoderDispatchBlock( p_dec, p_block, &DecoderDecodeVideo );
-        case AUDIO_ES: return DecoderDispatchBlock( p_dec, p_block, &DecoderDecodeAudio );
+        case VIDEO_ES: return DecoderDispatchBlock( p_dec, p_block, &DecoderDecodeVideo,  true );
+        case AUDIO_ES: return DecoderDispatchBlock( p_dec, p_block, &DecoderDecodeAudio, false );
         case   SPU_ES: return DecoderProcessSpu( p_dec, p_block );
 
         default:</code></pre>
<p>See the attached file for the full patch.</p>