diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index d67eb5ded..a7b562bd7 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -633,9 +633,9 @@ void GUI_App::recreate_GUI(const wxString& msg_name)
 {
     mainframe->shutdown();
 
-    wxProgressDialog dlg(msg_name, msg_name);
+    wxProgressDialog dlg(msg_name, msg_name, 100, nullptr, wxPD_AUTO_HIDE);
     dlg.Pulse();
-    dlg.Update(10, _(L("Recreating")) + dots);
+    dlg.Update(10, _L("Recreating") + dots);
 
     MainFrame *old_main_frame = mainframe;
     mainframe = new MainFrame();
@@ -645,17 +645,17 @@ void GUI_App::recreate_GUI(const wxString& msg_name)
     sidebar().obj_list()->init_objects();
     SetTopWindow(mainframe);
 
-    dlg.Update(30, _(L("Recreating")) + dots);
+    dlg.Update(30, _L("Recreating") + dots);
     old_main_frame->Destroy();
     // For this moment ConfigWizard is deleted, invalidate it.
     m_wizard = nullptr;
 
-    dlg.Update(80, _(L("Loading of current presets")) + dots);
+    dlg.Update(80, _L("Loading of current presets") + dots);
     m_printhost_job_queue.reset(new PrintHostJobQueue(mainframe->printhost_queue_dlg()));
     load_current_presets();
     mainframe->Show(true);
 
-    dlg.Update(90, _(L("Loading of a mode view")) + dots);
+    dlg.Update(90, _L("Loading of a mode view") + dots);
     /* Temporary workaround for the correct behavior of the Scrolled sidebar panel:
     * change min hight of object list to the normal min value (15 * wxGetApp().em_unit())
     * after first whole Mainframe updating/layouting
diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp
index 0f6d08124..10d9d800f 100644
--- a/src/slic3r/GUI/MainFrame.cpp
+++ b/src/slic3r/GUI/MainFrame.cpp
@@ -1303,10 +1303,10 @@ void MainFrame::quick_slice(const int qs)
     }
 
     // show processbar dialog
-    m_progress_dialog = new wxProgressDialog(_(L("Slicing")) + dots, 
-    // TRN "Processing input_file_basename"
-                                             from_u8((boost::format(_utf8(L("Processing %s"))) % (input_file_basename + dots)).str()),
-        100, this, 4);
+    m_progress_dialog = new wxProgressDialog(_L("Slicing") + dots,
+        // TRN "Processing input_file_basename"
+        from_u8((boost::format(_utf8(L("Processing %s"))) % (input_file_basename + dots)).str()),
+        100, nullptr, wxPD_AUTO_HIDE);
     m_progress_dialog->Pulse();
     {
 //         my @warnings = ();
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index ac6e7819b..f1156271c 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -2210,17 +2210,17 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
     }
 
     const auto loading = _L("Loading") + dots;
-    wxProgressDialog dlg(loading, loading);
+    wxProgressDialog dlg(loading, "", 100, q, wxPD_AUTO_HIDE);
     dlg.Pulse();
 
     auto *new_model = (!load_model || one_by_one) ? nullptr : new Slic3r::Model();
     std::vector<size_t> obj_idxs;
 
-    for (size_t i = 0; i < input_files.size(); i++) {
+    for (size_t i = 0; i < input_files.size(); ++i) {
         const auto &path = input_files[i];
         const auto filename = path.filename();
-        const auto dlg_info = format_wxstr(_L("Processing input file %s"), from_path(filename)) + "\n";
-        dlg.Update(100 * i / input_files.size(), dlg_info);
+        const auto dlg_info = _L("Loading file") + ": " + from_path(filename);
+        dlg.Update(static_cast<int>(100.0f * static_cast<float>(i) / static_cast<float>(input_files.size())), dlg_info);
 
         const bool type_3mf = std::regex_match(path.string(), pattern_3mf);
         const bool type_zip_amf = !type_3mf && std::regex_match(path.string(), pattern_zip_amf);
diff --git a/src/slic3r/Utils/FixModelByWin10.cpp b/src/slic3r/Utils/FixModelByWin10.cpp
index 0de526432..8de4991d8 100644
--- a/src/slic3r/Utils/FixModelByWin10.cpp
+++ b/src/slic3r/Utils/FixModelByWin10.cpp
@@ -337,8 +337,8 @@ void fix_model_by_win10_sdk_gui(ModelObject &model_object, int volume_idx)
 
 	// Open a progress dialog.
 	wxProgressDialog progress_dialog(
-		_(L("Model fixing")),
-		_(L("Exporting model...")),
+		_L("Model fixing"),
+		_L("Exporting model") + "...",
 		100, nullptr, wxPD_AUTO_HIDE | wxPD_APP_MODAL | wxPD_CAN_ABORT);
 	// Executing the calculation in a background thread, so that the COM context could be created with its own threading model.
 	// (It seems like wxWidgets initialize the COM contex as single threaded and we need a multi-threaded context).