diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index df3428cbc4d687ad15125b88e2151b285d5afb82..362347d21b80c2641c83ecddccc10d5574132071 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -612,6 +612,15 @@ CMakeTarget CMakeProject::targetForTitle(const QString &title)
     return CMakeTarget();
 }
 
+ProjectExplorer::ToolChain::ToolChainType CMakeProject::toolChainType() const
+{
+    if (m_toolChain)
+        return m_toolChain->type();
+    return ProjectExplorer::ToolChain::UNKNOWN;
+}
+
+// CMakeFile
+
 CMakeFile::CMakeFile(CMakeProject *parent, QString fileName)
     : Core::IFile(parent), m_project(parent), m_fileName(fileName)
 {
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 90e692a1e0ddf065bf2765207d52482b96f1af21..603d4e85553efeffa5a70f13a924f6dd63d5d4ac 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -105,6 +105,7 @@ public:
     CMakeTarget targetForTitle(const QString &title);
 
     QString sourceDirectory() const;
+    ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
 
 protected:
     virtual void saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer);
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 94880ecf3d9c96adac061fa4d9de6d45389c1914..eda621739a15db61a6c65029c1a120258a731877 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -217,6 +217,12 @@ void CMakeRunConfiguration::setUserEnvironmentChanges(const QList<ProjectExplore
     }
 }
 
+ProjectExplorer::ToolChain::ToolChainType CMakeRunConfiguration::toolChainType() const
+{
+    CMakeProject *pro = static_cast<CMakeProject *>(project());
+    return pro->toolChainType();
+}
+
 // Configuration widget
 
 
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index 89d9ba6eee4ef90f3c13b77af2ceca0114fe347d..3c8148a3ad0a17a59cad19187968f424ceaa9ce2 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -70,6 +70,7 @@ public:
     virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
     virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
     virtual QString dumperLibrary() const;
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
 
 signals:
     void baseEnvironmentChanged();
diff --git a/src/plugins/projectexplorer/applicationrunconfiguration.h b/src/plugins/projectexplorer/applicationrunconfiguration.h
index 44d8a8e479ffcf915f347d78814cd64e9cb587ce..d9f5b543af06338f2a55d4f4bf0487e24f0cd746 100644
--- a/src/plugins/projectexplorer/applicationrunconfiguration.h
+++ b/src/plugins/projectexplorer/applicationrunconfiguration.h
@@ -30,6 +30,8 @@
 #ifndef APPLICATIONRUNCONFIGURATION_H
 #define APPLICATIONRUNCONFIGURATION_H
 
+#include <projectexplorer/toolchain.h>
+
 #include "runconfiguration.h"
 #include "applicationlauncher.h"
 
@@ -55,6 +57,7 @@ public:
     virtual QStringList commandLineArguments() const = 0;
     virtual Environment environment() const = 0;
     virtual QString dumperLibrary() const = 0;
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const = 0;
 
     virtual void save(PersistentSettingsWriter &writer) const;
     virtual void restore(const PersistentSettingsReader &reader);
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index 1d13e778f6094c39b8a3973b6a42f578690c40a8..30355a4e81c79b1022ecb0816cb3880401aeb88f 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -459,6 +459,10 @@ QString CustomExecutableRunConfiguration::dumperLibrary() const
     return ProjectExplorer::DebuggingHelperLibrary::debuggingHelperLibrary(qmakePath);
 }
 
+ProjectExplorer::ToolChain::ToolChainType CustomExecutableRunConfiguration::toolChainType() const
+{
+    return ProjectExplorer::ToolChain::UNKNOWN;
+}
 
 // Factory
 
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
index da1916ba5cc9f1c7899735422136e4a63f926ac5..894116fc08e46413cedb8e805502a6c7afa5c5ae 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
@@ -90,6 +90,8 @@ public:
     virtual QWidget *configurationWidget();
     virtual QString dumperLibrary() const;
 
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
+
 signals:
     void changed();
 
diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index c4b112fc9576d2e63cd2e429c0bc59895ad3fb4f..15a2278291e3e9fc1cc5275523e7f33c90bce000 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -74,6 +74,7 @@ public:
         MSVC,
         WINCE,
         OTHER,
+        UNKNOWN,
         INVALID
     };
 
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 45f283ed85b0691a1dcf7517d25ba4b90bc7deb7..876929a85f250fb4a5826537b2a1d98901bd0da9 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -635,6 +635,11 @@ Qt4RunConfiguration::BaseEnvironmentBase Qt4RunConfiguration::baseEnvironmentBas
 {
     return m_baseEnvironmentBase;
 }
+ProjectExplorer::ToolChain::ToolChainType Qt4RunConfiguration::toolChainType() const
+{
+    Qt4Project *pro = qobject_cast<Qt4Project *>(project());
+    return pro->qtVersion(pro->activeBuildConfiguration())->toolchainType();
+}
 
 ///
 /// Qt4RunConfigurationFactory
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt4runconfiguration.h
index 37f97d64823ae561335d3c14777826e29c16af8a..d72671d48487836c3e7f6a24916dfe2553d3a482 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.h
@@ -73,6 +73,7 @@ public:
     virtual QStringList commandLineArguments() const;
     virtual ProjectExplorer::Environment environment() const;
     virtual QString dumperLibrary() const;
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
 
     bool isUsingDyldImageSuffix() const;
     void setUsingDyldImageSuffix(bool state);