diff --git a/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml b/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml
index 84f0237472..966121a7f0 100644
--- a/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml
+++ b/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml
@@ -27,7 +27,8 @@ Rectangle {
     }
 
     Component.onCompleted: {
-        if (Settings.getValue("simplifiedUI/alreadyAutoSelectedAvatarFromInventory", false)) {
+        if (Settings.getValue("simplifiedUI/alreadyAutoSelectedAvatarFromInventory", false) || 
+            Settings.getValue("simplifiedUI/closedAvatarPageOfInitialLaunchWindow", false)) {
             tempAvatarPageContainer.visible = false;
             controlsContainer.visible = true;
         }
@@ -165,6 +166,7 @@ Rectangle {
                         onClicked: {
                             Tablet.playSound(TabletEnums.ButtonClick);
                             tempAvatarPageContainer.visible = false;
+                            Settings.setValue("simplifiedUI/closedAvatarPageOfInitialLaunchWindow", true);
                             controlsContainer.visible = true;
                         }
                     }
diff --git a/scripts/simplifiedUI/ui/simplifiedUI.js b/scripts/simplifiedUI/ui/simplifiedUI.js
index 98ec5e2260..13afb530f8 100644
--- a/scripts/simplifiedUI/ui/simplifiedUI.js
+++ b/scripts/simplifiedUI/ui/simplifiedUI.js
@@ -438,22 +438,16 @@ function displaySecondLaunchWindow() {
 function closeInitialLaunchWindow() {
     if (initialLaunchWindow) {
         initialLaunchWindow.fromQml.disconnect(onMessageFromInitialLaunchWindow);
-        var homeLocation = LocationBookmarks.getAddress("hqhome");
-        if (homeLocation) {
-            Window.location = homeLocation;
-        }
         initialLaunchWindow.close();
+        initialLaunchWindow = null;
     }
 }
 
 function closeSecondLaunchWindow() {
     if (secondLaunchWindow) {
         secondLaunchWindow.fromQml.disconnect(onMessageFromSecondLaunchWindow);
-        var homeLocation = LocationBookmarks.getAddress("hqhome");
-        if (homeLocation) {
-            Window.location = homeLocation;
-        }
         secondLaunchWindow.close();
+        secondLaunchWindow = null;
     }
 }
 
@@ -466,6 +460,10 @@ function onMessageFromInitialLaunchWindow(message) {
     switch (message.method) {
         case "closeInitialLaunchWindow":
             closeInitialLaunchWindow();
+            var homeLocation = LocationBookmarks.getAddress("hqhome");
+            if (homeLocation) {
+                Window.location = homeLocation;
+            }
             break;
 
         default:
@@ -483,6 +481,10 @@ function onMessageFromSecondLaunchWindow(message) {
     switch (message.method) {
         case "closeSecondLaunchWindow":
             closeSecondLaunchWindow();
+            var homeLocation = LocationBookmarks.getAddress("hqhome");
+            if (homeLocation) {
+                Window.location = homeLocation;
+            }
             break;
 
         default:
@@ -666,6 +668,7 @@ function onGeometryChanged(rect) {
         };
     }
     if (initialLaunchWindow) {
+        print("GEOMETRY CHANGED, INITIAL WINDOW. rect.width: ", rect.width, " AND rect.height: ", rect.height, " AND rect.x: ", rect.x, " AND rect.y: ", rect.y);
         initialLaunchWindow.size = {
             "x": rect.width,
             "y": rect.height
@@ -674,8 +677,10 @@ function onGeometryChanged(rect) {
             "x": rect.x,
             "y": rect.y
         };
+        print("NOW THE INITIAL WINDOW size IS: ", JSON.stringify(initialLaunchWindow.size), " AND position IS: ", JSON.stringify(initialLaunchWindow.position));
     }
     if (secondLaunchWindow) {
+        print("GEOMETRY CHANGED, SECOND WINDOW. rect.width: ", rect.width, " AND rect.height: ", rect.height, " AND rect.x: ", rect.x, " AND rect.y: ", rect.y);
         secondLaunchWindow.size = {
             "x": rect.width,
             "y": rect.height
@@ -684,24 +689,39 @@ function onGeometryChanged(rect) {
             "x": rect.x,
             "y": rect.y
         };
+        print("NOW THE SECOND WINDOW size IS: ", JSON.stringify(secondLaunchWindow.size), " AND position IS: ", JSON.stringify(secondLaunchWindow.position));
     }
 }
 
+var initialLaunchWindowIsMinimized = false;
+var secondLaunchWindowIsMinimized = false;
 function onWindowMinimizedChanged(isMinimized) {
     if (isMinimized) {
-        if (initialLaunchWindow) {
-            initialLaunchWindow.setVisible(false);
-        }
-        if (secondLaunchWindow) {
-            secondLaunchWindow.setVisible(false);
-        }
-    } else {
-        if (initialLaunchWindow) {
-            initialLaunchWindow.show();
-        }
-        if (secondLaunchWindow) {
-            secondLaunchWindow.show();
-        }
+        handleInitialLaunchWindowVisibleChanged(false);
+        handleSecondLaunchWindowVisibleChanged(false);
+    } else if (!HMD.active) {
+        handleInitialLaunchWindowVisibleChanged(true);
+        handleSecondLaunchWindowVisibleChanged(true);
+    }
+}
+
+function handleInitialLaunchWindowVisibleChanged(shouldBeVisible) {
+    if (shouldBeVisible && !initialLaunchWindow && initialLaunchWindowIsMinimized) {
+        displayInitialLaunchWindow();
+        initialLaunchWindowIsMinimized = false;
+    } else if (!shouldBeVisible && initialLaunchWindow) {
+        closeInitialLaunchWindow();
+        initialLaunchWindowIsMinimized = true;
+    }
+}
+
+function handleSecondLaunchWindowVisibleChanged(shouldBeVisible) {
+    if (shouldBeVisible && !secondLaunchWindow && secondLaunchWindowIsMinimized) {
+        displaySecondLaunchWindow();
+        secondLaunchWindowIsMinimized = false;
+    } else if (!shouldBeVisible && secondLaunchWindow) {
+        closeSecondLaunchWindow();
+        secondLaunchWindowIsMinimized = true;
     }
 }
 
@@ -712,8 +732,12 @@ function onDisplayModeChanged(isHMDMode) {
 
     if (isHMDMode) {
         onHMDInputDeviceMutedChanged(Audio.mutedHMD);
+        handleInitialLaunchWindowVisibleChanged(false);
+        handleSecondLaunchWindowVisibleChanged(false);
     } else {
         onDesktopInputDeviceMutedChanged(Audio.mutedDesktop);
+        handleInitialLaunchWindowVisibleChanged(true);
+        handleSecondLaunchWindowVisibleChanged(true);
     }
 }