diff --git a/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp b/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp
index 14bbc07dde8668098c84a33d87adf65cf14f0cc2..65d5ca9c6a9cfe9711bf0fce1a7ab625c409c04a 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.cpp
@@ -89,6 +89,13 @@ QString DesktopQtVersion::invalidReason() const
     return tmp;
 }
 
+QString DesktopQtVersion::warningReason() const
+{
+    if (qtVersion() >= QtSupport::QtVersionNumber(4, 7, 0) && qmlviewerCommand().isEmpty())
+        return QCoreApplication::translate("QtVersion", "No qmlviewer installed.");
+    return QString();
+}
+
 QList<ProjectExplorer::Abi> DesktopQtVersion::qtAbis() const
 {
     if (!m_qtAbisUpToDate) {
diff --git a/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.h b/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.h
index 961d83c5f976c7ad690672710fa69ffdfbc7122c..ddefba095caf6287bd2527c88a416975a12f8e91 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.h
+++ b/src/plugins/qt4projectmanager/qt-desktop/desktopqtversion.h
@@ -51,6 +51,7 @@ public:
 
     virtual bool isValid() const;
     virtual QString invalidReason() const;
+    virtual QString warningReason() const;
 
     virtual QList<ProjectExplorer::Abi> qtAbis() const;
 
diff --git a/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp b/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp
index 85d3e744154210f8d2f801dbf19daa49c8347024..947d25f5cf4a3f49f022294f13ac8bc8cc283bca 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.cpp
@@ -89,6 +89,13 @@ QString SimulatorQtVersion::invalidReason() const
     return tmp;
 }
 
+QString SimulatorQtVersion::warningReason() const
+{
+    if (qtVersion() >= QtSupport::QtVersionNumber(4, 7, 0) && qmlviewerCommand().isEmpty())
+        return QCoreApplication::translate("QtVersion", "No qmlviewer installed.");
+    return QString();
+}
+
 QList<ProjectExplorer::Abi> SimulatorQtVersion::qtAbis() const
 {
     if (!m_qtAbisUpToDate) {
diff --git a/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.h b/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.h
index cc7637dd3d89f867dc009d484722d2c512f9a164..832039309a1418d31b7097fb5eb42f6110a2a4dc 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.h
+++ b/src/plugins/qt4projectmanager/qt-desktop/simulatorqtversion.h
@@ -51,6 +51,7 @@ public:
 
     virtual bool isValid() const;
     virtual QString invalidReason() const;
+    virtual QString warningReason() const;
 
     virtual QList<ProjectExplorer::Abi> qtAbis() const;
 
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 0d8ddf8b57574e6efec4979673e24bf1865b24a2..1e4d1813aae9befb95c151678d4474e37f5d4ea8 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -318,6 +318,11 @@ QString BaseQtVersion::invalidReason() const
     return QString();
 }
 
+QString BaseQtVersion::warningReason() const
+{
+    return QString();
+}
+
 QString BaseQtVersion::qmakeCommand() const
 {
     return m_qmakeCommand;
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index 9bd5200723ba8e0f5f0cb675b750ca87ee642916..147b100996ddb177ea756c34aad0b0b6f57d2fa2 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -109,6 +109,7 @@ public:
     virtual QVariantMap toMap() const;
     virtual bool isValid() const;
     virtual QString invalidReason() const;
+    virtual QString warningReason() const;
 
     virtual bool toolChainAvailable(const QString &id) const;
 
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 5a3c5997d9c0d2fab93b65c020810cabd87fa9da..3a09c926a0d29cbde94fcc6e6a956cab53be93ae 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -379,6 +379,7 @@ QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const Ba
         ++abiCount;
     }
 
+    bool useable = true;
     if (missingToolChains.isEmpty()) {
         // No:
         info.message = tr("Qt version %1 for %2").arg(version->qtVersionString(), version->description());
@@ -386,6 +387,7 @@ QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const Ba
         // 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;
+        useable = false;
     } else {
         // Yes, some ABIs are unsupported
         info.message = tr("Not all possible target environments can be supported due to missing tool chains.");
@@ -393,6 +395,17 @@ QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const Ba
                        .arg(missingToolChains.join(QLatin1String("</li><li>")));
         info.icon = m_warningVersionIcon;
     }
+
+    if (useable) {
+        QString warning = version->warningReason();
+        if (!warning.isEmpty()) {
+            if (!info.message.isEmpty())
+                info.message.append('\n');
+            info.message += warning;
+            info.icon = m_warningVersionIcon;
+        }
+    }
+
     return info;
 }