diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 411d04675afad523646497d57e3d3d90886355c8..232c9ad50fe868c92b8cf56a4ee0b3dad3280dde 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -48,6 +48,7 @@
 #include <utils/qtcassert.h>
 #include <utils/buildablehelperlibrary.h>
 #include <utils/pathchooser.h>
+#include <projectexplorer/toolchainmanager.h>
 #include <qtconcurrent/runextensions.h>
 
 #include <QtCore/QDir>
@@ -129,6 +130,7 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<BaseQtVersion *>
     , m_versionUi(new Internal::Ui::QtVersionInfo())
     , m_debuggingHelperUi(new Internal::Ui::DebuggingHelper())
     , m_invalidVersionIcon(":/projectexplorer/images/compile_error.png")
+    , m_warningVersionIcon(":/projectexplorer/images/compile_warning.png")
     , m_configurationWidget(0)
 {
     // Initialize m_versions
@@ -169,7 +171,8 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<BaseQtVersion *>
         item->setText(0, version->displayName());
         item->setText(1, QDir::toNativeSeparators(version->qmakeCommand()));
         item->setData(0, VersionIdRole, version->uniqueId());
-        item->setIcon(0, version->isValid()? m_validVersionIcon : m_invalidVersionIcon);
+        const ValidityInfo info = validInformation(version);
+        item->setIcon(0, info.icon);
     }
     m_ui->qtdirList->expandAll();
 
@@ -207,6 +210,9 @@ QtOptionsPageWidget::QtOptionsPageWidget(QWidget *parent, QList<BaseQtVersion *>
 
     connect(QtVersionManager::instance(), SIGNAL(dumpUpdatedFor(QString)),
             this, SLOT(qtVersionsDumpUpdated(QString)));
+
+    connect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainsChanged()),
+            this, SLOT(toolChainsUpdated()));
 }
 
 bool QtOptionsPageWidget::eventFilter(QObject *o, QEvent *e)
@@ -320,6 +326,19 @@ void QtOptionsPageWidget::cleanUpQtVersions()
     updateCleanUpButton();
 }
 
+void QtOptionsPageWidget::toolChainsUpdated()
+{
+    for (int i = 0; i < m_versions.count(); ++i) {
+        QTreeWidgetItem *item = treeItemForIndex(i);
+        if (item == m_ui->qtdirList->currentItem())
+            updateDescriptionLabel();
+        else {
+            const ValidityInfo info = validInformation(m_versions.at(i));
+            item->setIcon(0, info.icon);
+        }
+    }
+}
+
 void QtOptionsPageWidget::qtVersionsDumpUpdated(const QString &qmakeCommand)
 {
     foreach (BaseQtVersion *version, m_versions) {
@@ -334,6 +353,49 @@ void QtOptionsPageWidget::qtVersionsDumpUpdated(const QString &qmakeCommand)
     }
 }
 
+QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const BaseQtVersion *version)
+{
+    ValidityInfo info;
+    info.icon = m_validVersionIcon;
+
+    if (!version)
+        return info;
+
+    if (!version->isValid()) {
+        info.icon = m_invalidVersionIcon;
+        info.message = version->invalidReason();
+        return info;
+    }
+
+    // Do we have tool chain issues?
+    QStringList missingToolChains;
+    int abiCount = 0;
+    foreach (const ProjectExplorer::Abi &a, version->qtAbis()) {
+        // Ignore symbian emulator since we do not support it.
+        if (a.osFlavor() == ProjectExplorer::Abi::SymbianEmulatorFlavor)
+            continue;
+        if (ProjectExplorer::ToolChainManager::instance()->findToolChains(a).isEmpty())
+            missingToolChains.append(a.toString());
+        ++abiCount;
+    }
+
+    if (missingToolChains.isEmpty()) {
+        // No:
+        info.message = tr("Qt version %1 for %2").arg(version->qtVersionString(), version->description());
+    } else if (missingToolChains.count() == abiCount) {
+        // Yes, this Qt version can't be used at all!
+        info.message = tr("No tool chain can produce code for this Qt version. Please define one or more tool chains.");
+        info.icon = m_invalidVersionIcon;
+    } else {
+        // Yes, some ABIs are unsupported
+        info.message = tr("Not all possible target environments can be supported due to missing tool chains.");
+        info.toolTip = tr("The following ABIs are currently not supported:<ul><li>%1</ul>")
+                       .arg(missingToolChains.join(QLatin1String("</li><li>")));
+        info.icon = m_warningVersionIcon;
+    }
+    return info;
+}
+
 void QtOptionsPageWidget::buildDebuggingHelper(DebuggingHelperBuildTask::Tools tools)
 {
     const int index = currentIndex();
@@ -725,17 +787,11 @@ void QtOptionsPageWidget::qtVersionChanged()
 void QtOptionsPageWidget::updateDescriptionLabel()
 {
     QTreeWidgetItem *item = m_ui->qtdirList->currentItem();
-    const BaseQtVersion *version = currentVersion();
-    if (!version) {
-        m_versionUi->errorLabel->setText(QString());
-    } else if (version->isValid()) {
-        m_versionUi->errorLabel->setText( tr("Qt version %1 for %2").arg(version->qtVersionString(),
-                                                                         version->description()));
-        item->setIcon(0, m_validVersionIcon);
-    } else {
-        m_versionUi->errorLabel->setText(version->invalidReason());
-        item->setIcon(0, m_invalidVersionIcon);
-    }
+    const ValidityInfo info = validInformation(currentVersion());
+    m_versionUi->errorLabel->setText(info.message);
+    m_versionUi->errorLabel->setToolTip(info.toolTip);
+    if (item)
+        item->setIcon(0, info.icon);
 }
 
 int QtOptionsPageWidget::indexForTreeItem(const QTreeWidgetItem *item) const
diff --git a/src/plugins/qtsupport/qtoptionspage.h b/src/plugins/qtsupport/qtoptionspage.h
index df89b2c79c9a824b73dc13bc932412bec218a157..64bc3ba08c4abf254de5c992b4f7b43434efdbde 100644
--- a/src/plugins/qtsupport/qtoptionspage.h
+++ b/src/plugins/qtsupport/qtoptionspage.h
@@ -88,6 +88,7 @@ private:
     QList<BaseQtVersion *> m_versions;
     int m_defaultVersion;
     QIcon m_invalidVersionIcon;
+    QIcon m_warningVersionIcon;
     QIcon m_validVersionIcon;
     QtConfigWidget *m_configurationWidget;
 
@@ -108,8 +109,17 @@ private slots:
     void slotShowDebuggingBuildLog();
     void debuggingHelperBuildFinished(int qtVersionId, const QString &output, DebuggingHelperBuildTask::Tools tools);
     void cleanUpQtVersions();
+    void toolChainsUpdated();
 
     void qtVersionsDumpUpdated(const QString &qmakeCommand);
+
+private:
+    struct ValidityInfo {
+        QString message;
+        QString toolTip;
+        QIcon icon;
+    };
+    ValidityInfo validInformation(const BaseQtVersion *version);
 };
 
 class QtOptionsPage : public Core::IOptionsPage