Index: modules/mux/mpeg/ps.c
===================================================================
--- modules/mux/mpeg/ps.c	(revision 22200)
+++ modules/mux/mpeg/ps.c	(working copy)
@@ -350,6 +350,7 @@
     p_stream->lang[0] = p_stream->lang[1] = p_stream->lang[2] = 0;
     if( p_input->p_fmt->psz_language )
     {
+	char  ps_lang[4];
         char *psz = p_input->p_fmt->psz_language;
         const iso639_lang_t *pl = NULL;
 
@@ -374,6 +375,22 @@
             msg_Dbg( p_mux, "    - lang=%c%c%c",
                      p_stream->lang[0], p_stream->lang[1], p_stream->lang[2] );
         }
+        psz = var_CreateGetString( p_mux, "audio-language" );
+        ps_lang[0] = p_stream->lang[0];
+        ps_lang[1] = p_stream->lang[1];
+        ps_lang[2] = p_stream->lang[2];
+        ps_lang[3] = '\0';
+        if( psz && strlen( psz ) && strlen( ps_lang ) )
+        { 
+	    if( 0 == strstr( psz, ps_lang ) )
+            { 
+		msg_Dbg( p_mux, 
+			 "    - lang '%s' doesn't match user lang of %s,"
+                         " dropping",
+                         ps_lang, psz ); 
+		goto error; 
+	    } 
+	}
     }
     return VLC_SUCCESS;
 
