diff --git a/src/opus_decoder.c b/src/opus_decoder.c
index 3d97dd1cb0ff080a929deb34eff1138adfd53207..09ffdbebc5a05de189ac4487094c1edff5a28e4e 100644
--- a/src/opus_decoder.c
+++ b/src/opus_decoder.c
@@ -730,7 +730,7 @@ int opus_decode_float(OpusDecoder *st, const unsigned char *data,
       RESTORE_STACK;
       return OPUS_BAD_ARG;
    }
-   if (data != NULL && len > 0)
+   if (data != NULL && len > 0 && !decode_fec)
    {
       nb_samples = opus_decoder_get_nb_samples(st, data, len);
       if (nb_samples>0)
@@ -767,7 +767,7 @@ int opus_decode(OpusDecoder *st, const unsigned char *data,
       return OPUS_BAD_ARG;
    }
 
-   if (data != NULL && len > 0)
+   if (data != NULL && len > 0 && !decode_fec)
    {
       nb_samples = opus_decoder_get_nb_samples(st, data, len);
       if (nb_samples>0)