diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js
index 4af6848632c311f244e781d0600014e605acdebc..a286b25214f25ff6ef93b5c7c2e52252fe59e6b2 100644
--- a/packages/app-shell/src/app-shell.js
+++ b/packages/app-shell/src/app-shell.js
@@ -940,12 +940,16 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
         const slotClassMap = classMap({hidden: !appHidden});
 
         if (!appHidden) {
+            // if app is loaded correctly, remove spinner
             this.updateComplete.then(() => {
-                // XXX: Safari 11 doesn't like CSS being applied to slots or via HTML,
-                // so we have to remove the slot instead of hiding it
-                // select slots with no name attribute
                 const slot = this.shadowRoot.querySelector('slot:not([name])');
-                if (slot) slot.remove();
+                if (slot) slot.style.display = 'none';
+            });
+        } else {
+            // if app is not loaded correctly, show spinner
+            this.updateComplete.then(() => {
+                const slot = this.shadowRoot.querySelector('slot:not([name])');
+                if (slot) slot.style.display = '';
             });
         }