--- libs/libmythtv/avformatdecoder.cpp	2010-05-07 20:17:44.000000000 -0700
+++ libs/libmythtv/avformatdecoder.cpp	2010-05-07 22:09:45.375774659 -0700
@@ -3797,7 +3797,10 @@
 
         vector<int> flang = filter_lang(atracks, canonical_key);
 
-        selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_TRUEHD);
+        selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_FLAC);
+
+        if (selTrack < 0)
+            selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_TRUEHD);
 
         if (selTrack < 0)
             selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_EAC3);
@@ -3820,7 +3823,10 @@
             {
                 vector<int> flang = filter_lang(atracks, *it);
 
-                selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_TRUEHD);
+                selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_FLAC);
+
+                if (selTrack < 0)
+                    selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_TRUEHD);
 
                 if (selTrack < 0)
                     selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_EAC3);
@@ -3841,7 +3847,10 @@
             VERBOSE(VB_AUDIO, LOC + "Trying to select audio track (wo/lang)");
             vector<int> flang = filter_lang(atracks, -1);
 
-            selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_TRUEHD);
+            selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_FLAC);
+
+            if (selTrack < 0)
+                selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_TRUEHD);
 
             if (selTrack < 0)
                 selTrack = filter_max_ch(ic, atracks, flang, CODEC_ID_EAC3);
