 src/corelibs/U2Core/src/tasks/ExternalToolRunTask.cpp       |  2 +-
 src/corelibs/U2Core/src/util/CoreExternalToolsUtils.cpp     | 10 ++++++----
 src/corelibs/U2Core/src/util/CoreExternalToolsUtils.h       |  2 +-
 .../CreateCmdlineBasedWorkerWizard.cpp                      | 13 +++++++------
 4 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/corelibs/U2Core/src/tasks/ExternalToolRunTask.cpp b/src/corelibs/U2Core/src/tasks/ExternalToolRunTask.cpp
index 9da25b16e..a0c0c5091 100644
--- a/src/corelibs/U2Core/src/tasks/ExternalToolRunTask.cpp
+++ b/src/corelibs/U2Core/src/tasks/ExternalToolRunTask.cpp
@@ -383,7 +383,7 @@ bool ExternalToolSupportUtils::startExternalProcess(QProcess *process, const QSt
     if (!started) {
         QStringList extendedArgs(arguments);
         QString execFileName = CoreExternalToolsUtils::detectLauncherExeByExtension(program);
-        if (execFileName.isEmpty()) {
+        if (!execFileName.isEmpty()) {
             extendedArgs.prepend(execFileName);
             process->start(execFileName, extendedArgs);
             started = process->waitForStarted(START_WAIT_MSEC);
diff --git a/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.cpp b/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.cpp
index a8cdebe7d..d39ec6a8c 100644
--- a/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.cpp
+++ b/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.cpp
@@ -28,12 +28,14 @@ namespace U2 {
 
 const QMap<QString, QString> CoreExternalToolsUtils::extToExeFileMap = { {"py", "python"}, {"pl", "perl"} };
 
-const QString& CoreExternalToolsUtils::detectLauncherExeByExtension(const QString& toolPath) {
+QString CoreExternalToolsUtils::detectLauncherExeByExtension(const QString& toolPath) {
     QFileInfo path(toolPath);
-    if (extToExeFileMap[path.suffix()].isEmpty()) {
-        return "";
+    QString suffix = path.suffix();
+    if (extToExeFileMap[suffix].isEmpty()) {
+        return QString();
     }
-    return QStandardPaths::findExecutable(extToExeFileMap[path.suffix()]);
+    QString executableToFind = extToExeFileMap[suffix];
+    return QStandardPaths::findExecutable(executableToFind);
 }
 
 }
\ No newline at end of file
diff --git a/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.h b/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.h
index 72e902a80..27f88a728 100644
--- a/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.h
+++ b/src/corelibs/U2Core/src/util/CoreExternalToolsUtils.h
@@ -31,7 +31,7 @@ namespace U2 {
 
 class U2CORE_EXPORT CoreExternalToolsUtils {
 public:
-    static const QString& detectLauncherExeByExtension(const QString& toolPath);
+    static QString detectLauncherExeByExtension(const QString& toolPath);
 
 private:
     static const QMap<QString, QString> extToExeFileMap;
diff --git a/src/plugins/workflow_designer/src/library/create_cmdline_based_worker/CreateCmdlineBasedWorkerWizard.cpp b/src/plugins/workflow_designer/src/library/create_cmdline_based_worker/CreateCmdlineBasedWorkerWizard.cpp
index 39325569c..6ef937f18 100644
--- a/src/plugins/workflow_designer/src/library/create_cmdline_based_worker/CreateCmdlineBasedWorkerWizard.cpp
+++ b/src/plugins/workflow_designer/src/library/create_cmdline_based_worker/CreateCmdlineBasedWorkerWizard.cpp
@@ -213,12 +213,13 @@ void CreateCmdlineBasedWorkerWizard::accept() {
     if (isRequiredToRemoveElementFromScene(initialConfig, actualConfig.data())) {
         int res = QMessageBox::question(this,
                                         tr("Warning"),
-                                        tr("You have changed the structure of the element (name, slots, parameters' names and types). "
-                                           "All elements on the scene would be removed. Do you really want to change it?\n"
-                                           "You could also reset the dialog to the initial state."),
-                                        QMessageBox::Yes | QMessageBox::No | QMessageBox::Reset,
-                                        QMessageBox::No);
-        if (QMessageBox::No == res) {
+                                        tr("You've changed the element structure (input data, parameters, or output data).\n\n"
+                                           "If you apply the changes, all elements of this type will be removed from the scene."
+                                           "You can then add a new such element to the scene by dragging it from the \"Custom Elements with External Tools\" group of the \"Elements\" palette.\n\n"
+                                           "Would you like to apply the changes ? "),
+                                        QMessageBox::Apply | QMessageBox::Cancel | QMessageBox::Reset,
+                                        QMessageBox::Cancel);
+        if (QMessageBox::Cancel == res) {
             return;
         } else if (QMessageBox::Reset == res) {
             restart();
