--- dvbdevice.c.orig    2010-05-01 10:47:13.000000000 +0100
+++ dvbdevice.c 2010-06-08 21:17:08.000000000 +0100
@@ -710,6 +710,7 @@
         if (frontendInfo.caps & FE_CAN_QAM_64)  { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_64, ModulationValues)); }
         if (frontendInfo.caps & FE_CAN_QAM_128) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_128, ModulationValues)); }
         if (frontendInfo.caps & FE_CAN_QAM_256) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_256, ModulationValues)); }
+        if (frontendInfo.caps & FE_CAN_QAM_AUTO) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_AUTO, ModulationValues)); }
         if (frontendInfo.caps & FE_CAN_8VSB)    { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_8, ModulationValues)); }
         if (frontendInfo.caps & FE_CAN_16VSB)   { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_16, ModulationValues)); }
         if (frontendInfo.caps & FE_CAN_TURBO_FEC){numProvidedSystems++; p += sprintf(p, ",%s", "TURBO_FEC"); }
@@ -914,11 +915,11 @@
   cDvbTransponderParameters dtp(Channel->Parameters());
   if (dtp.System() == SYS_DVBS2 && frontendType == SYS_DVBS ||
      dtp.Modulation() == QPSK     && !(frontendInfo.caps & FE_CAN_QPSK) ||
-     dtp.Modulation() == QAM_16   && !(frontendInfo.caps & FE_CAN_QAM_16) ||
-     dtp.Modulation() == QAM_32   && !(frontendInfo.caps & FE_CAN_QAM_32) ||
-     dtp.Modulation() == QAM_64   && !(frontendInfo.caps & FE_CAN_QAM_64) ||
-     dtp.Modulation() == QAM_128  && !(frontendInfo.caps & FE_CAN_QAM_128) ||
-     dtp.Modulation() == QAM_256  && !(frontendInfo.caps & FE_CAN_QAM_256) ||
+     dtp.Modulation() == QAM_16   && !(frontendInfo.caps & (FE_CAN_QAM_16 | FE_CAN_QAM_AUTO)) ||
+     dtp.Modulation() == QAM_32   && !(frontendInfo.caps & (FE_CAN_QAM_32 | FE_CAN_QAM_AUTO)) ||
+     dtp.Modulation() == QAM_64   && !(frontendInfo.caps & (FE_CAN_QAM_64 | FE_CAN_QAM_AUTO)) ||
+     dtp.Modulation() == QAM_128  && !(frontendInfo.caps & (FE_CAN_QAM_128 | FE_CAN_QAM_AUTO)) ||
+     dtp.Modulation() == QAM_256  && !(frontendInfo.caps & (FE_CAN_QAM_256 | FE_CAN_QAM_AUTO)) ||
      dtp.Modulation() == QAM_AUTO && !(frontendInfo.caps & FE_CAN_QAM_AUTO) ||
      dtp.Modulation() == VSB_8    && !(frontendInfo.caps & FE_CAN_8VSB) ||
      dtp.Modulation() == VSB_16   && !(frontendInfo.caps & FE_CAN_16VSB) ||
