Index: libs/libmythtv/dbcheck.cpp
===================================================================
--- libs/libmythtv/dbcheck.cpp	(revision 14477)
+++ libs/libmythtv/dbcheck.cpp	(working copy)
@@ -11,7 +11,7 @@
 #include "datadirect.h" // for DataDirectProcessor::FixProgramIDs
 
 /// This is the DB schema version expected by the running MythTV instance.
-const QString currentDatabaseVersion = "1199";
+const QString currentDatabaseVersion = "1200";
 
 static bool UpdateDBVersionNumber(const QString &newnumber);
 static bool performActualUpdate(const QString updates[], QString version,
@@ -294,6 +294,9 @@
 airing. If this is "0" it usually means that this is a brand new show
 or a rebroadcast within the first two weeks.
 
+'isnew' is a field that tells us if a listings source has marked this
+program as a first showing of a program.
+
 'programid' is the Tribune Media Service database record identifier
 for each program description. In general, these start with a two
 letter prefix, MV, EP, SP or SH that equate to the 'category_type'.
@@ -3247,6 +3250,19 @@
             return false;
     }
 
+    if (dbver == "1199")
+    {
+        const QString updates[] = {
+"ALTER TABLE recorded        ADD COLUMN isnew TINYINT(1) DEFAULT 0;",
+"ALTER TABLE recordedprogram ADD COLUMN isnew TINYINT(1) DEFAULT 0;",
+"ALTER TABLE program         ADD COLUMN isnew TINYINT(1) DEFAULT 0;",
+"ALTER TABLE program         ADD INDEX (isnew);",
+""
+};
+        if (!performActualUpdate(updates, "1200", dbver))
+            return false;
+    }
+
 //"ALTER TABLE cardinput DROP COLUMN preference;" in 0.22
 //"ALTER TABLE channel DROP COLUMN atscsrcid;" in 0.22
 //"ALTER TABLE recordedmarkup DROP COLUMN offset;" in 0.22
Index: libs/libmythtv/datadirect.h
===================================================================
--- libs/libmythtv/datadirect.h	(revision 14487)
+++ libs/libmythtv/datadirect.h	(working copy)
@@ -97,7 +97,6 @@
     QString   stationid; // 12
     QDateTime time;
     QTime     duration;
-    bool      repeat;
     bool      isnew;
     bool      stereo;
     bool      subtitled;
Index: libs/libmythtv/datadirect.cpp
===================================================================
--- libs/libmythtv/datadirect.cpp	(revision 14487)
+++ libs/libmythtv/datadirect.cpp	(working copy)
@@ -68,7 +68,7 @@
 DataDirectSchedule::DataDirectSchedule() :
     programid(""),              stationid(""),
     time(QDateTime()),          duration(QTime()),
-    repeat(false),              isnew(false),
+    isnew(false),
     stereo(false),              subtitled(false),
     hdtv(false),                closecaptioned(false),
     tvrating(""),
@@ -168,7 +168,6 @@
         curr_schedule.duration = QTime(durstr.mid(2, 2).toInt(), 
                                        durstr.mid(5, 2).toInt(), 0, 0);
 
-        curr_schedule.repeat = (pxmlatts.value("repeat") == "true");
         curr_schedule.isnew = (pxmlatts.value("new") == "true");
         curr_schedule.stereo = (pxmlatts.value("stereo") == "true");
         curr_schedule.subtitled = (pxmlatts.value("subtitled") == "true");
@@ -277,22 +276,21 @@
         query.prepare(
             "INSERT INTO dd_schedule "
             "     ( programid,  stationid,   scheduletime,   "
-            "       duration,   isrepeat,    stereo,         "
+            "       duration,   isnew,       stereo,         "
             "       subtitled,  hdtv,        closecaptioned, "
             "       tvrating,   partnumber,  parttotal,      "
-            "       endtime,    isnew) "
+            "       endtime ) "
             "VALUES "
             "     (:PROGRAMID, :STATIONID,  :TIME,           "
-            "      :DURATION,  :ISREPEAT,   :STEREO,         "
+            "      :DURATION,  :ISNEW,      :STEREO,         "
             "      :SUBTITLED, :HDTV,       :CAPTIONED,      "
             "      :TVRATING,  :PARTNUMBER, :PARTTOTAL,      "
-            "      :ENDTIME,   :ISNEW)");
+            "      :ENDTIME )");
 
         query.bindValue(":PROGRAMID",   curr_schedule.programid);
         query.bindValue(":STATIONID",   curr_schedule.stationid);
         query.bindValue(":TIME",        curr_schedule.time);
         query.bindValue(":DURATION",    curr_schedule.duration);
-        query.bindValue(":ISREPEAT",    curr_schedule.repeat);
         query.bindValue(":STEREO",      curr_schedule.stereo);
         query.bindValue(":SUBTITLED",   curr_schedule.subtitled);
         query.bindValue(":HDTV",        curr_schedule.hdtv);
@@ -608,7 +606,7 @@
         "INSERT INTO dd_v_program "
         "     ( chanid,         starttime,       endtime,         "
         "       title,          subtitle,        description,     "
-        "       airdate,        stars,           previouslyshown, "
+        "       airdate,        stars,           isnew, "
         "       stereo,         subtitled,       hdtv,            "
         "       closecaptioned, partnumber,      parttotal,       "
         "       seriesid,       originalairdate, showtype,        "
@@ -616,7 +614,7 @@
         "       tvrating,       mpaarating,      programid )      "
         "SELECT chanid,         scheduletime,    endtime,         "
         "       title,          subtitle,        description,     "
-        "       year,           stars,           isrepeat,        "
+        "       year,           stars,           isnew,           "
         "       stereo,         subtitled,       hdtv,            "
         "       closecaptioned, partnumber,      parttotal,       "
         "       seriesid,       originalairdate, showtype,        "
@@ -804,7 +802,7 @@
     if (!query.exec("INSERT IGNORE INTO program (chanid, starttime, endtime, "
                     "title, subtitle, description, "
                     "showtype, category, category_type, "
-                    "airdate, stars, previouslyshown, stereo, subtitled, "
+                    "airdate, stars, isnew, stereo, subtitled, "
                     "hdtv, closecaptioned, partnumber, parttotal, seriesid, "
                     "originalairdate, colorcode, syndicatedepisodenumber, "
                     "programid) "
@@ -813,7 +811,7 @@
                     "DATE_ADD(endtime, INTERVAL channel.tmoffset MINUTE), "
                     "title, subtitle, description, "
                     "showtype, dd_genre.class, category_type, "
-                    "airdate, stars, previouslyshown, stereo, subtitled, "
+                    "airdate, stars, isnew, stereo, subtitled, "
                     "hdtv, closecaptioned, partnumber, parttotal, seriesid, "
                     "originalairdate, colorcode, syndicatedepisodenumber, "
                     "dd_v_program.programid FROM (dd_v_program, channel) "
@@ -1297,11 +1295,11 @@
     dd_tables["dd_schedule"] =
         "( programid char(40),           stationid char(12), "
         "  scheduletime datetime,        duration time,      "
-        "  isrepeat bool,                stereo bool,        "
+        "  isnew tinyint,                stereo bool,        "
         "  subtitled bool,               hdtv bool,          "
         "  closecaptioned bool,          tvrating char(5),   "
         "  partnumber int,               parttotal int,      "
-        "  endtime datetime,             isnew bool,         "
+        "  endtime datetime, "
         "INDEX progidx (programid) )";
 
     dd_tables["dd_program"] =
@@ -1321,7 +1319,7 @@
         "  subtitle varchar(128),        description text,            "
         "  category varchar(64),         category_type varchar(64),   "
         "  airdate year,                 stars float unsigned,        "
-        "  previouslyshown tinyint,      isrepeat bool,               "
+        "  isnew tinyint,                                             "
         "  stereo bool,                  subtitled bool,              "
         "  hdtv bool,                    closecaptioned bool,         "
         "  partnumber int,               parttotal int,               "
