diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 910723304894e2b696989def213387d641a05657..b804b9aced7f423b3370e709e6d409d407c0e9f1 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -626,6 +626,13 @@ bool Internal::GccToolChainConfigWidget::isDirty() const
             || m_abiList.at(m_abiComboBox->currentIndex()) != tc->targetAbi();
 }
 
+void Internal::GccToolChainConfigWidget::makeReadOnly()
+{
+    m_compilerPath->setEnabled(false);
+    m_abiComboBox->setEnabled(false);
+    ToolChainConfigWidget::makeReadOnly();
+}
+
 void Internal::GccToolChainConfigWidget::handlePathChange()
 {
     QString path = m_compilerPath->path();
diff --git a/src/plugins/projectexplorer/gcctoolchainfactories.h b/src/plugins/projectexplorer/gcctoolchainfactories.h
index 5ee603d2dd3f647ef0f4287ac5d38ea7eb1f4108..bed6fefeedba9f1de7ee97a430a0e5f6a2247af7 100644
--- a/src/plugins/projectexplorer/gcctoolchainfactories.h
+++ b/src/plugins/projectexplorer/gcctoolchainfactories.h
@@ -91,6 +91,7 @@ public:
     void apply();
     void discard() { setFromToolchain(); }
     bool isDirty() const;
+    void makeReadOnly();
 
 private slots:
     void handlePathChange();
diff --git a/src/plugins/projectexplorer/toolchainconfigwidget.cpp b/src/plugins/projectexplorer/toolchainconfigwidget.cpp
index 7efa4bb69ab36cf0d670c94c672b13bbe094d551..1285e7fdec14fbdfa53bbff834f00cb4915d5722 100644
--- a/src/plugins/projectexplorer/toolchainconfigwidget.cpp
+++ b/src/plugins/projectexplorer/toolchainconfigwidget.cpp
@@ -83,6 +83,12 @@ ToolChain *ToolChainConfigWidget::toolChain() const
     return m_d->m_toolChain;
 }
 
+void ToolChainConfigWidget::makeReadOnly()
+{
+    if (m_d->m_debuggerPathChooser)
+        m_d->m_debuggerPathChooser->setEnabled(false);
+}
+
 void ToolChainConfigWidget::emitDirty()
 {
     emit dirty(toolChain());
diff --git a/src/plugins/projectexplorer/toolchainconfigwidget.h b/src/plugins/projectexplorer/toolchainconfigwidget.h
index c4dd1ba2d83517ff09878927992fa41550356734..4945fd2458425702a5d5b0a154bace346a1b32da 100644
--- a/src/plugins/projectexplorer/toolchainconfigwidget.h
+++ b/src/plugins/projectexplorer/toolchainconfigwidget.h
@@ -68,6 +68,8 @@ public:
 
     virtual bool isDirty() const = 0;
 
+    virtual void makeReadOnly();
+
 signals:
     void dirty(ProjectExplorer::ToolChain *);
 
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 5b755283b07a0cbe1476839f3f3d82c2d265f024..65a5a26376b497c84289b2405f830798a09c9c87 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -63,7 +63,8 @@ public:
             p->childNodes.append(this);
         widget = tc ? tc->configurationWidget() : 0;
         if (widget) {
-            widget->setEnabled(tc ? !tc->isAutoDetected() : false);
+            if (tc && tc->isAutoDetected())
+                widget->makeReadOnly();
             widget->setVisible(false);
         }
     }
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
index a29485bbcb40051a197c1294f4a8f85567d761aa..aa9c4e86c2a2e00ee28d0609b04a8fcafbd6ac6f 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp
@@ -421,6 +421,14 @@ bool RvctToolChainConfigWidget::isDirty() const
             || tc->debuggerCommand() != debuggerCommand();
 }
 
+void RvctToolChainConfigWidget::makeReadOnly()
+{
+    m_ui->versionComboBox->setEnabled(false);
+    m_ui->compilerPath->setEnabled(false);
+    m_ui->environmentView->setEditTriggers(QAbstractItemView::NoEditTriggers);
+    ProjectExplorer::ToolChainConfigWidget::makeReadOnly();
+}
+
 QList<Utils::EnvironmentItem> RvctToolChainConfigWidget::environmentChanges() const
 {
     Utils::Environment baseEnv;
diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
index 40efbac9a40bac7facbe843e11dc62e55d3ed3bf..d8c3acb2ccca346c979031f217d48431eca357c6 100644
--- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h
@@ -147,6 +147,7 @@ public:
     void apply();
     void discard() { setFromToolChain(); }
     bool isDirty() const;
+    void makeReadOnly();
 
 private:
     void setFromToolChain();