diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 3323843b99ad1c31245ddd92a0ffa62a7dfc8598..a6b87c6c173d343e837cf546a84d166021ad42e4 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -57,7 +57,8 @@ namespace {
 bool debug = false;
 }
 
-ProjectWindow::ProjectWindow(QWidget *parent) : QWidget(parent)
+ProjectWindow::ProjectWindow(QWidget *parent)
+    : QWidget(parent), m_currentItemChanged(false)
 {
     setWindowTitle(tr("Project Explorer"));
     setWindowIcon(QIcon(":/projectexplorer/images/projectexplorer.png"));
@@ -253,16 +254,20 @@ Project *ProjectWindow::findProject(const QString &path) const
 
 void ProjectWindow::handleCurrentItemChanged(QTreeWidgetItem *current)
 {
+    if (m_currentItemChanged)
+        return;
+    m_currentItemChanged = true;
     if (current) {
         QString path = current->data(2, Qt::UserRole).toString();
         if (Project *project = findProject(path)) {
             m_projectExplorer->setCurrentFile(project, path);
             showProperties(project, QModelIndex());
+            m_currentItemChanged = false;
             return;
         }
-    } else {
-        showProperties(0, QModelIndex());
     }
+    showProperties(0, QModelIndex());
+    m_currentItemChanged = false;
 }
 
 
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h
index a868067bd71b7a7d86fa8adde60f196df9af28e0..7960c6a916307600e1939f2eaba0796ba773439a 100644
--- a/src/plugins/projectexplorer/projectwindow.h
+++ b/src/plugins/projectexplorer/projectwindow.h
@@ -79,6 +79,7 @@ private:
     QList<PropertiesPanel*> m_panels;
 
     Project *findProject(const QString &path) const;
+    bool m_currentItemChanged;
 };
 
 } // namespace Internal