diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 9b116b010077e0aa05c24a5d3503d173748d5c50..d5b60714ac9763fcf69c6cda3ce22cbf8b238f79 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1189,7 +1189,8 @@ static void matroska_convert_tag(AVFormatContext *s, EbmlList *list,
     int i;
 
     for (i=0; i < list->nb_elem; i++) {
-        const char *lang = strcmp(tags[i].lang, "und") ? tags[i].lang : NULL;
+        const char *lang = tags[i].lang && strcmp(tags[i].lang, "und") ?
+                           tags[i].lang : NULL;
 
         if (!tags[i].name) {
             av_log(s, AV_LOG_WARNING, "Skipping invalid tag with no TagName.\n");