diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index 3a75b383edce24b11b79c82b05c1945023fc0da4..8cc23b421508f093be11655e156a1ab7b2b96f6f 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -58,7 +58,7 @@ static const char MSVC_RegKey[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Mi
 static const char MSVC_RegKey[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7";
 #endif
 
-bool ToolChain::equals(ToolChain *a, ToolChain *b)
+bool ToolChain::equals(const ToolChain *a, const ToolChain *b)
 {
     if (a == b)
         return true;
@@ -322,9 +322,9 @@ IOutputParser *GccToolChain::outputParser() const
     return new GccParser;
 }
 
-bool GccToolChain::equals(ToolChain *other) const
+bool GccToolChain::equals(const ToolChain *other) const
 {
-    return (m_gcc == static_cast<GccToolChain *>(other)->m_gcc);
+    return (m_gcc == static_cast<const GccToolChain *>(other)->m_gcc);
 }
 
 MinGWToolChain::MinGWToolChain(const QString &gcc, const QString &mingwPath)
@@ -338,9 +338,9 @@ ToolChain::ToolChainType MinGWToolChain::type() const
     return ToolChain::MinGW;
 }
 
-bool MinGWToolChain::equals(ToolChain *other) const
+bool MinGWToolChain::equals(const ToolChain *other) const
 {
-    MinGWToolChain *o = static_cast<MinGWToolChain *>(other);
+    const MinGWToolChain *o = static_cast<const MinGWToolChain *>(other);
     return (m_mingwPath == o->m_mingwPath && this->GccToolChain::equals(other));
 }
 
@@ -592,9 +592,9 @@ ToolChain::ToolChainType MSVCToolChain::type() const
     return ToolChain::MSVC;
 }
 
-bool MSVCToolChain::equals(ToolChain *other) const
+bool MSVCToolChain::equals(const ToolChain *other) const
 {
-    MSVCToolChain *o = static_cast<MSVCToolChain *>(other);
+    const MSVCToolChain *o = static_cast<const MSVCToolChain *>(other);
     return (m_installation.name == o->m_installation.name);
 }
 
@@ -875,9 +875,9 @@ ToolChain::ToolChainType WinCEToolChain::type() const
     return ToolChain::WINCE;
 }
 
-bool WinCEToolChain::equals(ToolChain *other) const
+bool WinCEToolChain::equals(const ToolChain *other) const
 {
-    WinCEToolChain *o = static_cast<WinCEToolChain *>(other);
+    const WinCEToolChain *o = static_cast<const WinCEToolChain *>(other);
     return (m_platform == o->m_platform && this->MSVCToolChain::equals(other));
 }
 
diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index 1fa34b37c11cc6dd2a4f86c879fcf0f82460268c..1aa2341545339c7979a9c36f20053eac4da0cdaf 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -103,7 +103,7 @@ public:
     ToolChain();
     virtual ~ToolChain();
 
-    static bool equals(ToolChain *, ToolChain *);
+    static bool equals(const ToolChain *, const ToolChain *);
     // Factory methods
     static ToolChain *createGccToolChain(const QString &gcc);
     static ToolChain *createMinGWToolChain(const QString &gcc, const QString &mingwPath);
@@ -117,7 +117,7 @@ public:
     static QString toolChainName(ToolChainType tc);
 
 protected:
-    virtual bool equals(ToolChain *other) const = 0;
+    virtual bool equals(const ToolChain *other) const = 0;
 };
 
 class PROJECTEXPLORER_EXPORT GccToolChain : public ToolChain
@@ -132,7 +132,7 @@ public:
     virtual IOutputParser *outputParser() const;
 
 protected:
-    virtual bool equals(ToolChain *other) const;
+    virtual bool equals(const ToolChain *other) const;
     QByteArray m_predefinedMacros;
     QList<HeaderPath> m_systemHeaderPaths;
     QString gcc() const { return m_gcc; }
@@ -152,7 +152,7 @@ public:
     virtual IOutputParser *outputParser() const;
 
 protected:
-    virtual bool equals(ToolChain *other) const;
+    virtual bool equals(const ToolChain *other) const;
 
 private:
     QString m_mingwPath;
@@ -216,7 +216,7 @@ protected:
     typedef QPair<QString, QString> StringStringPair;
     typedef QList<StringStringPair> StringStringPairList;
 
-    virtual bool equals(ToolChain *other) const;
+    virtual bool equals(const ToolChain *other) const;
     static StringStringPairList readEnvironmentSetting(const QString &varsBat,
                                                        const QStringList &args,
                                                        const ProjectExplorer::Environment &env);
@@ -249,7 +249,7 @@ public:
 
 protected:
     explicit WinCEToolChain(const Installation &in, const QString &platform);
-    virtual bool equals(ToolChain *other) const;
+    virtual bool equals(const ToolChain *other) const;
 
 private:
     const QString m_platform;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp
index ebbbde8cd99feb49fcda89d662344ae10d266734..974387473e987b933ee47fa263c4719bd6cadf67 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp
@@ -76,9 +76,9 @@ QString MaemoToolChain::makeCommand() const
     return QLatin1String("make" EXEC_SUFFIX);
 }
 
-bool MaemoToolChain::equals(ToolChain *other) const
+bool MaemoToolChain::equals(const ToolChain *other) const
 {
-    MaemoToolChain *toolChain = static_cast<MaemoToolChain*> (other);
+    const MaemoToolChain *toolChain = static_cast<const MaemoToolChain*> (other);
     return other->type() == type()
         && toolChain->sysrootRoot() == sysrootRoot()
         && toolChain->targetRoot() == targetRoot();
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h
index a08220b25dbbb250d3b5d6fbde37c1056f27227e..71a0792ab293ac66a3e2e02a7985fea86dbf8471 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h
@@ -58,7 +58,7 @@ public:
     bool allowsPackagingDisabling() const { return version() == Maemo5; }
 
 protected:
-    bool equals(ToolChain *other) const;
+    bool equals(const ToolChain *other) const;
 
 private:
     void setMaddeRoot() const;
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
index 82604ab3b62816df4393ceb1a9da4494009e1d19..ea3d1b39f01bdb4363c92cc7e3854487a7d182c4 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
@@ -151,7 +151,7 @@ QString GCCEToolChain::makeCommand() const
     return QLatin1String("make");
 }
 
-bool GCCEToolChain::equals(ToolChain *otherIn) const
+bool GCCEToolChain::equals(const ToolChain *otherIn) const
 {
     if (otherIn->type() != type())
                 return false;
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
index 76694383e3491d9dc833cf8b6d3d5aae267c7e40..a701454c4899ac597863b3c13f8b33f04d76deb3 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
@@ -55,7 +55,7 @@ public:
     virtual QString makeCommand() const;
 
 protected:
-    virtual bool equals(ToolChain *other) const;
+    virtual bool equals(const ToolChain *other) const;
 
 private:
     QString gcceVersion() const;
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
index 4340d7b927006c1d13c629629d2033112662847c..eaa7a0a4e75564a40015a23ee9ab376e0ebaa22f 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
@@ -275,7 +275,7 @@ ProjectExplorer::IOutputParser *RVCTToolChain::outputParser() const
     return new RvctParser;
 }
 
-bool RVCTToolChain::equals(ToolChain *otherIn) const
+bool RVCTToolChain::equals(const ToolChain *otherIn) const
 {
     if (otherIn->type() != type())
         return false;
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
index ecf1c2499dd84774a566e1a75801cf08f29635f2..fc985a983084e92325759be0326c2d59fcf508a2 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
@@ -56,7 +56,7 @@ public:
     static QString rvctBinary();
 
 protected:
-    bool equals(ToolChain *other) const;
+    bool equals(const ToolChain *other) const;
 
 private:
     void addToRVCTPathVariable(const QString &postfix, const QStringList &values,
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
index 5d4e00299b09e75c323a189ae67f6f424ca92864..89d0a357291c24634232c671caa31d3d3c596b06 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
@@ -37,7 +37,7 @@
 using namespace ProjectExplorer;
 using namespace Qt4ProjectManager::Internal;
 
-WINSCWToolChain::WINSCWToolChain(S60Devices::Device device, const QString &mwcDirectory)
+WINSCWToolChain::WINSCWToolChain(const S60Devices::Device &device, const QString &mwcDirectory)
     : m_mixin(device),
     m_carbidePath(mwcDirectory),
     m_deviceId(device.id),
@@ -117,9 +117,9 @@ IOutputParser *WINSCWToolChain::outputParser() const
     return new WinscwParser;
 }
 
-bool WINSCWToolChain::equals(ToolChain *other) const
+bool WINSCWToolChain::equals(const ToolChain *other) const
 {
-    WINSCWToolChain *otherWINSCW = static_cast<WINSCWToolChain *>(other);
+    const WINSCWToolChain *otherWINSCW = static_cast<const WINSCWToolChain *>(other);
     return (other->type() == type()
             && m_deviceId == otherWINSCW->m_deviceId
             && m_deviceName == otherWINSCW->m_deviceName
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
index 9681cc75d14001d72995fbe37452aa77962e2f94..8f5fbab5fca3fc368d393166e83559f584e20ccf 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
@@ -40,7 +40,7 @@ namespace Internal {
 class WINSCWToolChain : public ProjectExplorer::ToolChain
 {
 public:
-    WINSCWToolChain(S60Devices::Device device, const QString &mwcDirectory);
+    explicit WINSCWToolChain(const S60Devices::Device &device, const QString &mwcDirectory);
     QByteArray predefinedMacros();
     QList<ProjectExplorer::HeaderPath> systemHeaderPaths();
     void addToEnvironment(ProjectExplorer::Environment &env);
@@ -49,7 +49,7 @@ public:
     ProjectExplorer::IOutputParser *outputParser() const;
 
 protected:
-    bool equals(ToolChain *other) const;
+    bool equals(const ToolChain *other) const;
 
 private:
     QStringList systemIncludes() const;