diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
index e9705a85b24229d227a0080b1119233ca8a9d005..81a85c682356b32510ad7b8c8f0e22fe0ef46203 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
@@ -224,9 +224,9 @@ QVariantMap QbsBuildStep::toMap() const
 void QbsBuildStep::buildingDone(bool success)
 {
     // Report errors:
-    foreach (const qbs::ErrorData &data, m_job->error().entries())
-        createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
-                            data.codeLocation().fileName(), data.codeLocation().line());
+    foreach (const qbs::ErrorItem &item, m_job->error().items())
+        createTaskAndOutput(ProjectExplorer::Task::Error, item.description(),
+                            item.codeLocation().fileName(), item.codeLocation().line());
 
     QTC_ASSERT(m_fi, return);
     m_fi->reportResult(success);
diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
index 6911144cb17c3ac343ed2b43fc5f27ad3cc934e5..c18e5ab7b0b3993eb7188500bb84ba3224506ec1 100644
--- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
@@ -179,9 +179,9 @@ QVariantMap QbsCleanStep::toMap() const
 void QbsCleanStep::cleaningDone(bool success)
 {
     // Report errors:
-    foreach (const qbs::ErrorData &data, m_job->error().entries()) {
-        createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
-                            data.codeLocation().fileName(), data.codeLocation().line());
+    foreach (const qbs::ErrorItem &item, m_job->error().items()) {
+        createTaskAndOutput(ProjectExplorer::Task::Error, item.description(),
+                            item.codeLocation().fileName(), item.codeLocation().line());
     }
 
     QTC_ASSERT(m_fi, return);
diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
index b08b11ad5b2a79941e16229e84783da7b3411949..e55c637e0696120e6855daa279f6da65df84c374 100644
--- a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
@@ -188,9 +188,9 @@ qbs::InstallOptions QbsInstallStep::installOptions() const
 void QbsInstallStep::installDone(bool success)
 {
     // Report errors:
-    foreach (const qbs::ErrorData &data, m_job->error().entries()) {
-        createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
-                            data.codeLocation().fileName(), data.codeLocation().line());
+    foreach (const qbs::ErrorItem &item, m_job->error().items()) {
+        createTaskAndOutput(ProjectExplorer::Task::Error, item.description(),
+                            item.codeLocation().fileName(), item.codeLocation().line());
     }
 
     QTC_ASSERT(m_fi, return);
diff --git a/src/plugins/qbsprojectmanager/qbslogsink.cpp b/src/plugins/qbsprojectmanager/qbslogsink.cpp
index 3d7ac94eae49d8c754d8b449a791d14caa29c8cc..e22cd6391cdfbb7a411d25082e8b977dec226374 100644
--- a/src/plugins/qbsprojectmanager/qbslogsink.cpp
+++ b/src/plugins/qbsprojectmanager/qbslogsink.cpp
@@ -68,13 +68,13 @@ void QbsLogSink::sendMessages()
         mm->printToOutputPane(msg, Core::MessageManager::NoModeSwitch);
 }
 
-void QbsLogSink::doPrintWarning(const qbs::Error &warning)
+void QbsLogSink::doPrintWarning(const qbs::ErrorInfo &warning)
 {
-    foreach (const qbs::ErrorData &data, warning.entries())
+    foreach (const qbs::ErrorItem &item, warning.items())
         emit newTask(ProjectExplorer::Task(ProjectExplorer::Task::Warning,
-                                           data.description(),
-                                           Utils::FileName::fromString(data.codeLocation().fileName()),
-                                           data.codeLocation().line(),
+                                           item.description(),
+                                           Utils::FileName::fromString(item.codeLocation().fileName()),
+                                           item.codeLocation().line(),
                                            ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
 }
 
diff --git a/src/plugins/qbsprojectmanager/qbslogsink.h b/src/plugins/qbsprojectmanager/qbslogsink.h
index fe40101e884279c54d1f7fb55690adc212c3cbfe..0da371119e7314212fdf5a6a67ad16982e2b82bc 100644
--- a/src/plugins/qbsprojectmanager/qbslogsink.h
+++ b/src/plugins/qbsprojectmanager/qbslogsink.h
@@ -54,7 +54,7 @@ private slots:
     void sendMessages();
 
 private:
-    void doPrintWarning(const qbs::Error &warning);
+    void doPrintWarning(const qbs::ErrorInfo &warning);
     void doPrintMessage(qbs::LoggerLevel level, const QString &message, const QString &tag);
 
     QStringList m_messages;
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index 99bd14f8f4424813253f4870c2f76bd8ccec6adc..6fbb773f27eda4b6eda51b9f0a3df21c1cfe866c 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -378,13 +378,13 @@ bool QbsProject::fromMap(const QVariantMap &map)
     return true;
 }
 
-void QbsProject::generateErrors(const qbs::Error &e)
+void QbsProject::generateErrors(const qbs::ErrorInfo &e)
 {
-    foreach (const qbs::ErrorData &data, e.entries())
+    foreach (const qbs::ErrorItem &item, e.items())
         taskHub()->addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error,
-                                                 data.description(),
-                                                 Utils::FileName::fromString(data.codeLocation().fileName()),
-                                                 data.codeLocation().line(),
+                                                 item.description(),
+                                                 Utils::FileName::fromString(item.codeLocation().fileName()),
+                                                 item.codeLocation().line(),
                                                  ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
 }
 
@@ -394,8 +394,8 @@ void QbsProject::parse(const QVariantMap &config, const Utils::Environment &env,
 
     qbs::SetupProjectParameters params;
     params.setBuildConfiguration(config);
-    qbs::Error err = params.expandBuildConfiguration(m_manager->settings());
-    if (!err.entries().isEmpty()) {
+    qbs::ErrorInfo err = params.expandBuildConfiguration(m_manager->settings());
+    if (!err.hasError()) {
         generateErrors(err);
         return;
     }
diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h
index f6ca85e48983daded1b937698bca03110a7f4fb2..7c3806a2319e9c9106d2240858d127d5bfc3b0c5 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.h
+++ b/src/plugins/qbsprojectmanager/qbsproject.h
@@ -120,7 +120,7 @@ private:
 
     void parse(const QVariantMap &config, const Utils::Environment &env, const QString &dir);
 
-    void generateErrors(const qbs::Error &e);
+    void generateErrors(const qbs::ErrorInfo &e);
     void prepareForParsing();
     void updateDocuments(const qbs::ProjectData *prj);
     void updateCppCodeModel(const qbs::ProjectData *prj);
diff --git a/src/plugins/qbsprojectmanager/qbsstep.cpp b/src/plugins/qbsprojectmanager/qbsstep.cpp
index fb6e4b7b5d4cc757cfc7879951c375bd6ae787e3..b4aee3534e9c59b086cceab0932475d319bbcf6d 100644
--- a/src/plugins/qbsprojectmanager/qbsstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsstep.cpp
@@ -176,9 +176,9 @@ void QbsStep::jobDone(bool success)
 {
     // Report errors:
     if (m_job) {
-        foreach (const qbs::ErrorData &data, m_job->error().entries())
-            createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
-                                data.codeLocation().fileName(), data.codeLocation().line());
+        foreach (const qbs::ErrorItem &item, m_job->error().items())
+            createTaskAndOutput(ProjectExplorer::Task::Error, item.description(),
+                                item.codeLocation().fileName(), item.codeLocation().line());
         m_job->deleteLater();
         m_job = 0;
     }
diff --git a/src/shared/qbs b/src/shared/qbs
index c1b431e5389eda2f6952077e917f3118f98a6dbd..36c7dba4ae3688e354f6e6985b3da4429b9084fd 160000
--- a/src/shared/qbs
+++ b/src/shared/qbs
@@ -1 +1 @@
-Subproject commit c1b431e5389eda2f6952077e917f3118f98a6dbd
+Subproject commit 36c7dba4ae3688e354f6e6985b3da4429b9084fd