diff --git a/spyder/app/mainwindow.py b/spyder/app/mainwindow.py
index <HASH>..<HASH> 100644
--- a/spyder/app/mainwindow.py
+++ b/spyder/app/mainwindow.py
@@ -1235,9 +1235,6 @@ class MainWindow(QMainWindow):
         logger.info("Setting up window...")

         self.setup_layout(default=False)

 

-        if self.splash is not None:

-            self.splash.hide()

-

         # Enabling tear off for all menus except help menu

         if CONF.get('main', 'tear_off_menus'):

             for child in self.menuBar().children():

@@ -1354,6 +1351,12 @@ class MainWindow(QMainWindow):
         if not self.ipyconsole._isvisible:

             self.historylog.add_history(get_conf_path('history.py'))

 

+        # Process pending events and hide splash before loading the

+        # previous session.

+        QApplication.processEvents()

+        if self.splash is not None:

+            self.splash.hide()

+

         if self.open_project:

             self.projects.open_project(self.open_project)

         else:
Main Window: Hide splash screen in post_visible_setup

This maintains the splash visible until the very last second before
loading the previous session.