diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp
index 09d0ec085..5850ea4e7 100644
--- a/src/slic3r/GUI/ConfigWizard.cpp
+++ b/src/slic3r/GUI/ConfigWizard.cpp
@@ -1062,7 +1062,7 @@ void ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese
 // Public
 
 ConfigWizard::ConfigWizard(wxWindow *parent, RunReason reason)
-    : DPIDialog(parent, wxID_ANY, _(name().ToStdString()), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
+    : DPIDialog(parent, wxID_ANY, wxString(SLIC3R_APP_NAME) + " - " + _(name().ToStdString()), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
     , p(new priv(this))
 {
     this->SetFont(wxGetApp().normal_font());
diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index 36581369c..5efdde4d7 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -3612,7 +3612,8 @@ void GLCanvas3D::_resize(unsigned int w, unsigned int h)
         }
 
         // FIXME: calculate a tighter value for depth will improve z-fighting
-        float depth = 5.0f * (float)bbox.max_size();
+        // Set at least some minimum depth in case the bounding box is empty to avoid an OpenGL driver error.
+        float depth = std::max(1.f, 5.0f * (float)bbox.max_size());
         m_camera.apply_ortho_projection(-w2, w2, -h2, h2, -depth, depth);
 
         break;
diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp
index e54802770..9a641c7c0 100644
--- a/src/slic3r/GUI/GUI.cpp
+++ b/src/slic3r/GUI/GUI.cpp
@@ -104,7 +104,6 @@ const std::string& shortkey_alt_prefix()
 bool config_wizard_startup(bool app_config_exists)
 {
     if (!app_config_exists || wxGetApp().preset_bundle->printers.size() <= 1) {
-    	wxGetApp().switch_language();
 		config_wizard(ConfigWizard::RR_DATA_EMPTY);
 		return true;
 	} else if (get_app_config()->legacy_datadir()) {
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index 9390c8c5d..c08856ffc 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -579,33 +579,47 @@ bool GUI_App::select_language()
     return false;
 }
 
-// load language saved at application config
+// Load gettext translation files and activate them at the start of the application,
+// based on the "translation_language" key stored in the application config.
 bool GUI_App::load_language()
 {
     wxString language = wxEmptyString;
     if (app_config->has("translation_language"))
         language = app_config->get("translation_language");
 
-    if (language.IsEmpty())
-        return false;
-
-    const auto langs = get_installed_languages();
-    for (const wxLanguageInfo *info : langs)
-    {
-        if (info->CanonicalName == language)
-        {
-            m_wxLocale = new wxLocale;
-            m_wxLocale->Init(info->Language);
-			m_wxLocale->AddCatalogLookupPathPrefix(from_u8(localization_dir()));
-            m_wxLocale->AddCatalog("Slic3rPE");
-			//FIXME This is a temporary workaround, the correct solution is to switch to "C" locale during file import / export only.
-            wxSetlocale(LC_NUMERIC, "C");
-			Preset::update_suffix_modified();
-			m_imgui->set_language(into_u8(info->CanonicalName));
-            return true;
+    if (language.IsEmpty()) {
+        int lang = wxLocale::GetSystemLanguage();
+        if (lang != wxLANGUAGE_UNKNOWN) {
+			const wxLanguageInfo *info = wxLocale::GetLanguageInfo(lang);
+            if (info != nullptr)
+                language = info->CanonicalName;
         }
     }
-    return false;
+
+    const wxLanguageInfo *info = nullptr;
+    if (! language.IsEmpty()) {
+        const auto langs = get_installed_languages();
+        for (const wxLanguageInfo *this_info : langs)
+            if (this_info->CanonicalName == language) {
+                info = this_info;
+                break;
+            }
+    }
+
+    m_wxLocale = new wxLocale;
+    if (info == nullptr) {
+        m_wxLocale->Init(wxLANGUAGE_DEFAULT);
+        m_imgui->set_language("en");
+    } else {
+        m_wxLocale->Init(info->Language);
+        m_wxLocale->AddCatalogLookupPathPrefix(from_u8(localization_dir()));
+        m_wxLocale->AddCatalog("Slic3rPE");
+        m_imgui->set_language(into_u8(info->CanonicalName));
+    }
+	//FIXME This is a temporary workaround, the correct solution is to switch to "C" locale during file import / export only.
+    wxSetlocale(LC_NUMERIC, "C");
+    Preset::update_suffix_modified();
+    return true;
 }
 
 // save language at application config
diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp
index 1f3ba9071..0ac5e1d42 100644
--- a/src/slic3r/GUI/GUI_App.hpp
+++ b/src/slic3r/GUI/GUI_App.hpp
@@ -19,7 +19,7 @@ class wxMenuItem;
 class wxMenuBar;
 class wxTopLevelWindow;
 class wxNotebook;
-class wxLanguageInfo;
+struct wxLanguageInfo;
 
 namespace Slic3r {
 class AppConfig;
@@ -126,10 +126,9 @@ public:
     void            update_ui_from_settings();
 
     bool            switch_language();
-    bool            select_language();
+    // Load gettext translation files and activate them at the start of the application,
+    // based on the "translation_language" key stored in the application config.
     bool            load_language();
-    void            save_language();
-    std::vector<const wxLanguageInfo*> get_installed_languages();
 
     Tab*            get_tab(Preset::Type type);
     ConfigOptionMode get_mode();
@@ -177,8 +176,11 @@ private:
     void            window_pos_save(wxTopLevelWindow* window, const std::string &name);
     void            window_pos_restore(wxTopLevelWindow* window, const std::string &name, bool default_maximized = false);
     void            window_pos_sanitize(wxTopLevelWindow* window);
+    bool            select_language();
+    void            save_language();
+    std::vector<const wxLanguageInfo*> get_installed_languages();
 #ifdef __WXMSW__
-    void associate_3mf_files();
+    void            associate_3mf_files();
 #endif // __WXMSW__
 };
 DECLARE_APP(GUI_App)
diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp
index 3439449b9..38ffada87 100644
--- a/src/slic3r/GUI/MainFrame.cpp
+++ b/src/slic3r/GUI/MainFrame.cpp
@@ -554,10 +554,10 @@ void MainFrame::init_menubar()
 //#        $versioncheck->Enable(wxTheApp->have_version_check);
         append_menu_item(helpMenu, wxID_ANY, wxString::Format(_(L("%s &Website")), SLIC3R_APP_NAME), 
                                              wxString::Format(_(L("Open the %s website in your browser")), SLIC3R_APP_NAME),
-            [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://slic3r.org/"); });
-        append_menu_item(helpMenu, wxID_ANY, wxString::Format(_(L("%s &Manual")), SLIC3R_APP_NAME),
-                                             wxString::Format(_(L("Open the %s manual in your browser")), SLIC3R_APP_NAME),
-            [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://manual.slic3r.org/"); });
+            [this](wxCommandEvent&) { wxLaunchDefaultBrowser("https://www.prusa3d.com/slic3r-prusa-edition/"); });
+//        append_menu_item(helpMenu, wxID_ANY, wxString::Format(_(L("%s &Manual")), SLIC3R_APP_NAME),
+//                                             wxString::Format(_(L("Open the %s manual in your browser")), SLIC3R_APP_NAME),
+//            [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://manual.slic3r.org/"); });
         helpMenu->AppendSeparator();
         append_menu_item(helpMenu, wxID_ANY, _(L("System &Info")), _(L("Show system information")), 
             [this](wxCommandEvent&) { wxGetApp().system_info(); });