diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
index 274e91471efd1f54d3c0432530f70ba80e64969f..39dfd43a2b58f519cd7608f2d8cdf655a3c496d9 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
@@ -33,6 +33,7 @@
 #include <utils/qtcassert.h>
 
 #include <QtCore/QDir>
+#include <QtCore/QProcess>
 #include <QtCore/QtDebug>
 
 enum { debug = 0 };
@@ -138,6 +139,9 @@ void GCCEToolChain::addToEnvironment(ProjectExplorer::Environment &env)
     default:
         break;
     }
+    QString version = gcceVersion();
+    version = version.remove(QLatin1Char('.'));
+    env.set(QString::fromLatin1("SBS_GCCE") + version + QLatin1String("BIN"), QDir::toNativeSeparators(m_gcceBinPath));
 }
 
 QString GCCEToolChain::makeCommand() const
@@ -154,3 +158,34 @@ bool GCCEToolChain::equals(ToolChain *otherIn) const
            && m_gcceBinPath == other->m_gcceBinPath
            && gcc() == other->gcc();
 }
+
+QString GCCEToolChain::gcceVersion() const
+{
+    if (m_gcceVersion.isEmpty()) {
+        QString command = gcceCommand(m_gcceBinPath);
+        if (command.isEmpty())
+            return QString();
+        QProcess gxx;
+        QStringList arguments;
+        arguments << QLatin1String("--version");
+        ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment();
+        env.set(QLatin1String("LC_ALL"), QLatin1String("C"));   //override current locale settings
+        gxx.setEnvironment(env.toStringList());
+        gxx.setReadChannelMode(QProcess::MergedChannels);
+        gxx.start(command, arguments);
+        gxx.closeWriteChannel();
+        gxx.waitForFinished();
+
+        QString line;
+        if (gxx.canReadLine()) {
+            line = gxx.readLine();
+            qDebug() << "GCCVersion:" << line;
+            QRegExp version("\\s((\\d+)\\.(\\d+)\\.(\\d+))\\s");
+            if (line.indexOf(version) >= -1) {
+                qDebug() << "    MATCHED!";
+                m_gcceVersion = version.cap(1);
+            }
+        }
+    }
+    return m_gcceVersion;
+}
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
index 791e384c51f0ee791a967f547c93ae0f1c5238df..76694383e3491d9dc833cf8b6d3d5aae267c7e40 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
@@ -58,9 +58,11 @@ protected:
     virtual bool equals(ToolChain *other) const;
 
 private:
+    QString gcceVersion() const;
     const S60ToolChainMixin m_mixin;
     const ProjectExplorer::ToolChain::ToolChainType m_type;
     const QString m_gcceBinPath;
+    mutable QString m_gcceVersion;
 };
 
 } // namespace Internal