diff --git a/src/plugins/qtsupport/qscxmlcgenerator.cpp b/src/plugins/qtsupport/qscxmlcgenerator.cpp
index 7d2d58a6f043a78223dd61a7b51cc82373474040..69bc88957ff853b025f6a232bc697b4fc8d61ba8 100644
--- a/src/plugins/qtsupport/qscxmlcgenerator.cpp
+++ b/src/plugins/qtsupport/qscxmlcgenerator.cpp
@@ -37,6 +37,7 @@
 namespace QtSupport {
 
 static QLoggingCategory log("qtc.qsxmlcgenerator");
+static const char TaskCategory[] = "Task.Category.ExtraCompiler.QScxmlc";
 
 QScxmlcGenerator::QScxmlcGenerator(const ProjectExplorer::Project *project,
                                    const Utils::FileName &source,
@@ -47,8 +48,29 @@ QScxmlcGenerator::QScxmlcGenerator(const ProjectExplorer::Project *project,
             this, &QScxmlcGenerator::finishProcess);
 }
 
+void QScxmlcGenerator::parseIssues(const QByteArray &stderr)
+{
+    QList<ProjectExplorer::Task> issues;
+    foreach (const QByteArray &line, stderr.split('\n')) {
+        QByteArrayList tokens = line.split(':');
+
+        if (tokens.length() > 4) {
+            Utils::FileName file = Utils::FileName::fromUtf8(tokens[0]);
+            int line = tokens[1].toInt();
+            // int column = tokens[2].toInt(); <- nice, but not needed for now.
+            ProjectExplorer::Task::TaskType type = tokens[3].trimmed() == "error" ?
+                        ProjectExplorer::Task::Error : ProjectExplorer::Task::Warning;
+            QString message = QString::fromUtf8(tokens.mid(4).join(':').trimmed());
+            issues.append(ProjectExplorer::Task(type, message, file, line, TaskCategory));
+        }
+    }
+    setCompileIssues(issues);
+}
+
 void QScxmlcGenerator::finishProcess()
 {
+    parseIssues(m_process.readAllStandardError());
+
     setCompileTime(QDateTime::currentDateTime());
     foreach (const Utils::FileName &target, targets()) {
         QFile generated(m_tmpdir.path() + QLatin1Char('/') + target.fileName());
diff --git a/src/plugins/qtsupport/qscxmlcgenerator.h b/src/plugins/qtsupport/qscxmlcgenerator.h
index 88a7c63b26529b0e6b33f83299d0e6cac180d6e4..f5a4c9227749243d06b46003fd758472e99d95ef 100644
--- a/src/plugins/qtsupport/qscxmlcgenerator.h
+++ b/src/plugins/qtsupport/qscxmlcgenerator.h
@@ -46,6 +46,7 @@ private:
 
     QProcess m_process;
     QTemporaryDir m_tmpdir;
+    void parseIssues(const QByteArray &stderr);
 };
 
 class QScxmlcGeneratorFactory : public ProjectExplorer::ExtraCompilerFactory