diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 836f87e648b05f5eb0485fb80162ec979bbfd1d5..19589ac257370972850cde145ac138ed92691b96 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -183,6 +183,8 @@ struct ProjectExplorerPluginPrivate {
     Internal::ProjectExplorerSettings m_projectExplorerSettings;
     Internal::ProjectWelcomePage *m_welcomePlugin;
     Internal::ProjectWelcomePageWidget *m_welcomePage;
+
+    Core::BaseMode * m_projectsMode;
 };
 
 ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() :
@@ -191,7 +193,8 @@ ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() :
     m_currentProject(0),
     m_currentNode(0),
     m_delayedRunConfiguration(0),
-    m_debuggingRunControl(0)
+    m_debuggingRunControl(0),
+    m_projectsMode(0)
 {
 }
 
@@ -263,14 +266,15 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     QList<int> pecontext;
     pecontext << core->uniqueIDManager()->uniqueIdentifier(Constants::C_PROJECTEXPLORER);
 
-    Core::BaseMode *mode = new Core::BaseMode;
-    mode->setDisplayName(tr("Projects"));
-    mode->setId(QLatin1String(Constants::MODE_SESSION));
-    mode->setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png")));
-    mode->setPriority(Constants::P_MODE_SESSION);
-    mode->setWidget(d->m_proWindow);
-    mode->setContext(QList<int>() << pecontext);
-    addAutoReleasedObject(mode);
+    d->m_projectsMode = new Core::BaseMode;
+    d->m_projectsMode->setDisplayName(tr("Projects"));
+    d->m_projectsMode->setId(QLatin1String(Constants::MODE_SESSION));
+    d->m_projectsMode->setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png")));
+    d->m_projectsMode->setPriority(Constants::P_MODE_SESSION);
+    d->m_projectsMode->setWidget(d->m_proWindow);
+    d->m_projectsMode->setContext(QList<int>() << pecontext);
+    d->m_projectsMode->setEnabled(session()->startupProject());
+    addAutoReleasedObject(d->m_projectsMode);
     d->m_proWindow->layout()->addWidget(new Core::FindToolBarPlaceHolder(d->m_proWindow));
 
     d->m_buildManager = new BuildManager(this);
@@ -902,6 +906,7 @@ void ProjectExplorerPlugin::shutdown()
 {
     d->m_proWindow->shutdown(); // disconnect from session
     d->m_session->clear();
+    d->m_projectsMode = 0;
 //    d->m_proWindow->saveConfigChanges();
 }
 
@@ -1669,6 +1674,9 @@ void ProjectExplorerPlugin::startupProjectChanged()
     if (project == previousStartupProject)
         return;
 
+    if (d->m_projectsMode)
+        d->m_projectsMode->setEnabled(project);
+
     if (previousStartupProject) {
         disconnect(previousStartupProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
                    this, SLOT(updateRunActions()));
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index e85d5a836cef2b76828a9b0603a160756067c97a..d930acd5316a1125d09f3e8c08b081aa5ab14f9e 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -232,24 +232,6 @@ ProjectWindow::ProjectWindow(QWidget *parent)
     m_centralWidget = new QStackedWidget(this);
     viewLayout->addWidget(m_centralWidget);
 
-    // no projects label:
-    m_noprojectLabel = new QWidget;
-    QVBoxLayout *noprojectLayout = new QVBoxLayout;
-    noprojectLayout->setMargin(0);
-    QLabel *label = new QLabel(m_noprojectLabel);
-    label->setText(tr("No project loaded."));
-    {
-        QFont f = label->font();
-        f.setPointSizeF(f.pointSizeF() * 1.4);
-        f.setBold(true);
-        label->setFont(f);
-    }
-    label->setMargin(10);
-    label->setAlignment(Qt::AlignTop);
-    noprojectLayout->addWidget(label);
-    noprojectLayout->addStretch(10);
-    m_centralWidget->addWidget(m_noprojectLabel);
-
     // connects:
     connect(m_tabWidget, SIGNAL(currentIndexChanged(int,int)),
             this, SLOT(showProperties(int,int)));
@@ -314,11 +296,9 @@ void ProjectWindow::saveStatus()
 
 void ProjectWindow::showProperties(int index, int subIndex)
 {
-    if (index < 0) {
-        m_centralWidget->setCurrentWidget(m_noprojectLabel);
-        removeCurrentWidget();
+    if (index < 0 || index >= m_tabIndexToProject.count())
         return;
-    }
+
     Project *project = m_tabIndexToProject.at(index);
 
     // Set up custom panels again:
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h
index 73c9c0d357e3ff44852f9329e32ae1300e07bf62..b0bb52b185c751b1ebacfd3f65b007daa272d031 100644
--- a/src/plugins/projectexplorer/projectwindow.h
+++ b/src/plugins/projectexplorer/projectwindow.h
@@ -97,7 +97,6 @@ private:
     void removeCurrentWidget();
 
     DoubleTabWidget *m_tabWidget;
-    QWidget *m_noprojectLabel;
     QStackedWidget *m_centralWidget;
     QWidget *m_currentWidget;
     IPropertiesPanel *m_currentPanel;