diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
index 0fbae58..d1c7c4d 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -303,6 +303,9 @@ gst_ts_demux_class_init (GstTSDemuxClass * klass)
           "Emit messages for every pcr/opcr/pts/dts", FALSE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+#define GST_TAG_MPEG_AUDIO_TYPE "mpeg-audio-type"
+  gst_tag_register (GST_TAG_MPEG_AUDIO_TYPE, GST_TAG_FLAG_META, G_TYPE_INT,
+      "MPEG audio type", "The audio type for a MPEG stream", NULL);
 
   ts_class = GST_MPEGTS_BASE_CLASS (klass);
   ts_class->reset = GST_DEBUG_FUNCPTR (gst_ts_demux_reset);
@@ -658,6 +661,7 @@ gst_ts_demux_create_tags (TSDemuxStream * stream)
       const gchar *lc;
       gchar lang_code[4];
       gchar *language_n;
+      int audio_type;
 
       language_n = (gchar *)
           DESC_ISO_639_LANGUAGE_language_code_nth (desc, i);
@@ -667,17 +671,22 @@ gst_ts_demux_create_tags (TSDemuxStream * stream)
       if (!language_n[0] || !language_n[1])
         continue;
 
-      GST_LOG ("Add language code for stream: %s", language_n);
-
       lang_code[0] = language_n[0];
       lang_code[1] = language_n[1];
       lang_code[2] = language_n[2];
       lang_code[3] = 0;
+      
+      audio_type = DESC_ISO_639_LANGUAGE_audio_type_nth (desc, 0);
+
+      GST_LOG ("Add language code for stream: %s, type %d",
+		language_n, audio_type);
 
       /* descriptor contains ISO 639-2 code, we want the ISO 639-1 code */
       lc = gst_tag_get_language_code (lang_code);
       gst_tag_list_add (stream->taglist, GST_TAG_MERGE_REPLACE,
           GST_TAG_LANGUAGE_CODE, (lc) ? lc : lang_code, NULL);
+      gst_tag_list_add (stream->taglist, GST_TAG_MERGE_REPLACE,
+	  GST_TAG_MPEG_AUDIO_TYPE, audio_type, NULL);
     }
 
     g_free (desc);
