diff --git a/src/plugins/projectexplorer/environmenteditmodel.cpp b/src/plugins/projectexplorer/environmenteditmodel.cpp
index 8a17cc23ee159c0b53acff5449a66448afd6d9a7..4a8b44977ea5766a7c44a200cba5ef08ac7c2fa1 100644
--- a/src/plugins/projectexplorer/environmenteditmodel.cpp
+++ b/src/plugins/projectexplorer/environmenteditmodel.cpp
@@ -366,6 +366,8 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, QWidget *additionalDetails
 
     connect(m_model, SIGNAL(renamedVariable(QString)),
             this, SLOT(renamedVariable(QString)));
+    connect(m_model, SIGNAL(focusIndex(QModelIndex)),
+            this, SLOT(focusIndex(QModelIndex)));
 
     QVBoxLayout *vbox = new QVBoxLayout(this);
     vbox->setContentsMargins(0, 0, 0, 0);
@@ -449,6 +451,12 @@ void EnvironmentWidget::renamedVariable(const QString &name)
     m_environmentTreeView->setFocus();
 }
 
+void EnvironmentWidget::focusIndex(const QModelIndex &index)
+{
+    m_environmentTreeView->setCurrentIndex(index);
+    m_environmentTreeView->setFocus();
+}
+
 void EnvironmentWidget::setBaseEnvironment(const ProjectExplorer::Environment &env)
 {
     m_model->setBaseEnvironment(env);
diff --git a/src/plugins/projectexplorer/environmenteditmodel.h b/src/plugins/projectexplorer/environmenteditmodel.h
index 60eea7bc5183c24ffd1f2f38327b5c9d4d7345e0..485f02360d6f61812558d047193d22d63e33be0d 100644
--- a/src/plugins/projectexplorer/environmenteditmodel.h
+++ b/src/plugins/projectexplorer/environmenteditmodel.h
@@ -84,6 +84,9 @@ signals:
     /// and to ensure that the model is in a consistent
     /// state at each signal emission
     void renamedVariable(const QString &newName);
+    /// Hint to the view where it should make sense to focus on next
+    void focusIndex(const QModelIndex &index);
+
 private:
     void updateResultEnvironment();
     int findInChanges(const QString &name) const;
@@ -125,6 +128,7 @@ private slots:
     void invalidateCurrentIndex();
     void updateSummaryText();
     void renamedVariable(const QString &name);
+    void focusIndex(const QModelIndex &index);
 
 private:
     EnvironmentModel *m_model;