Index: diseqc.cpp
===================================================================
--- diseqc.cpp	(revision 10403)
+++ diseqc.cpp	(working copy)
@@ -382,7 +382,7 @@
     }
 
     // update capture card to point to tree, or 0 if there is no tree
-    VERBOSE(VB_IMPORTANT, "diseqcid: "<<devid);
+    //VERBOSE(VB_IMPORTANT, "diseqcid: "<<devid);
     query0.prepare(
         "UPDATE capturecard "
         "SET diseqcid = :DEVID "
@@ -1809,11 +1809,12 @@
  *  \brief LNB Class.
  */
 
-const TypeTable DiSEqCDevLNB::LNBTypeTable[4] =
+const TypeTable DiSEqCDevLNB::LNBTypeTable[5] =
 {
     { "fixed",        kTypeFixed                 },
     { "voltage",      kTypeVoltageControl        },
     { "voltage_tone", kTypeVoltageAndToneControl },
+    { "bandstacked",  kTypeBandstacked           },
     { QString::null,  kTypeVoltageAndToneControl },
 };
 
@@ -1943,8 +1944,15 @@
 {
     (void) tuning;
 #ifdef USING_DVB
-    if (kTypeVoltageAndToneControl == m_type)
-        return (tuning.params.frequency > m_lof_switch);
+    switch (m_type)
+    {
+        case kTypeVoltageAndToneControl:
+            return (tuning.params.frequency > m_lof_switch);
+        case kTypeBandstacked:
+            return IsHorizontal(tuning);
+        default:
+            return false;
+    }
 #endif // USING_DVB
 
     return false;
Index: diseqc.h
===================================================================
--- diseqc.h	(revision 10403)
+++ diseqc.h	(working copy)
@@ -343,6 +343,7 @@
         kTypeFixed                 = 0,
         kTypeVoltageControl        = 1,
         kTypeVoltageAndToneControl = 2,
+        kTypeBandstacked           = 3,
     };
     void SetType(dvbdev_lnb_t type)       { m_type       = type;       }
     void SetLOFSwitch(uint lof_switch)    { m_lof_switch = lof_switch; }
@@ -373,7 +374,7 @@
     uint         m_lof_hi;
     uint         m_lof_lo;
 
-    static const TypeTable LNBTypeTable[4];
+    static const TypeTable LNBTypeTable[5];
 };
 
 #endif // _DISEQC_H_
Index: diseqcsettings.cpp
===================================================================
--- diseqcsettings.cpp	(revision 10403)
+++ diseqcsettings.cpp	(working copy)
@@ -472,6 +472,8 @@
       DiSEqCDevLNB::kTypeVoltageControl,               0, 10750000,        0 },
     { DeviceTree::tr("C Band"),
       DiSEqCDevLNB::kTypeVoltageControl,               0,  5150000,        0 },
+    { DeviceTree::tr("DishPro Bandstacked"),
+      DiSEqCDevLNB::kTypeBandstacked,                  0, 11250000, 14350000 },
     { QString::null,
       DiSEqCDevLNB::kTypeVoltageControl,               0,        0,        0 },
 };
@@ -539,6 +541,9 @@
         addSelection(DeviceTree::tr("Universal (Voltage & Tone)"),
                      QString::number((uint) DiSEqCDevLNB::
                                      kTypeVoltageAndToneControl));
+        addSelection(DeviceTree::tr("Bandstacked"),
+                     QString::number((uint) DiSEqCDevLNB::
+                                     kTypeBandstacked));
     }
 
     virtual void load(void)
@@ -593,7 +598,8 @@
         setLabel(DeviceTree::tr("LNB LOF Low (MHz)"));
         QString help = DeviceTree::tr(
             "This defines the offset the frequency coming "
-            "from the LNB will be in low setting.");
+            "from the LNB will be in low setting. For bandstacked "
+            "LNBs this is the vertical/right polarization band.");
         setHelpText(help);
     }
 
@@ -621,7 +627,8 @@
         setLabel(DeviceTree::tr("LNB LOF High (MHz)"));
         QString help = DeviceTree::tr(
             "This defines the offset the frequency coming from "
-            "the LNB will be in high setting.");
+            "the LNB will be in high setting. For bandstacked "
+            "LNBs this is the horizontal/left polarization band.");
         setHelpText(help);
     }
 
@@ -709,12 +716,16 @@
             m_lof_hi->setEnabled(true);
             m_lof_lo->setEnabled(true);
             break;
+        case DiSEqCDevLNB::kTypeBandstacked:
+            m_lof_switch->setEnabled(false);
+            m_lof_hi->setEnabled(true);
+            m_lof_lo->setEnabled(true);
+            break;
     }
 }
 
 //////////////////////////////////////// DeviceTree
 
-
 DeviceTree::DeviceTree(DiSEqCDevTree &tree) : m_tree(tree)
 {
     connect(this, SIGNAL(editButtonPressed(int)),   SLOT(edit(void)));
