diff --git a/mythtv/libs/libmythtv/cardutil.cpp b/mythtv/libs/libmythtv/cardutil.cpp
index 1e32a2bc88..f808f3497a 100644
--- a/mythtv/libs/libmythtv/cardutil.cpp
+++ b/mythtv/libs/libmythtv/cardutil.cpp
@@ -2263,6 +2263,36 @@ bool CardUtil::HDHRdoesDVB(const QString &device)
     return false;
 }
 
+/**
+ * If the device is valid, check if the model does DVB-C.
+ *
+ * \todo This is cut&paste of HDHRdoesDVB, could be merged.
+ */
+
+bool CardUtil::HDHRdoesDVBC(const QString &device)
+{
+    (void) device;
+
+#ifdef USING_HDHOMERUN
+    hdhomerun_device_t  *hdhr;
+    hdhr = hdhomerun_device_create_from_str(device.toLatin1(), nullptr);
+    if (!hdhr)
+        return false;
+
+    const char *model = hdhomerun_device_get_model_str(hdhr);
+    if (model && strstr(model, "dvbc"))
+    {
+        hdhomerun_device_destroy(hdhr);
+        return true;
+    }
+
+    hdhomerun_device_destroy(hdhr);
+
+#endif
+
+    return false;
+}
+
 /**
  * Get a nicely formatted string describing the device
  */
diff --git a/mythtv/libs/libmythtv/cardutil.h b/mythtv/libs/libmythtv/cardutil.h
index 52a5ba1c99..6bbf5a627f 100644
--- a/mythtv/libs/libmythtv/cardutil.h
+++ b/mythtv/libs/libmythtv/cardutil.h
@@ -389,6 +389,7 @@ class MTV_PUBLIC CardUtil
 
     // HDHomeRun info
     static bool         HDHRdoesDVB(const QString &device);
+    static bool         HDHRdoesDVBC(const QString &device);
     static QString      GetHDHRdesc(const QString &device);
 
     // VBox info
diff --git a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
index efc4bfc2d6..e53f537283 100644
--- a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
+++ b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
@@ -167,7 +167,14 @@ void ScanTypeSetting::SetInput(const QString &cardids_inputname)
                          QString::number(ExistingScanImport));
             break;
         case CardUtil::HDHOMERUN:
-            if (CardUtil::HDHRdoesDVB(CardUtil::GetVideoDevice(cardid)))
+            if (CardUtil::HDHRdoesDVBC(CardUtil::GetVideoDevice(cardid)))
+            {
+                addSelection(tr("Full Scan (Tuned)"),
+                             QString::number(NITAddScan_DVBC));
+                addSelection(tr("Full Scan"),
+                             QString::number(FullScan_DVBC), true);
+            }
+            else if (CardUtil::HDHRdoesDVB(CardUtil::GetVideoDevice(cardid)))
             {
                 addSelection(tr("Full Scan"),
                              QString::number(FullScan_DVBT), true);
diff --git a/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp b/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
index 9eb32c9c78..40ab716b76 100644
--- a/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
+++ b/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
@@ -329,7 +329,15 @@ bool HDHRStreamHandler::Open(void)
                 _tuner_types.push_back(DTVTunerType(DTVTunerType::kTunerTypeOCUR));
             }
         }
-        else if (QString(model).toLower().contains("dvb"))
+        else if (QString(model).toLower().endsWith("dvbc"))
+        {
+            _tuner_types.push_back(DTVTunerType(DTVTunerType::kTunerTypeDVBC));
+        }
+        else if (QString(model).toLower().endsWith("dvbt"))
+        {
+            _tuner_types.push_back(DTVTunerType(DTVTunerType::kTunerTypeDVBT));
+        }
+        else if (QString(model).toLower().endsWith("dvbtc"))
         {
             _tuner_types.push_back(DTVTunerType(DTVTunerType::kTunerTypeDVBT));
             _tuner_types.push_back(DTVTunerType(DTVTunerType::kTunerTypeDVBC));
