diff --git a/doc/images/qtcreator-build-steps-custom.png b/doc/images/qtcreator-build-steps-custom.png
index 9f46ee7af7ee62db7aa2127f2cc4b1b324414b13..edea702bcacb71a394b6613bcdf8f7ae0d3e1c98 100644
Binary files a/doc/images/qtcreator-build-steps-custom.png and b/doc/images/qtcreator-build-steps-custom.png differ
diff --git a/doc/images/qtcreator-build-steps.png b/doc/images/qtcreator-build-steps.png
index 5f03246e767b81ff22f2187ab7c40f51559047fe..a1f717e50bc963fc3fdc403941ffb438dea9998e 100644
Binary files a/doc/images/qtcreator-build-steps.png and b/doc/images/qtcreator-build-steps.png differ
diff --git a/doc/images/qtcreator-clean-steps.png b/doc/images/qtcreator-clean-steps.png
index 6946143f5c38c53def74320df34bb763b5bd737b..6d2ad4f0cc86edc5d283f1bfa8ec766fda589802 100644
Binary files a/doc/images/qtcreator-clean-steps.png and b/doc/images/qtcreator-clean-steps.png differ
diff --git a/doc/images/qtcreator-disable-steps.png b/doc/images/qtcreator-disable-steps.png
index 5fd83de9f9c51ff9d0ba85aafceffe50de89d387..2829e67039924456d15e60582d458d05085b33c4 100644
Binary files a/doc/images/qtcreator-disable-steps.png and b/doc/images/qtcreator-disable-steps.png differ
diff --git a/doc/images/qtcreator-project-targets.png b/doc/images/qtcreator-project-targets.png
index c95e52092d521f8c613a64b8cd00beec84940066..fc2ec4594c347380494d1827f556962435c8ada9 100644
Binary files a/doc/images/qtcreator-project-targets.png and b/doc/images/qtcreator-project-targets.png differ
diff --git a/doc/src/projects/creator-projects-settings-code-style.qdoc b/doc/src/projects/creator-projects-settings-code-style.qdoc
index 68113b16fdeeb67c96bd4bde054f81f3609d4f20..486a9fab7ba7fbe1b87e2b6d94bc3db03eae7c1c 100644
--- a/doc/src/projects/creator-projects-settings-code-style.qdoc
+++ b/doc/src/projects/creator-projects-settings-code-style.qdoc
@@ -54,7 +54,7 @@
 
         \o  Select \gui {Projects > Code Style Settings}.
 
-        \o  In the \gui Language field, select \gui C++ or \gui Qt Quick.
+        \o  In the \gui Language field, select \gui C++ or \gui {Qt Quick}.
 
         \o  In the \gui {Current settings} field, select the settings to modify
             and click \gui Copy.
diff --git a/doc/src/projects/creator-projects-settings-overview.qdoc b/doc/src/projects/creator-projects-settings-overview.qdoc
index c6671e60b3e3b84bb3d56b17752d80fef78504d7..2a4f293d79eaa8c6b890f0cbd17a2ab7045e089e 100644
--- a/doc/src/projects/creator-projects-settings-overview.qdoc
+++ b/doc/src/projects/creator-projects-settings-overview.qdoc
@@ -42,14 +42,12 @@
 
     \image qtcreator-project-targets.png
 
-    You can add a target if the development environment for the target platform
-    is installed on the development PC and the target is configured in
-    \gui Tools > \gui Options > \gui {Build & Run} > \gui Targets.
-
-    Click
-    \inlineimage qtcreator-qt4-addbutton.png "Add Target button"
-    and select from a list of available targets. To remove a target, select it
-    and click
+    To add build and run targets for the project, select \gui Add. The list
+    displays targets that are configured in \gui Tools > \gui Options >
+    \gui {Build & Run} > \gui Targets. To add targets to the list, select
+    \gui Manage.
+
+    To remove a target, hover the cursor over it (1) and click
     \inlineimage qtcreator-target-remove.png "Remove Target button"
     .
 
@@ -70,10 +68,7 @@
 
             \endlist
 
-                \note If you have installed the development environment for only
-                    one target, the \gui Targets tab is replaced by a \gui Build
-                    tab and a \gui Run tab.
-                    If you have not configured the project for building, the
+                \note If you have not configured the project for building, the
                     \gui Targets tab is replaced by the \l{Opening Projects}
                     {Configure Projects} tab.
 
diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc
index b4cee0e0b956cabd91f30262312a2d0d743cd38d..7074ebe0c397b53c2b5f0db189ab69db33ac82df 100644
--- a/doc/src/qtquick/qtquick-components.qdoc
+++ b/doc/src/qtquick/qtquick-components.qdoc
@@ -84,10 +84,6 @@
     Even if you use the Qt Quick Components, you can still write cross-platform
     applications, by using different sets of QML files for each platform.
 
-    You can dowload a set of commonly used UI-components for generic use in
-    Qt Quick projects from \l{https://projects.forum.nokia.com/QMLTemplates}
-    {QML Templates}. You can open and edit the templates in \QD.
-
     \section1 Creating Components in Qt Quick Designer
 
     \list 1
diff --git a/src/libs/3rdparty/botan/botan.pro b/src/libs/3rdparty/botan/botan.pro
index 7ae5df14d53f2b909138b7d1a5dbc8806979be3f..5618387dbad9bada1228d25d3bdb785cbc6419dc 100644
--- a/src/libs/3rdparty/botan/botan.pro
+++ b/src/libs/3rdparty/botan/botan.pro
@@ -3,11 +3,11 @@ TARGET = Botan
 
 PRECOMPILED_HEADER = ../precompiled_headers/botan_pch.h
 
-include(../../../qtcreatorlibrary.pri)
 
 CONFIG += exceptions
 CONFIG += release
-CONFIG -= debug
+CONFIG -= debug debug_and_release
+include(../../../qtcreatorlibrary.pri)
 
 DEPENDPATH += .
 INCLUDEPATH += .
diff --git a/src/libs/3rdparty/cplusplus/Lexer.cpp b/src/libs/3rdparty/cplusplus/Lexer.cpp
index 3b52059a36a1882b6724c27115f7cd9634239443..5214a345f706e5a1a57ee30496346d38ddf6834a 100644
--- a/src/libs/3rdparty/cplusplus/Lexer.cpp
+++ b/src/libs/3rdparty/cplusplus/Lexer.cpp
@@ -579,25 +579,19 @@ void Lexer::scan_helper(Token *tok)
             } else if (_yychar == '\'') {
                 yyinp();
                 scanCharLiteral(tok, ch);
-            } else {
-                if (_yychar == '8') {
-                    unsigned char la = 0;
-                    if (_currentChar + 1 != _lastChar)
-                        la = *(_currentChar + 1);
-                    if (la == '"') {
-                        yyinp();
-                        yyinp();
-                        scanStringLiteral(tok, '8');
-                    } else if (la == '\'') {
-                        yyinp();
-                        yyinp();
-                        scanCharLiteral(tok, '8');
-                    } else {
-                        scanIdentifier(tok);
-                    }
+            } else if (ch == 'u' && _yychar == '8') {
+                yyinp();
+                if (_yychar == '"') {
+                    yyinp();
+                    scanStringLiteral(tok, '8');
+                } else if (_yychar == '\'') {
+                    yyinp();
+                    scanCharLiteral(tok, '8');
                 } else {
-                    scanIdentifier(tok);
+                    scanIdentifier(tok, 1);
                 }
+            } else {
+                scanIdentifier(tok);
             }
         } else if (std::isalpha(ch) || ch == '_' || ch == '$') {
             scanIdentifier(tok);
@@ -693,9 +687,9 @@ void Lexer::scanNumericLiteral(Token *tok)
         tok->number = control()->numericLiteral(yytext, yylen);
 }
 
-void Lexer::scanIdentifier(Token *tok)
+void Lexer::scanIdentifier(Token *tok, unsigned extraProcessedChars)
 {
-    const char *yytext = _currentChar - 1;
+    const char *yytext = _currentChar - 1 - extraProcessedChars;
     while (std::isalnum(_yychar) || _yychar == '_' || _yychar == '$')
         yyinp();
     int yylen = _currentChar - yytext;
diff --git a/src/libs/3rdparty/cplusplus/Lexer.h b/src/libs/3rdparty/cplusplus/Lexer.h
index 8e4eab9797b668d42c5c6309c1c7ecbc71e791fd..c61b53c31f070d3a7eb246af1de1382d673af7df 100644
--- a/src/libs/3rdparty/cplusplus/Lexer.h
+++ b/src/libs/3rdparty/cplusplus/Lexer.h
@@ -94,7 +94,7 @@ private:
     void scanCharLiteral(Token *tok, unsigned char hint = 0);
     void scanUntilQuote(Token *tok, unsigned char quote);
     void scanNumericLiteral(Token *tok);
-    void scanIdentifier(Token *tok);
+    void scanIdentifier(Token *tok, unsigned extraProcessedChars = 0);
 
     inline void yyinp()
     {
diff --git a/src/libs/utils/savefile.cpp b/src/libs/utils/savefile.cpp
index ebd310d679465b0bbb4aa4c02a7a2aef732fb336..4406fb8c92b44ce2b1ca2cf001ab6bbc5b01127a 100644
--- a/src/libs/utils/savefile.cpp
+++ b/src/libs/utils/savefile.cpp
@@ -88,7 +88,7 @@ bool SaveFile::commit()
         return false;
     }
 #ifdef Q_OS_WIN
-    FlushFileBuffers(handle());
+    FlushFileBuffers(reinterpret_cast<HANDLE>(handle()));
 #else
     fdatasync(handle());
 #endif
diff --git a/src/libs/utils/tcpportsgatherer.cpp b/src/libs/utils/tcpportsgatherer.cpp
index ebde4d6226b1eadcbb4cddf088c8954ae433ba6f..6ed167890147dbcddd06044a5e576a915af0e87f 100644
--- a/src/libs/utils/tcpportsgatherer.cpp
+++ b/src/libs/utils/tcpportsgatherer.cpp
@@ -46,7 +46,7 @@
 #if defined(Q_OS_WIN) && defined(Q_CC_MINGW)
 
 // Missing declarations for MinGW. This requires MinGW with gcc 4.6.
-#if __GNUC__ == 4 && __GNUC_MINOR__ < 7
+#if __GNUC__ == 4 && __GNUC_MINOR__ < 7 && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 2)
 typedef enum { } MIB_TCP_STATE;
 #endif
 
diff --git a/src/plugins/debugger/debuggerprofileinformation.cpp b/src/plugins/debugger/debuggerprofileinformation.cpp
index 41f0d8aff70df569a1e008e24b368d9ecfc938eb..bda8c41c5e0897d64f24c7404b4346892f1abd48 100644
--- a/src/plugins/debugger/debuggerprofileinformation.cpp
+++ b/src/plugins/debugger/debuggerprofileinformation.cpp
@@ -167,21 +167,36 @@ QVariant DebuggerProfileInformation::defaultValue(Profile *p) const
 
 QList<Task> DebuggerProfileInformation::validate(Profile *p) const
 {
+    const Core::Id id(Constants::TASK_CATEGORY_BUILDSYSTEM);
     QList<Task> result;
     FileName dbg = debuggerCommand(p);
     if (dbg.isEmpty()) {
-        result << Task(Task::Warning, tr("No debugger set up."), FileName(), -1,
-                                        Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM));
+        result << Task(Task::Warning, tr("No debugger set up."), FileName(), -1, id);
         return result;
     }
 
     QFileInfo fi = dbg.toFileInfo();
     if (!fi.exists() || fi.isDir())
-        result << Task(Task::Error, tr("Debugger not found."), FileName(), -1,
-                                        Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM));
+        result << Task(Task::Error, tr("Debugger not found."), FileName(), -1, id);
     else if (!fi.isExecutable())
-        result << Task(Task::Error, tr("Debugger not exectutable."), FileName(), -1,
-                                        Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM));
+        result << Task(Task::Error, tr("Debugger not exectutable."), FileName(), -1, id);
+
+    if (ToolChain *tc = ToolChainProfileInformation::toolChain(p)) {
+        // We need an absolute path to be able to locate Python on Windows.
+        const Abi abi = tc->targetAbi();
+        if (abi.os() == Abi::WindowsOS && !fi.isAbsolute()) {
+            result << Task(Task::Error, tr("The debugger location must be given as an "
+                   "absolute path (%1).").arg(dbg.toString()), FileName(), -1, id);
+        }
+        // FIXME: Make sure debugger matches toolchain.
+        // if (isCdb()) {
+        //    if (abi.binaryFormat() != Abi::PEFormat || abi.os() != Abi::WindowsOS) {
+        //        result << Task(Tas->errorDetails.push_back(CdbEngine::tr("The CDB debug engine does not support the %1 ABI.").
+        //                                      arg(abi.toString()));
+        //        return false;
+        //    }
+        // }
+    }
 
     return result;
 }
diff --git a/src/plugins/resourceeditor/qrceditor/resourcefile.cpp b/src/plugins/resourceeditor/qrceditor/resourcefile.cpp
index 33fc8accb4c93616b7ca1ac4e8f11c2596c56380..68efd3e8e14c2649c4acd7df06813971c65f0c45 100644
--- a/src/plugins/resourceeditor/qrceditor/resourcefile.cpp
+++ b/src/plugins/resourceeditor/qrceditor/resourcefile.cpp
@@ -49,16 +49,6 @@
 
 #include <QDomDocument>
 
-
-/*
-TRANSLATOR ResourceEditor::ResourceModel
-*/
-
-static QString msgFileNameEmpty()
-{
-    return QCoreApplication::translate("Designer", "The file name is empty.");
-}
-
 using namespace ResourceEditor;
 using namespace ResourceEditor::Internal;
 
@@ -126,7 +116,7 @@ bool ResourceFile::load()
     m_error_message.clear();
 
     if (m_file_name.isEmpty()) {
-        m_error_message = msgFileNameEmpty();
+        m_error_message = tr("The file name is empty.");
         return false;
     }
 
@@ -143,14 +133,14 @@ bool ResourceFile::load()
     QString error_msg;
     int error_line, error_col;
     if (!doc.setContent(&file, &error_msg, &error_line, &error_col)) {
-        m_error_message = QCoreApplication::translate("Designer", "XML error on line %1, col %2: %3")
+        m_error_message = tr("XML error on line %1, col %2: %3")
                     .arg(error_line).arg(error_col).arg(error_msg);
         return false;
     }
 
     QDomElement root = doc.firstChildElement(QLatin1String("RCC"));
     if (root.isNull()) {
-        m_error_message = QCoreApplication::translate("Designer", "The <RCC> root element is missing.");
+        m_error_message = tr("The <RCC> root element is missing.");
         return false;
     }
 
@@ -189,7 +179,7 @@ bool ResourceFile::save()
     m_error_message.clear();
 
     if (m_file_name.isEmpty()) {
-        m_error_message = msgFileNameEmpty();
+        m_error_message = tr("The file name is empty.");
         return false;
     }
 
@@ -238,7 +228,7 @@ bool ResourceFile::save()
 #if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)
     stream.flush();
     if (stream.status() != QTextStream::Ok) {
-        m_error_message = QCoreApplication::translate("Designer", "Cannot write file. Disk full?");
+        m_error_message = tr("Cannot write file. Disk full?");
         return false;
     }
 #endif
diff --git a/src/plugins/resourceeditor/qrceditor/resourcefile_p.h b/src/plugins/resourceeditor/qrceditor/resourcefile_p.h
index ffcc09025dbe90c2eec7e2bb2e353ec81e085648..412a368f7dd29f6021bf3845fd033adeb14f3bc7 100644
--- a/src/plugins/resourceeditor/qrceditor/resourcefile_p.h
+++ b/src/plugins/resourceeditor/qrceditor/resourcefile_p.h
@@ -32,6 +32,7 @@
 #define RESOURCEFILE_P_H
 
 #include <QAbstractItemModel>
+#include <QCoreApplication>
 #include <QMap>
 #include <QString>
 #include <QStringList>
@@ -123,6 +124,7 @@ typedef QList<Prefix *> PrefixList;
 */
 class ResourceFile
 {
+    Q_DECLARE_TR_FUNCTIONS(ResourceFile)
 public:
     ResourceFile(const QString &file_name = QString());
     ~ResourceFile();