diff -ur vdr/channels.c vdr-atsc/channels.c
--- vdr/channels.c	2008-03-07 15:42:38.000000000 -0500
+++ vdr-atsc/channels.c	2008-03-07 15:44:28.000000000 -0500
@@ -51,6 +51,7 @@
 
 const tChannelParameterMap ModulationValues[] = {
   {   0, QPSK },
+  {   8, VSB_8 },
   {  16, QAM_16 },
   {  32, QAM_32 },
   {  64, QAM_64 },
diff -ur vdr/dvbdevice.c vdr-atsc/dvbdevice.c
--- vdr/dvbdevice.c	2008-02-09 11:11:44.000000000 -0500
+++ vdr-atsc/dvbdevice.c	2008-03-07 15:45:33.000000000 -0500
@@ -258,6 +258,18 @@
          lockTimeout = DVBC_LOCK_TIMEOUT;
          }
          break;
+    case FE_ATSC: { // ATSC
+ 
+         // Frequency and symbol rate:
+      
+         Frontend.frequency = FrequencyToHz(channel.Frequency());
+         Frontend.inversion = fe_spectral_inversion_t(channel.Inversion());
+         Frontend.u.vsb.modulation = fe_modulation_t(channel.Modulation());
+                  
+         tuneTimeout = DVBC_TUNE_TIMEOUT;
+         lockTimeout = DVBC_LOCK_TIMEOUT;
+         }
+         break;          
     case FE_OFDM: { // DVB-T
 
          // Frequency and OFDM paramaters:
@@ -745,6 +757,8 @@
   int type = Source & cSource::st_Mask;
   return type == cSource::stNone
       || type == cSource::stCable && frontendType == FE_QAM
+      || type == cSource::stCable && frontendType == FE_ATSC
+      || type == cSource::stTerr  && frontendType == FE_ATSC      
       || type == cSource::stSat   && frontendType == FE_QPSK
       || type == cSource::stTerr  && frontendType == FE_OFDM;
 }
