diff -Naur qt-everywhere-src-5.12.4-orig/qttools/src/windeployqt/main.cpp qt-everywhere-src-5.12.4/qttools/src/windeployqt/main.cpp
--- qt-everywhere-src-5.12.4-orig/qttools/src/windeployqt/main.cpp	2019-05-23 15:20:43.000000000 +0300
+++ qt-everywhere-src-5.12.4/qttools/src/windeployqt/main.cpp	2019-06-15 16:21:08.744251700 +0300
@@ -1091,7 +1091,7 @@
     QStringList result;
     switch (platform) {
     case WindowsDesktopMinGW: { // MinGW: Add runtime libraries
-        static const char *minGwRuntimes[] = {"*gcc_", "*stdc++", "*winpthread"};
+        static const char *minGwRuntimes[] = {"*gcc_s_", "*stdc++", "*winpthread"};
         const QString gcc = findInPath(QStringLiteral("g++.exe"));
         if (gcc.isEmpty()) {
             std::wcerr << "Warning: Cannot find GCC installation directory. g++.exe must be in the path.\n";
@@ -1253,7 +1253,7 @@
         *errorMessage = QDir::toNativeSeparators(options.binaries.first()) +  QStringLiteral(" does not seem to be a Qt executable.");
         return result;
     }
-
+#if 0
     // Some Windows-specific checks: Qt5Core depends on ICU when configured with "-icu". Other than
     // that, Qt5WebKit has a hard dependency on ICU.
     if (options.platform & WindowsBased)  {
@@ -1285,7 +1285,7 @@
             } // !icuLibs.isEmpty()
         } // Qt5Core/Qt5WebKit
     } // Windows
-
+#endif
     // Scan Quick2 imports
     QmlImportScanResult qmlScanResult;
     if (options.quickImports && usesQml2) {
@@ -1634,8 +1634,6 @@
     const QMap<QString, QString> qmakeVariables = queryQMakeAll(&errorMessage);
     const QString xSpec = qmakeVariables.value(QStringLiteral("QMAKE_XSPEC"));
     options.platform = platformFromMkSpec(xSpec);
-    if (options.platform == WindowsDesktopMinGW || options.platform == WindowsDesktopMsvc)
-        options.compilerRunTime = true;
 
     {   // Command line
         QCommandLineParser parser;
