diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 5a129bc980..b2095dbdfe 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -1220,7 +1220,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) :
     _defaultSkyboxAmbientTexture = textureCache->getImageTexture(skyboxAmbientUrl, NetworkTexture::CUBE_TEXTURE, { { "generateIrradiance", true } });
 
     _defaultSkybox->setCubemap(_defaultSkyboxTexture);
-    _defaultSkybox->setColor({ 1.0, 1.0, 1.0 });
 
     EntityItem::setEntitiesShouldFadeFunction([this]() {
         SharedNodePointer entityServerNode = DependencyManager::get<NodeList>()->soloNodeOfType(NodeType::EntityServer);
@@ -4327,8 +4326,9 @@ namespace render {
                 sceneKeyLight->setIntensity(DEFAULT_SKYBOX_INTENSITY);
                 sceneKeyLight->setAmbientIntensity(DEFAULT_SKYBOX_AMBIENT_INTENSITY);
                 sceneKeyLight->setDirection(DEFAULT_SKYBOX_DIRECTION);
-                // fall through: render a skybox, if available
+                // fall through: render a skybox (if available), or the defaults (if requested)
            }
+
             case model::SunSkyStage::SKY_BOX: {
                 auto skybox = skyStage->getSkybox();
                 if (!skybox->empty()) {
@@ -4336,25 +4336,32 @@ namespace render {
                     skybox->render(batch, args->getViewFrustum());
                     break;
                 }
-                // fall through: render defaults, if available
+                // fall through: render defaults (if requested)
             }
+
             case model::SunSkyStage::SKY_DEFAULT_AMBIENT_TEXTURE: {
                 if (Menu::getInstance()->isOptionChecked(MenuOption::DefaultSkybox)) {
                     auto scene = DependencyManager::get<SceneScriptingInterface>()->getStage();
                     auto sceneKeyLight = scene->getKeyLight();
                     auto defaultSkyboxAmbientTexture = qApp->getDefaultSkyboxAmbientTexture();
-                    // do not set the ambient sphere - it peaks too high, and causes flashing when turning
+                    // set the ambient sphere uniformly - the defaultSkyboxAmbientTexture has peaks that cause flashing when turning
+                    sceneKeyLight->setAmbientSphere(DependencyManager::get<TextureCache>()->getWhiteTexture()->getIrradiance());
                     sceneKeyLight->setAmbientMap(defaultSkyboxAmbientTexture);
+                    // fall through: render defaults skybox
+                } else {
+                    break;
                 }
-                // fall through: render defaults, if available
             }
+
             case model::SunSkyStage::SKY_DEFAULT_TEXTURE:
                 if (Menu::getInstance()->isOptionChecked(MenuOption::DefaultSkybox)) {
                     qApp->getDefaultSkybox()->render(batch, args->getViewFrustum());
                 }
+                break;
+
+            // Any other cases require no extra rendering
             case model::SunSkyStage::NO_BACKGROUND:
             default:
-                // this line intentionally left blank
                 break;
         }
     }
diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp
index bc045a99d7..ece667422c 100644
--- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp
+++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp
@@ -113,17 +113,19 @@ void EntityTreeRenderer::resetEntitiesScriptEngine() {
 void EntityTreeRenderer::clear() {
     leaveAllEntities();
 
+    // unload and stop the engine
     if (_entitiesScriptEngine) {
-        // Unload and stop the engine here (instead of in its deleter) to
-        // avoid marshalling unload signals back to this thread
+        // do this here (instead of in deleter) to avoid marshalling unload signals back to this thread
         _entitiesScriptEngine->unloadAllEntityScripts();
         _entitiesScriptEngine->stop();
     }
 
+    // reset the engine
     if (_wantScripts && !_shuttingDown) {
         resetEntitiesScriptEngine();
     }
 
+    // remove all entities from the scene
     auto scene = _viewState->getMain3DScene();
     render::PendingChanges pendingChanges;
     foreach(auto entity, _entitiesInScene) {
@@ -132,6 +134,10 @@ void EntityTreeRenderer::clear() {
     scene->enqueuePendingChanges(pendingChanges);
     _entitiesInScene.clear();
 
+    // reset the zone to the default (while we load the next scene)
+    _bestZone = nullptr;
+    applyZonePropertiesToScene(_bestZone);
+
     OctreeRenderer::clear();
 }
 
diff --git a/libraries/model/src/model/Skybox.cpp b/libraries/model/src/model/Skybox.cpp
index cb3fb43630..4a66c18f98 100755
--- a/libraries/model/src/model/Skybox.cpp
+++ b/libraries/model/src/model/Skybox.cpp
@@ -49,6 +49,11 @@ void Skybox::updateSchemaBuffer() const {
     }
 }
 
+void Skybox::clear() {
+    _schemaBuffer.edit<Schema>().color = vec3(0);
+    setCubemap(nullptr);
+}
+
 void Skybox::prepare(gpu::Batch& batch, int textureSlot, int bufferSlot) const {
     if (bufferSlot > -1) {
         batch.setUniformBuffer(bufferSlot, _schemaBuffer);
diff --git a/libraries/model/src/model/Skybox.h b/libraries/model/src/model/Skybox.h
index b2e004a2e9..1e6d30bbc1 100755
--- a/libraries/model/src/model/Skybox.h
+++ b/libraries/model/src/model/Skybox.h
@@ -36,7 +36,7 @@ public:
     const gpu::TexturePointer& getCubemap() const { return _cubemap; }
 
     virtual bool empty() { return _schemaBuffer.get<Schema>().color == vec3(0) && !_cubemap; }
-    virtual void clear() { setCubemap(nullptr); }
+    virtual void clear();
 
     void prepare(gpu::Batch& batch, int textureSlot = SKYBOX_SKYMAP_SLOT, int bufferSlot = SKYBOX_CONSTANTS_SLOT) const;
     virtual void render(gpu::Batch& batch, const ViewFrustum& frustum) const;
@@ -51,7 +51,7 @@ protected:
 
     class Schema {
     public:
-        glm::vec3 color { 1.0f, 1.0f, 1.0f };
+        glm::vec3 color { 0.0f, 0.0f, 0.0f };
         float blend { 0.0f };
     };