diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index b347a69d0c86cde666b40bacf2c0a2155badd4ff..b1b3d10337274c36570433643000bc7300e20030 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -88,7 +88,7 @@ public:
     virtual void addToEnvironment(ProjectExplorer::Environment &env) = 0;
     virtual ToolChainType type() const = 0;
     virtual QString makeCommand() const = 0;
-    virtual QString defaultMakeTarget(const Project *project) const = 0;
+    virtual QString defaultMakeTarget() const = 0;
 
     ToolChain();
     virtual ~ToolChain();
@@ -118,7 +118,7 @@ public:
     virtual void addToEnvironment(ProjectExplorer::Environment &env);
     virtual ToolChainType type() const;
     virtual QString makeCommand() const;
-    virtual QString defaultMakeTarget(const Project *) const { return ""; }
+    virtual QString defaultMakeTarget() const { return ""; }
 
 protected:
     virtual bool equals(ToolChain *other) const;
@@ -152,7 +152,7 @@ public:
     virtual void addToEnvironment(ProjectExplorer::Environment &env);
     virtual ToolChainType type() const;
     virtual QString makeCommand() const;
-    virtual QString defaultMakeTarget(const Project *) const { return ""; }
+    virtual QString defaultMakeTarget() const { return ""; }
 protected:
     virtual bool equals(ToolChain *other) const;
     QString m_name;
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
index dd2704ef8b22a4abc98dc91820f835705d057412..d72bfcced7fcbc5992b90806d617f4e44067ed36 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
@@ -121,12 +121,12 @@ QString GCCEToolChain::makeCommand() const
     return "make";
 }
 
-QString GCCEToolChain::defaultMakeTarget(const Project *project) const
+QString GCCEToolChain::defaultMakeTarget() const
 {
-    const Qt4Project *qt4project = qobject_cast<const Qt4Project *>(project);
+    const Qt4Project *qt4project = qobject_cast<const Qt4Project *>(m_project);
     if (qt4project) {
         if (!(QtVersion::QmakeBuildConfig(qt4project->qmakeStep()->value(
-                project->activeBuildConfiguration(),
+                qt4project->activeBuildConfiguration(),
                 "buildConfiguration").toInt()) & QtVersion::DebugBuild)) {
             return "release-gcce";
         }
@@ -140,3 +140,8 @@ bool GCCEToolChain::equals(ToolChain *other) const
             && m_deviceId == static_cast<GCCEToolChain *>(other)->m_deviceId
             && m_deviceName == static_cast<GCCEToolChain *>(other)->m_deviceName);
 }
+
+void GCCEToolChain::setProject(const ProjectExplorer::Project *project)
+{
+    m_project = project;
+}
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
index be27ad5176aafed118889664597b6e350c6d39b2..63c38b1defc57bbcb838d4cba91b36cb5702c2ac 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
@@ -18,7 +18,9 @@ public:
     void addToEnvironment(ProjectExplorer::Environment &env);
     ProjectExplorer::ToolChain::ToolChainType type() const;
     QString makeCommand() const;
-    QString defaultMakeTarget(const ProjectExplorer::Project *project) const;
+    QString defaultMakeTarget() const;
+
+    void setProject(const ProjectExplorer::Project *project);
 
 protected:
     bool equals(ToolChain *other) const;
@@ -29,6 +31,7 @@ private:
     QString m_deviceRoot;
     QByteArray m_predefinedMacros;
     QList<ProjectExplorer::HeaderPath> m_systemHeaderPaths;
+    const ProjectExplorer::Project *m_project;
 };
 
 } // namespace Internal
diff --git a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
index 829762183cc55c3cd6ef686dd28fc12ff4d6dea1..7dc3c3c6072c97ddaa58a5d4d04c558cb2d31fde 100644
--- a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
+++ b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
@@ -8,10 +8,6 @@
     * gui for overriding the default make target if necessary,
       make arguments --> make options
     * more general "debug / release" configuration to be used in toolchain???
-    * tool chain instance should move to qt4project again, qt version defines
-      the possible tool chains, and possibly the tool chain creation, but not
-      the currently used one; we can probably get rid of the project parameter
-      of ToolChain::defaultMakeTarget then as well
     * build parser should be defined/created by toolchain, not make step
 
 * Debugging helpers
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
index 3ff84faff0dc426e94fb19ff547506d9e4dd0e43..d96569c29e72b71d1d637c9ca020d4de387bbf76 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
@@ -70,7 +70,7 @@ QString WINSCWToolChain::makeCommand() const
     return "make";
 }
 
-QString WINSCWToolChain::defaultMakeTarget(const Project *) const
+QString WINSCWToolChain::defaultMakeTarget() const
 {
     return "debug-winscw";
 }
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
index a1b331acd19c91b17c162a613162f3b7752a5d23..c353954d552bcefc28346c4ddccf26c493670e04 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
@@ -18,7 +18,7 @@ public:
     void addToEnvironment(ProjectExplorer::Environment &env);
     ProjectExplorer::ToolChain::ToolChainType type() const;
     QString makeCommand() const;
-    QString defaultMakeTarget(const ProjectExplorer::Project *) const;
+    QString defaultMakeTarget() const;
 
 protected:
     bool equals(ToolChain *other) const;
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index d0757653be5cd1d7e805f08713156c56caf1c005..c4426a61e491e515588440ad841421617ce3893a 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -43,6 +43,10 @@
 #include "projectloadwizard.h"
 #include "qtversionmanager.h"
 
+#ifdef QTCREATOR_WITH_S60
+#include "qt-s60/gccetoolchain.h"
+#endif
+
 #include <coreplugin/icore.h>
 #include <coreplugin/messagemanager.h>
 #include <coreplugin/coreconstants.h>
@@ -385,6 +389,11 @@ ProjectExplorer::ToolChain *Qt4Project::toolChain(const QString &buildConfigurat
 {
     if (!m_toolChain) {
         m_toolChain = qtVersion(buildConfiguration)->createToolChain(toolChainType(buildConfiguration));
+#ifdef QTCREATOR_WITH_S60
+        if (m_toolChain->type() == ToolChain::GCCE) {
+            static_cast<GCCEToolChain *>(m_toolChain)->setProject(this);
+        }
+#endif
     }
     return m_toolChain;
 }
@@ -396,7 +405,7 @@ QString Qt4Project::makeCommand(const QString &buildConfiguration) const
 
 QString Qt4Project::defaultMakeTarget(const QString &buildConfiguration) const
 {
-    return toolChain(buildConfiguration)->defaultMakeTarget(this);
+    return toolChain(buildConfiguration)->defaultMakeTarget();
 }
 
 void Qt4Project::updateCodeModel()