diff --git a/modules/codec/faad.c b/modules/codec/faad.c
index 4352b48ea0a16a67fb79035c5d2592a9edf7ac7f..cb8a1ad7232c4821a2a71d0d576a6b503d0db81d 100644
--- a/modules/codec/faad.c
+++ b/modules/codec/faad.c
@@ -110,7 +110,10 @@ static int Open( vlc_object_t *p_this )
     decoder_sys_t *p_sys;
     NeAACDecConfiguration *cfg;
 
-    if( p_dec->fmt_in.i_codec != VLC_CODEC_MP4A )
+    if( p_dec->fmt_in.i_codec != VLC_CODEC_MP4A ||
+        p_dec->fmt_in.i_profile == AAC_PROFILE_ELD ||
+        (p_dec->fmt_in.i_extra > 1 &&
+         (GetWBE(p_dec->fmt_in.p_extra) & 0xffe0) == 0xf8e0)) /* ELD AOT */
     {
         return VLC_EGENERIC;
     }