diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp
index 1aef4afdfeff1d2d165ca2de6ba9c0318be3b6c2..22c0a79a8f39cef6eceaa06b150c3652824093ec 100644
--- a/src/plugins/coreplugin/filemanager.cpp
+++ b/src/plugins/coreplugin/filemanager.cpp
@@ -527,11 +527,12 @@ void FileManager::updateExpectedState(const QString &fileName)
 /*!
     \fn QList<IFile*> FileManager::saveModifiedFilesSilently(const QList<IFile*> &files)
 
-    Tries to save the files listed in \a files . Returns the files that could not be saved.
+    Tries to save the files listed in \a files. The \a cancelled argument is set to true
+    if the user cancelled the dialog. Returns the files that could not be saved.
 */
-QList<IFile *> FileManager::saveModifiedFilesSilently(const QList<IFile *> &files)
+QList<IFile *> FileManager::saveModifiedFilesSilently(const QList<IFile *> &files, bool *cancelled)
 {
-    return saveModifiedFiles(files, 0, true, QString());
+    return saveModifiedFiles(files, cancelled, true, QString());
 }
 
 /*!
diff --git a/src/plugins/coreplugin/filemanager.h b/src/plugins/coreplugin/filemanager.h
index 4c789a923f26b789efdeeb9c6f7dd012d48ee5e5..0e0686d71b5beaf9ec5bdb27bd664fcf608da916 100644
--- a/src/plugins/coreplugin/filemanager.h
+++ b/src/plugins/coreplugin/filemanager.h
@@ -108,7 +108,7 @@ public:
     QString getSaveAsFileName(IFile *file, const QString &filter = QString(),
                               QString *selectedFilter = 0);
 
-    QList<IFile *> saveModifiedFilesSilently(const QList<IFile *> &files);
+    QList<IFile *> saveModifiedFilesSilently(const QList<IFile *> &files, bool *cancelled = 0);
     QList<IFile *> saveModifiedFiles(const QList<IFile *> &files,
                                      bool *cancelled = 0,
                                      const QString &message = QString(),
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index c9d73be66fa2118f1a6e13574d9cc60addf16a91..478754fc17341e85e88f09f4c480037598ba927e 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -1715,7 +1715,10 @@ bool ProjectExplorerPlugin::saveModifiedFiles()
     QList<Core::IFile *> filesToSave = Core::ICore::instance()->fileManager()->modifiedFiles();
     if (!filesToSave.isEmpty()) {
         if (d->m_projectExplorerSettings.saveBeforeBuild) {
-            Core::ICore::instance()->fileManager()->saveModifiedFilesSilently(filesToSave);
+            bool cancelled = false;
+            Core::ICore::instance()->fileManager()->saveModifiedFilesSilently(filesToSave, &cancelled);
+            if (cancelled)
+                return false;
         } else {
             bool cancelled = false;
             bool alwaysSave = false;