diff --git a/libavformat/riff.c b/libavformat/riff.c
index 2ab1ec18a9215977f7031ffc6b7bc90c0cadeace..0b81f293bcfcb90babb630ca2d41547b2ad79ed0 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -278,7 +278,7 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc)
 
     if(!enc->codec_tag || enc->codec_tag > 0xffff)
        enc->codec_tag = codec_get_tag(codec_wav_tags, enc->codec_id);
-    if(!enc->codec_tag)
+    if(!enc->codec_tag || enc->codec_tag > 0xffff)
         return -1;
 
     put_le16(pb, enc->codec_tag);