diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index b291f43a616f111e48d7c606b71dce85a55933a2..f6e33ee5cadd8d30a2fb2ff0b0879527ba0f0283 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -262,13 +262,6 @@ QStringList GenericProject::files(FilesMode fileMode) const
     return _rootNode->files();
 }
 
-void GenericProject::saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer)
-{
-    qDebug() << Q_FUNC_INFO;
-
-    Project::saveSettingsImpl(writer);
-}
-
 QStringList GenericProject::targets() const
 {
     QStringList targets;
@@ -308,6 +301,26 @@ void GenericProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsRead
         const QFileInfo fileInfo(file()->fileName());
         setValue(all, buildDirectory, fileInfo.absolutePath());
     }
+
+    QString toolChainId = reader.restoreValue(QLatin1String("toolChain")).toString();
+    if (toolChainId.isEmpty())
+        toolChainId = QLatin1String("gcc");
+
+    toolChainId = toolChainId.toLower(); // ### move
+    _rootNode->setToolChainId(toolChainId);
+
+    const QStringList includePaths = reader.restoreValue(QLatin1String("includePaths")).toStringList();
+    _rootNode->setIncludePaths(includePaths);
+}
+
+void GenericProject::saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer)
+{
+    qDebug() << Q_FUNC_INFO;
+
+    Project::saveSettingsImpl(writer);
+
+    writer.saveValue("toolChain", _rootNode->toolChainId());
+    writer.saveValue("includePaths", _rootNode->includePaths());
 }
 
 ////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.cpp b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
index 2be47bdfe337f0f769f254f84d347271d19cd1bb..59739982bad11a6d905dd61f3080cfc951abcc91 100644
--- a/src/plugins/genericprojectmanager/genericprojectnodes.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
@@ -74,9 +74,7 @@ void GenericProjectNode::refresh()
 
     _files        = convertToAbsoluteFiles(projectPath, projectInfo.value(QLatin1String("files")).toStringList());
     _generated    = convertToAbsoluteFiles(projectPath, projectInfo.value(QLatin1String("generated")).toStringList());
-    _includePaths = convertToAbsoluteFiles(projectPath, projectInfo.value(QLatin1String("includes")).toStringList());
     _defines      = projectInfo.value(QLatin1String("defines")).toStringList();
-    _toolChainId  = projectInfo.value(QLatin1String("toolchain"), QLatin1String("gcc")).toString().toLower();
 
     FileNode *projectFileNode = new FileNode(projectFilePath(), ProjectFileType,
                                              /* generated = */ false);
@@ -230,12 +228,18 @@ QStringList GenericProjectNode::generated() const
 QStringList GenericProjectNode::includePaths() const
 { return _includePaths; }
 
+void GenericProjectNode::setIncludePaths(const QStringList &includePaths)
+{ _includePaths = convertToAbsoluteFiles(QDir(path()), includePaths); }
+
 QStringList GenericProjectNode::defines() const
 { return _defines; }
 
 QString GenericProjectNode::toolChainId() const
 { return _toolChainId; }
 
+void GenericProjectNode::setToolChainId(const QString &toolChainId)
+{ _toolChainId = toolChainId; }
+
 bool GenericProjectNode::hasTargets() const
 {
     qDebug() << Q_FUNC_INFO;
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.h b/src/plugins/genericprojectmanager/genericprojectnodes.h
index d393b03d5d9f03094ff768d9ef0fb215588979b8..891debda7443a54a3f460728bef7d25ca3d0f87e 100644
--- a/src/plugins/genericprojectmanager/genericprojectnodes.h
+++ b/src/plugins/genericprojectmanager/genericprojectnodes.h
@@ -69,11 +69,15 @@ public:
 
     void refresh();
 
+    QString toolChainId() const;
+    void setToolChainId(const QString &toolChainId);
+
+    QStringList includePaths() const;
+    void setIncludePaths(const QStringList &includePaths);
+
     QStringList files() const;
     QStringList generated() const;
-    QStringList includePaths() const;
     QStringList defines() const;
-    QString toolChainId() const;
 
 private:
     FolderNode *findOrCreateFolderByName(const QString &filePath);