diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
index 331262b..f220e51 100644 (file)
--- a/modules/demux/mp4/libmp4.c
+++ b/modules/demux/mp4/libmp4.c
@@ -3643,6 +3643,11 @@ void MP4_BoxFree( stream_t *s, MP4_Box_t *p_box )
     {
         for( i_index = 0; ; i_index++ )
         {
+            if ( MP4_Box_Function[i_index].i_parent &&
+                 p_box->p_father &&
+                 p_box->p_father->i_type != MP4_Box_Function[i_index].i_parent )
+                continue;
+
             if( ( MP4_Box_Function[i_index].i_type == p_box->i_type )||
                 ( MP4_Box_Function[i_index].i_type == 0 ) )
             {