diff --git a/src/plugins/macros/macro.cpp b/src/plugins/macros/macro.cpp
index f09179a9805681b227c6f0ed43de89b031bfd06f..a552d1e218de4f4bcbbbaeb63b3288044f73adc7 100644
--- a/src/plugins/macros/macro.cpp
+++ b/src/plugins/macros/macro.cpp
@@ -61,7 +61,7 @@ public:
 };
 
 Macro::MacroPrivate::MacroPrivate() :
-    version(Core::Constants::IDE_VERSION_LONG)
+    version(QLatin1String(Core::Constants::IDE_VERSION_LONG))
 {
 }
 
diff --git a/src/plugins/macros/macromanager.cpp b/src/plugins/macros/macromanager.cpp
index 08fc7f7f2faa4709ee6b7f792957969ff3e791d5..32caf7a2bd2108935d749475324c4255f1db7d5c 100644
--- a/src/plugins/macros/macromanager.cpp
+++ b/src/plugins/macros/macromanager.cpp
@@ -142,11 +142,11 @@ void MacroManager::MacroManagerPrivate::initialize()
     macros.clear();
     QDir dir(q->macrosDirectory());
     QStringList filter;
-    filter << QString("*.")+Constants::M_EXTENSION;
+    filter << QLatin1String("*.") + QLatin1String(Constants::M_EXTENSION);
     QStringList files = dir.entryList(filter, QDir::Files);
 
     foreach (const QString &name, files) {
-        QString fileName = dir.absolutePath() + '/' + name;
+        QString fileName = dir.absolutePath() + QLatin1Char('/') + name;
         Macro *macro = new Macro;
         if (macro->loadHeader(fileName))
             addMacro(macro);
@@ -175,7 +175,7 @@ void MacroManager::MacroManagerPrivate::removeMacro(const QString &name)
     if (!macros.contains(name))
         return;
     // Remove shortcut
-    Core::ActionManager::unregisterShortcut(Core::Id(Constants::PREFIX_MACRO+name));
+    Core::ActionManager::unregisterShortcut(Core::Id(QLatin1String(Constants::PREFIX_MACRO) + name));
 
     // Remove macro from the map
     Macro *macro = macros.take(name);
@@ -190,7 +190,8 @@ void MacroManager::MacroManagerPrivate::changeMacroDescription(Macro *macro, con
     macro->save(macro->fileName(), Core::ICore::mainWindow());
 
     // Change shortcut what's this
-    Core::Command *command = Core::ActionManager::command(Core::Id(Constants::PREFIX_MACRO+macro->displayName()));
+    Core::Command *command = Core::ActionManager::command(
+                Core::Id(QLatin1String(Constants::PREFIX_MACRO)+macro->displayName()));
     if (command && command->shortcut())
         command->shortcut()->setWhatsThis(description);
 }
@@ -233,8 +234,8 @@ void MacroManager::MacroManagerPrivate::showSaveDialog()
             return;
 
         // Save in the resource path
-        QString fileName = q->macrosDirectory() + '/' + dialog.name()
-                           + '.' + Constants::M_EXTENSION;
+        QString fileName = q->macrosDirectory() + QLatin1Char('/') + dialog.name()
+                           + QLatin1Char('.') + QLatin1String(Constants::M_EXTENSION);
         currentMacro->setDescription(dialog.description());
         currentMacro->save(fileName, mainWindow);
         addMacro(currentMacro);
diff --git a/src/plugins/macros/macrooptionswidget.cpp b/src/plugins/macros/macrooptionswidget.cpp
index bf7105230d9637a380c8ddb2bab8591a634008b3..267d6e1cd08fc809266bde2864434d1ed82ea0ae 100644
--- a/src/plugins/macros/macrooptionswidget.cpp
+++ b/src/plugins/macros/macrooptionswidget.cpp
@@ -111,7 +111,8 @@ void MacroOptionsWidget::createTable()
             macroItem->setData(0, WRITE_ROLE, it.value()->isWritable());
 
             Core::Command *command =
-                    Core::ActionManager::command(Core::Id(Constants::PREFIX_MACRO+it.value()->displayName()));
+                    Core::ActionManager::command(Core::Id(QLatin1String(Constants::PREFIX_MACRO)
+                                                          + it.value()->displayName()));
             if (command && command->shortcut())
                 macroItem->setText(2, command->shortcut()->key().toString());
         }
diff --git a/src/plugins/macros/macros.pro b/src/plugins/macros/macros.pro
index 15db6eece70dd8e2b74451e17c89258f6d995020..9401495f04b2e76f4650835f9073a84b9c9bf8ee 100644
--- a/src/plugins/macros/macros.pro
+++ b/src/plugins/macros/macros.pro
@@ -1,7 +1,7 @@
 TEMPLATE = lib
 TARGET = Macros
 
-DEFINES += MACROS_LIBRARY
+DEFINES += MACROS_LIBRARY QT_NO_CAST_FROM_ASCII
 
 include(../../qtcreatorplugin.pri)
 include(macros_dependencies.pri)
diff --git a/src/plugins/macros/macros.qbs b/src/plugins/macros/macros.qbs
index c30877a7ccad1ca9a917acd2e32336a37ab3a657..1964853e7e242790bfec91d545f6dfa8a5189483 100644
--- a/src/plugins/macros/macros.qbs
+++ b/src/plugins/macros/macros.qbs
@@ -5,12 +5,14 @@ import "../QtcPlugin.qbs" as QtcPlugin
 QtcPlugin {
     name: "Macros"
 
+    Depends { name: "cpp" }
     Depends { name: "Qt.widgets" }
     Depends { name: "Core" }
     Depends { name: "Locator" }
     Depends { name: "Find" }
     Depends { name: "TextEditor" }
     Depends { name: "app_version_header" }
+    cpp.defines: base.concat(["QT_NO_CAST_FROM_ASCII"])
 
     files: [
         "actionmacrohandler.cpp",
diff --git a/src/plugins/macros/savedialog.cpp b/src/plugins/macros/savedialog.cpp
index 7d5610483030c6269f5d65808d413e6e566d1faa..ff13901c9c717d91476529d3476f60462b3ba564 100644
--- a/src/plugins/macros/savedialog.cpp
+++ b/src/plugins/macros/savedialog.cpp
@@ -41,7 +41,7 @@ SaveDialog::SaveDialog(QWidget *parent) :
     ui(new Ui::SaveDialog)
 {
     ui->setupUi(this);
-    ui->name->setValidator(new QRegExpValidator(QRegExp("\\w*"), this));
+    ui->name->setValidator(new QRegExpValidator(QRegExp(QLatin1String("\\w*")), this));
 }
 
 SaveDialog::~SaveDialog()