diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp
index 9929e8427ed582e9cfcbc3e21a5706e0f4caa96f..0ab29c274ff89d600c3987cf7d0c2ab9827b8e7d 100644
--- a/src/plugins/projectexplorer/kit.cpp
+++ b/src/plugins/projectexplorer/kit.cpp
@@ -87,6 +87,7 @@ public:
         m_id(id),
         m_autodetected(false),
         m_isValid(true),
+        m_hasWarning(false),
         m_nestedBlockingLevel(0),
         m_mustNotify(false)
     {
@@ -98,6 +99,7 @@ public:
     Id m_id;
     bool m_autodetected;
     bool m_isValid;
+    bool m_hasWarning;
     QIcon m_icon;
     QString m_iconPath;
     int m_nestedBlockingLevel;
@@ -176,16 +178,24 @@ bool Kit::isValid() const
     return d->m_id.isValid() && d->m_isValid;
 }
 
+bool Kit::hasWarning() const
+{
+    return d->m_hasWarning;
+}
+
 QList<Task> Kit::validate() const
 {
     QList<Task> result;
     QList<KitInformation *> infoList = KitManager::instance()->kitInformation();
     d->m_isValid = true;
+    d->m_hasWarning = false;
     foreach (KitInformation *i, infoList) {
         QList<Task> tmp = i->validate(this);
         foreach (const Task &t, tmp) {
             if (t.type == Task::Error)
                 d->m_isValid = false;
+            if (t.type == Task::Warning)
+                d->m_hasWarning = true;
         }
         result.append(tmp);
     }
@@ -411,7 +421,7 @@ QString Kit::toHtml()
     str << "<h3>" << displayName() << "</h3>";
     str << "<table>";
 
-    if (!isValid()) {
+    if (!isValid() || hasWarning()) {
         QList<Task> issues = validate();
         str << "<p>";
         foreach (const Task &t, issues) {
diff --git a/src/plugins/projectexplorer/kit.h b/src/plugins/projectexplorer/kit.h
index 78a1ba49919508ce12ba0bbcfeb06a78152fd059..c4b9a2dcb754097551dddf31a07e60b7050c1784 100644
--- a/src/plugins/projectexplorer/kit.h
+++ b/src/plugins/projectexplorer/kit.h
@@ -64,6 +64,7 @@ public:
     void unblockNotification();
 
     bool isValid() const;
+    bool hasWarning() const;
     QList<Task> validate() const;
     void fix(); // Fix the individual kit information.
     void setup(); // Apply advanced magic(TM). Used only once on each kit during initial setup.
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
index 6fa48cf7d82ed6d56a1d6cd6b90283bd894b40fb..750b3fc479fb763c801d9a86521ec3146b952f70 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
@@ -157,6 +157,11 @@ bool KitManagerConfigWidget::isValid() const
     return m_modifiedKit->isValid();
 }
 
+bool KitManagerConfigWidget::hasWarning() const
+{
+    return m_modifiedKit->hasWarning();
+}
+
 QString KitManagerConfigWidget::validityMessage() const
 {
     return m_modifiedKit->toHtml();
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
index 9267034e0262c6a6c7311abe1ec9f36ddd073da1..9ea72406c510c195d63a74284ec28aaf6e5a6be3 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
@@ -60,6 +60,7 @@ public:
     void discard();
     bool isDirty() const;
     bool isValid() const;
+    bool hasWarning() const;
     QString validityMessage() const;
     void addConfigWidget(ProjectExplorer::KitConfigWidget *widget);
     void makeReadOnly();
diff --git a/src/plugins/projectexplorer/kitmodel.cpp b/src/plugins/projectexplorer/kitmodel.cpp
index 3c6732f91f358968fa66c87652d5cd9c9fc42186..061ae49869c3afaeabf3ad749561158adf8494ec 100644
--- a/src/plugins/projectexplorer/kitmodel.cpp
+++ b/src/plugins/projectexplorer/kitmodel.cpp
@@ -154,6 +154,7 @@ int KitModel::columnCount(const QModelIndex &parent) const
 QVariant KitModel::data(const QModelIndex &index, int role) const
 {
     static QIcon warningIcon(QLatin1String(":/projectexplorer/images/compile_warning.png"));
+    static QIcon errorIcon(QLatin1String(":/projectexplorer/images/compile_error.png"));
 
     if (!index.isValid() || index.column() != 0)
         return QVariant();
@@ -179,7 +180,11 @@ QVariant KitModel::data(const QModelIndex &index, int role) const
                 baseName = tr("%1 (default)").arg(baseName);
             return baseName;
         } else if (role == Qt::DecorationRole) {
-            return node->widget->isValid() ? QIcon() : warningIcon;
+            if (!node->widget->isValid())
+                return errorIcon;
+            if (node->widget->hasWarning())
+                return warningIcon;
+            return QIcon();
         } else if (role == Qt::ToolTipRole) {
             return node->widget->validityMessage();
         }