diff --git a/mythtv/libs/libmythbase/mythcorecontext.cpp b/mythtv/libs/libmythbase/mythcorecontext.cpp
index 9154292..69e535b 100644
--- a/mythtv/libs/libmythbase/mythcorecontext.cpp
+++ b/mythtv/libs/libmythbase/mythcorecontext.cpp
@@ -2,6 +2,7 @@
 #include <QUrl>
 #include <QDir>
 #include <QFileInfo>
+#include <QFile>
 #include <QDebug>
 #include <QMutex>
 #include <QWaitCondition>
@@ -223,14 +224,38 @@ bool MythCoreContext::Init(void)
             "(such as 'en_US.UTF-8').").arg(lang_variables));
 #endif
 
-    // If any of the IPs on any interfaces look like IPv6 addresses, assume IPv6
+    // If a routable IPv6 address is configured on any interface, assume IPv6
     // is available
     QNetworkInterface qtinterface;
     QList<QHostAddress> IpList = qtinterface.allAddresses();
     for (int i = 0; i < IpList.size(); i++)
     {
-        if (IpList.at(i).toString().contains(":"))
+        QString test6 = IpList.at(i).toString();
+        if (test6.contains(":") && !test6.startsWith("0:0:0:0:0:0:0:") &&
+                                   !test6.startsWith("FE80:"))
         {
+#ifdef linux
+            QString bindv6only = "/proc/sys/net/ipv6/bindv6only";
+            QFile file(bindv6only);
+            if (file.open(QFile::ReadOnly))
+            {
+                QString line(file.readLine(2));
+                if (line[0] != '0')
+                {
+                    LOG(VB_GENERAL, LOG_ERR, LOC +
+                        QString("Error, net.ipv6.bindv6only = %1. "
+                            "MythTV requires this to be set to 0. "
+                            "Try looking in /etc/sysctl.d/* files.")
+                            .arg(line));
+                }
+            }
+            else
+            {
+                LOG(VB_GENERAL, LOG_ERR, LOC +
+                    QString("Unable to read %1").arg(bindv6only));
+            }
+            file.close();
+#endif // linux
             d->m_hasIPv6 = true;
             break;
         }
