--- mythtv_trunk.orig/libs/libmythtv/datadirect.cpp     2007-01-23 11:59:04.920293592 -0600
+++ mythtv_trunk/libs/libmythtv/datadirect.cpp  2007-01-22 13:11:47.956973898 -0600
@@ -1479,12 +1479,17 @@ bool DataDirectProcessor::SaveLineupChan

 bool DataDirectProcessor::UpdateListings(uint sourceid)
 {
+    QString a, b, c, lineupid;
+    if (!SourceUtil::GetListingsLoginData(sourceid, a, b, c, lineupid))
+        return false;
+
     MSqlQuery query(MSqlQuery::DDCon());
     query.prepare(
         "SELECT xmltvid "
-        "FROM channel "
-        "WHERE sourceid = :SOURCEID");
-    query.bindValue(":SOURCEID", sourceid);
+        "FROM channel LEFT JOIN videosource "
+        "     ON channel.sourceid = videosource.sourceid "
+        "WHERE videosource.lineupid = :LINEUPID");
+    query.bindValue(":LINEUPID", lineupid);

     if (!query.exec() || !query.isActive())
     {
@@ -1492,10 +1497,6 @@ bool DataDirectProcessor::UpdateListings
         return false;
     }

-    QString a, b, c, lineupid;
-    if (!SourceUtil::GetListingsLoginData(sourceid, a, b, c, lineupid))
-        return false;
-
     QMap<QString,bool> xmltvids;
     while (query.next())
     {

