diff --git a/src/plugins/projectexplorer/pluginfilefactory.cpp b/src/plugins/projectexplorer/pluginfilefactory.cpp
index 855b36e9ea26bc38dc297ca53900e8d1c29203e6..a6c5961e819165548069c66225bbe91136e0eac5 100644
--- a/src/plugins/projectexplorer/pluginfilefactory.cpp
+++ b/src/plugins/projectexplorer/pluginfilefactory.cpp
@@ -76,8 +76,6 @@ Core::IFile *ProjectFileFactory::open(const QString &fileName)
         SessionManager *session = pe->session();
         if (session->projects().count() == 1)
             fIFace = session->projects().first()->file();
-        else if (session->projects().count() > 1)
-            fIFace = session->file();  // TODO: Why return session file interface here ???
     }
     return fIFace;
 }
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 7b3155b9404c1a7b799c3f247e0f6fba9e71cf43..70ab42ecd97a827a2d4f174aba11ab9b3c912a49 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -973,7 +973,7 @@ void ProjectExplorerPlugin::savePersistentSettings()
 
     QSettings *s = Core::ICore::instance()->settings();
     if (s) {
-        s->setValue("ProjectExplorer/StartupSession", d->m_session->file()->fileName());
+        s->setValue("ProjectExplorer/StartupSession", d->m_session->currentSession());
         s->remove("ProjectExplorer/RecentProjects/Files");
 
         QStringList fileNames;
diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp
index 8992c434bb3f29cfcbd0f2c8aefa65c48ea8e612..b4794bd57a3a98141efae088de0365cd2b9800dc 100644
--- a/src/plugins/projectexplorer/session.cpp
+++ b/src/plugins/projectexplorer/session.cpp
@@ -68,7 +68,7 @@ namespace {
 namespace ProjectExplorer {
 namespace Internal {
 
-class SessionFile : public Core::IFile
+    class SessionFile : QObject
 {
     Q_OBJECT
 
@@ -81,23 +81,10 @@ public:
     QString fileName() const;
     void setFileName(const QString &fileName);
 
-    QString defaultPath() const;
-    QString suggestedFileName() const;
-    virtual QString mimeType() const;
-
-    bool isModified() const;
-    bool isReadOnly() const;
-    bool isSaveAsAllowed() const;
-
-    ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const;
-    void reload(ReloadFlag flag, ChangeType type);
-
 public slots:
     void sessionLoadingProgress();
 
-
 private:
-    const QString m_mimeType;
     Core::ICore *m_core;
 
     QString m_fileName;
@@ -125,17 +112,11 @@ void SessionFile::sessionLoadingProgress()
 }
 
 SessionFile::SessionFile()
-  : m_mimeType(QLatin1String(ProjectExplorer::Constants::SESSIONFILE_MIMETYPE)),
-    m_core(Core::ICore::instance()),
+  : m_core(Core::ICore::instance()),
     m_startupProject(0)
 {
 }
 
-QString SessionFile::mimeType() const
-{
-    return m_mimeType;
-}
-
 bool SessionFile::load(const QString &fileName)
 {
     Q_ASSERT(!fileName.isEmpty());
@@ -306,53 +287,8 @@ void SessionFile::setFileName(const QString &fileName)
     m_fileName = fileName;
 }
 
-bool SessionFile::isModified() const
-{
-    return true;
-}
-
-bool SessionFile::isReadOnly() const
-{
-    return false;
-}
-
-bool SessionFile::isSaveAsAllowed() const
-{
-    return true;
-}
-
-Core::IFile::ReloadBehavior SessionFile::reloadBehavior(ChangeTrigger state, ChangeType type) const
-{
-    Q_UNUSED(state)
-    Q_UNUSED(type)
-    return BehaviorSilent;
-}
-
-void SessionFile::reload(ReloadFlag flag, ChangeType type)
-{
-    Q_UNUSED(flag)
-    Q_UNUSED(type)
-}
-
-QString SessionFile::defaultPath() const
-{
-    if (!m_projects.isEmpty()) {
-        const QFileInfo fi(m_projects.first()->file()->fileName());
-        return fi.absolutePath();
-    }
-    return QString();
-}
-
-QString SessionFile::suggestedFileName() const
-{
-    if (m_startupProject)
-        return m_startupProject->displayName();
-
-    return tr("Untitled", "default file name to display");
-}
-
 Internal::SessionNodeImpl::SessionNodeImpl(SessionManager *manager)
-        : ProjectExplorer::SessionNode(manager->file()->fileName(), manager)
+        : ProjectExplorer::SessionNode(manager->currentSession(), manager)
 {
     setFileName("session");
 }
@@ -894,9 +830,9 @@ void SessionManager::setEditorCodec(Core::IEditor *editor, const QString &fileNa
             textEditor->setTextCodec(project->editorConfiguration()->defaultTextCodec());
 }
 
-Core::IFile *SessionManager::file() const
+QString SessionManager::currentSession() const
 {
-    return m_file;
+    return m_file->fileName();
 }
 
 void SessionManager::handleCurrentEditorChange(Core::IEditor *editor)
diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h
index 2e3aa0b464b368ddc092dfc60ee2a44fdaa51c9c..69992fba11ea8a057ebe02c56a8948fa0a9ae399 100644
--- a/src/plugins/projectexplorer/session.h
+++ b/src/plugins/projectexplorer/session.h
@@ -128,7 +128,7 @@ public:
     bool addDependency(Project *project, Project *depProject);
     void removeDependency(Project *project, Project *depProject);
 
-    Core::IFile *file() const;
+    QString currentSession() const;
     Project *startupProject() const;
 
     const QList<Project *> &projects() const;