diff -cr mythtv.pre/libs/libmythtv/channelsettings.cpp mythtv/libs/libmythtv/channelsettings.cpp
*** mythtv.pre/libs/libmythtv/channelsettings.cpp	2005-11-11 20:11:06.000000000 -0800
--- mythtv/libs/libmythtv/channelsettings.cpp	2005-11-24 11:32:42.000000000 -0800
***************
*** 21,26 ****
--- 21,39 ----
      };
  };
  
+ class TimeOffset: public LineEditSetting, public CSetting {
+ public:
+     TimeOffset(const ChannelID& id):
+         LineEditSetting(), CSetting(id, "tmoffset") {
+         setLabel(QObject::tr("Time Offset"));
+ 	setHelpText(QObject::tr("Offset (in seconds) to apply to the program "
+                                 "guide data in listings.  This can be used "
+                                 "when the listings for a particular channel "
+                                 "are in a different time zone. (Works for "
+                                 "DataDirect listings only.)"));
+     };
+ };
+ 
  class Channum: public LineEditSetting, public CSetting {
  public:
      Channum(const ChannelID& id):
***************
*** 284,289 ****
--- 297,303 ----
      connect(source,SIGNAL(valueChanged(const QString&)),this,SLOT(sourceChanged(const QString&)));
  #else
      addChild(new XmltvID(id));
+     addChild(new TimeOffset(id));
  #endif
  };
  
diff -cr mythtv.pre/libs/libmythtv/dbcheck.cpp mythtv/libs/libmythtv/dbcheck.cpp
*** mythtv.pre/libs/libmythtv/dbcheck.cpp	2005-11-11 20:09:36.000000000 -0800
--- mythtv/libs/libmythtv/dbcheck.cpp	2005-11-12 13:03:55.000000000 -0800
***************
*** 1,4 ****
--- 1,5 ----
  #include <qsqldatabase.h>
+ 
  #include <qstring.h>
  
  #include <iostream>
***************
*** 10,16 ****
  #include "mythdbcon.h"
  
  /// This is the DB schema version expected by the running MythTV instance.
! const QString currentDatabaseVersion = "1104";
  
  static bool UpdateDBVersionNumber(const QString &newnumber);
  static bool performActualUpdate(const QString updates[], QString version,
--- 11,17 ----
  #include "mythdbcon.h"
  
  /// This is the DB schema version expected by the running MythTV instance.
! const QString currentDatabaseVersion = "1105";
  
  static bool UpdateDBVersionNumber(const QString &newnumber);
  static bool performActualUpdate(const QString updates[], QString version,
***************
*** 238,243 ****
--- 239,249 ----
  The 'xmltvid' field is used to identify this channel to the listings
  provider.
  
+ The 'tmoffset' field is used to apply an offset (in seconds) from the listings
+ provided by the provider to a new time in the MythTV program guide database.
+ This is very handy when the listings provider has listings which are offset
+ by a few hours on individual channels with the rest of them being correct.
+ 
  The 'recpriority' field is used tell the scheduler from which of two 
  otherwise equivalent programs on two different channels should be 
  prefered, a higher number means this channel is more preferred.
***************
*** 417,422 ****
--- 423,429 ----
      if (dbver == currentDatabaseVersion)
          return true;
  
+ printf("%s: Past version check\n", __FUNCTION__);
      VERBOSE(VB_IMPORTANT, QString("Current Schema Version: %1").arg(dbver));
      VERBOSE(VB_IMPORTANT, QString("Newest Schema Version : %1")
                                    .arg(currentDatabaseVersion));
***************
*** 2297,2302 ****
--- 2304,2319 ----
          if (!performActualUpdate(updates, "1104", dbver))
              return false;
      }
+     if (dbver == "1104")
+     {
+         const QString updates[] = {
+ "ALTER TABLE channel ADD COLUMN tmoffset INT NOT NULL default '0';",
+ ""
+ };
+ 
+         if (!performActualUpdate(updates, "1105", dbver))
+             return false;
+     }
  
  // Drop xvmc_buffer_settings at some point
      
