diff --git a/indra/llui/llmultislider.cpp b/indra/llui/llmultislider.cpp
index ed93b3d44c93032bfe40e6729b92d51104a6baa1..61e8bdd38cb55b12bc15e68fb2749cd4cf03c025 100644
--- a/indra/llui/llmultislider.cpp
+++ b/indra/llui/llmultislider.cpp
@@ -306,6 +306,30 @@ F32 LLMultiSlider::getSliderValueFromPos(S32 xpos, S32 ypos) const
     return((t * (mMaxValue - mMinValue)) + mMinValue);
 }
 
+
+LLRect LLMultiSlider::getSliderThumbRect(const std::string& name) const
+{
+    auto it = mThumbRects.find(name);
+    if (it != mThumbRects.end())
+        return (*it).second;
+    return LLRect();
+}
+
+void LLMultiSlider::setSliderThumbImage(const std::string &name)
+{
+    if (!name.empty())
+    {
+        mThumbImagep = LLUI::getUIImage(name);
+    }
+    else
+        clearSliderThumbImage();
+}
+
+void LLMultiSlider::clearSliderThumbImage()
+{
+    mThumbImagep = NULL;
+}
+
 void LLMultiSlider::resetCurSlider()
 {
 	mCurSlider = LLStringUtil::null;
diff --git a/indra/llui/llmultislider.h b/indra/llui/llmultislider.h
index 50cf62e9c57fc43a0c9ca5041ec62ca6a7a6b900..b0fca2597dbef67b528014dec8bd6ea4ed41f969 100644
--- a/indra/llui/llmultislider.h
+++ b/indra/llui/llmultislider.h
@@ -80,6 +80,11 @@ class LLMultiSlider : public LLF32UICtrl
 	void				setSliderValue(const std::string& name, F32 value, BOOL from_event = FALSE);
 	F32					getSliderValue(const std::string& name) const;
 	F32					getSliderValueFromPos(S32 xpos, S32 ypos) const;
+    LLRect              getSliderThumbRect(const std::string& name) const;
+
+    void                setSliderThumbImage(const std::string &name);
+    void                clearSliderThumbImage();
+
 
 	const std::string&	getCurSlider() const					{ return mCurSlider; }
 	F32					getCurSliderValue() const				{ return getSliderValue(mCurSlider); }
@@ -112,6 +117,7 @@ class LLMultiSlider : public LLF32UICtrl
 	F32				getOverlapThreshold() { return mOverlapThreshold; }
 	bool			canAddSliders() { return mValue.size() < mMaxNumSliders; }
 
+
 protected:
 	LLSD			mValue;
 	std::string		mCurSlider;
diff --git a/indra/llui/llmultisliderctrl.h b/indra/llui/llmultisliderctrl.h
index 75715d604384a9f373bca0d3aec334ccec92b715..e16737b3c7537f2965748335cb6483059192059c 100644
--- a/indra/llui/llmultisliderctrl.h
+++ b/indra/llui/llmultisliderctrl.h
@@ -107,7 +107,11 @@ class LLMultiSliderCtrl : public LLF32UICtrl
 	void			setMaxValue(F32 max_value) {mMultiSlider->setMaxValue(max_value);}
 	void			setIncrement(F32 increment) {mMultiSlider->setIncrement(increment);}
 
-	F32			getSliderValueFromPos(S32 x, S32 y) const { return mMultiSlider->getSliderValueFromPos(x, y); }
+	F32			    getSliderValueFromPos(S32 x, S32 y) const { return mMultiSlider->getSliderValueFromPos(x, y); }
+    LLRect          getSliderThumbRect(const std::string &name) const { return mMultiSlider->getSliderThumbRect(name); }
+
+    void            setSliderThumbImage(const std::string &name) { mMultiSlider->setSliderThumbImage(name); }
+    void            clearSliderThumbImage() { mMultiSlider->clearSliderThumbImage(); }
 
 	/// for adding and deleting sliders
 	const std::string&	addSlider();
diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp
index a8a386edee5f7f903821f7967bd2002bd0df8bac..3541eb40fa9c3a09cb1147370eca7dab8c8a681a 100644
--- a/indra/newview/llenvironment.cpp
+++ b/indra/newview/llenvironment.cpp
@@ -1600,6 +1600,7 @@ LLEnvironment::EnvironmentInfo::ptr_t LLEnvironment::EnvironmentInfo::extract(LL
         LLSD daynames = environment[KEY_DAYNAMES];
         if (daynames.isArray())
         {
+            pinfo->mDayCycleName.clear();
             for (S32 index = 0; index < pinfo->mNameList.size(); ++index)
             {
                 pinfo->mNameList[index] = daynames[index].asString();
@@ -1607,9 +1608,19 @@ LLEnvironment::EnvironmentInfo::ptr_t LLEnvironment::EnvironmentInfo::extract(LL
         }
         else if (daynames.isString())
         {
+            for (std::string &name: pinfo->mNameList)
+            {
+                name.clear();
+            }
+
             pinfo->mDayCycleName = daynames.asString();
         }
     }
+    else if (pinfo->mDayCycle)
+    {
+        pinfo->mDayCycleName = pinfo->mDayCycle->getName();
+    }
+
 
     if (environment.has(KEY_ENVVERSION))
     {
diff --git a/indra/newview/llenvironment.h b/indra/newview/llenvironment.h
index 47e0f0208bbf493215471706064f5db1fe2e9d9f..1dd7496b02cfcdd3e6a98dd0e5df98980a9f7163 100644
--- a/indra/newview/llenvironment.h
+++ b/indra/newview/llenvironment.h
@@ -380,7 +380,10 @@ class LLEnvironment : public LLSingleton<LLEnvironment>
             mDayOffset(day_offset),
             mAltitudes(altitudes),
             mDayName()
-        {}
+        {
+            if (mDayp)
+                mDayName = mDayp->getName();
+        }
 
         UpdateInfo(LLUUID settings_asset, std::string name, S32 day_length, S32 day_offset, altitudes_vect_t altitudes) :
             mDayp(),
diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp
index 7184d07ee3ac3e8ce446f325d2ddd4c03666b22a..41582ffcc3e155a7b2118bc500fb849e079c2604 100644
--- a/indra/newview/llfloatereditextdaycycle.cpp
+++ b/indra/newview/llfloatereditextdaycycle.cpp
@@ -495,6 +495,20 @@ void LLFloaterEditExtDayCycle::setEditDefaultDayCycle()
         [this](LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status, LLExtStat) { onAssetLoaded(asset_id, settings, status); });
 }
 
+std::string LLFloaterEditExtDayCycle::getEditName() const
+{
+    if (mEditDay)
+        return mEditDay->getName();
+    return "new";
+}
+
+void LLFloaterEditExtDayCycle::setEditName(const std::string &name)
+{
+    if (mEditDay)
+        mEditDay->setName(name);
+    getChild<LLLineEditor>(TXT_DAY_NAME)->setText(name);
+}
+
 /* virtual */
 BOOL LLFloaterEditExtDayCycle::handleKeyUp(KEY key, MASK mask, BOOL called_from_parent)
 {
@@ -951,6 +965,11 @@ void LLFloaterEditExtDayCycle::selectTrack(U32 track_index, bool force )
     bool show_water = (mCurrentTrack == LLSettingsDay::TRACK_WATER);
     mSkyTabLayoutContainer->setVisible(!show_water);
     mWaterTabLayoutContainer->setVisible(show_water);
+
+    std::string iconname = (show_water) ? "Inv_SettingsWater" : "Inv_SettingsSky";
+
+    mFramesSlider->setSliderThumbImage(iconname);
+
     updateSlider();
     updateLabels();
 }
diff --git a/indra/newview/llfloatereditextdaycycle.h b/indra/newview/llfloatereditextdaycycle.h
index 1dea77571f1064e7204b90cb75e52bc4c814a2ba..1967f5a470cec9895a4a2060382142ba520dd53e 100644
--- a/indra/newview/llfloatereditextdaycycle.h
+++ b/indra/newview/llfloatereditextdaycycle.h
@@ -92,6 +92,8 @@ class LLFloaterEditExtDayCycle : public LLFloater
 
     void                        setEditDayCycle(const LLSettingsDay::ptr_t &pday);
     void                        setEditDefaultDayCycle();
+    std::string                 getEditName() const;
+    void                        setEditName(const std::string &name);
     LLUUID                      getEditingAssetId() { return mEditDay ? mEditDay->getAssetId() : LLUUID::null; }
     LLUUID                      getEditingInventoryId() { return mInventoryId; }
 
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index b20911edc50c5c8a9c7aabce033ccc8f370f50c8..380302b51e078699dedfc36a1b717e0cdb6203b5 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -3265,9 +3265,10 @@ BOOL LLPanelLandEnvironment::postBuild()
     if (!LLPanelEnvironmentInfo::postBuild())
         return FALSE;
 
-    getChild<LLUICtrl>(RDO_USEDEFAULT)->setLabelArg("[USEDEFAULT]", getString(STR_LABEL_USEREGION));
+    getChild<LLUICtrl>(BTN_USEDEFAULT)->setLabelArg("[USEDEFAULT]", getString(STR_LABEL_USEREGION));
     getChild<LLUICtrl>(CHK_ALLOWOVERRIDE)->setVisible(FALSE);
-    getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE);
+    getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(TRUE);
+
     return TRUE;
 }
 
@@ -3375,7 +3376,8 @@ bool LLPanelLandEnvironment::canEdit()
     LLParcel *parcel = getParcel();
     if (!parcel)
         return false;
-    return LLEnvironment::instance().canAgentUpdateParcelEnvironment(parcel);
+    
+    return LLEnvironment::instance().canAgentUpdateParcelEnvironment(parcel) && mAllowOverride;
 }
 
 S32 LLPanelLandEnvironment::getParcelId() 
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index fcaa7d2bf952401a8244d183e798607e57c874af..3e07c4abc73d46c5aef83719448d718192d63329 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -188,7 +188,6 @@ class LLPanelRegionEnvironment : public LLPanelEnvironmentInfo
     virtual bool        canEdit() override { return LLEnvironment::instance().canAgentUpdateRegionEnvironment(); }
 
     bool                refreshFromRegion(LLViewerRegion* region);
-    void                refreshFromEstate();
 
     virtual BOOL        postBuild() override;
     virtual void        onOpen(const LLSD& key) override {};
@@ -198,16 +197,14 @@ class LLPanelRegionEnvironment : public LLPanelEnvironmentInfo
 protected:
     static const U32    DIRTY_FLAG_OVERRIDE;
 
-    virtual void        doApply() override;
-
     virtual void        refreshFromSource() override;
 
-    bool                doUpdateEstate(const LLSD& notification, const LLSD& response);
+    bool                confirmUpdateEstateEnvironment(const LLSD& notification, const LLSD& response);
 
     void                onChkAllowOverride(bool value);
 
 private:
-    bool                mAllowOverride;
+    bool                mAllowOverrideRestore;
 
 };
 
@@ -3403,7 +3400,7 @@ const U32 LLPanelRegionEnvironment::DIRTY_FLAG_OVERRIDE(0x01 << 4);
 
 LLPanelRegionEnvironment::LLPanelRegionEnvironment():
     LLPanelEnvironmentInfo(),
-    mAllowOverride(false)
+    mAllowOverrideRestore(false)
 {
     LLEstateInfoModel& estate_info = LLEstateInfoModel::instance();
     estate_info.setCommitCallback(boost::bind(&LLPanelRegionEnvironment::refreshFromEstate, this));
@@ -3416,7 +3413,7 @@ BOOL LLPanelRegionEnvironment::postBuild()
     if (!LLPanelEnvironmentInfo::postBuild())
         return FALSE;
 
-    getChild<LLUICtrl>(RDO_USEDEFAULT)->setLabelArg("[USEDEFAULT]", getString(STR_LABEL_USEDEFAULT));
+    getChild<LLUICtrl>(BTN_USEDEFAULT)->setLabelArg("[USEDEFAULT]", getString(STR_LABEL_USEDEFAULT));
     getChild<LLUICtrl>(CHK_ALLOWOVERRIDE)->setVisible(TRUE);
     getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(TRUE);
 
@@ -3436,7 +3433,6 @@ void LLPanelRegionEnvironment::refresh()
         return;
     }
 
-    refreshFromEstate();
     LLPanelEnvironmentInfo::refresh();
 
     getChild<LLUICtrl>(CHK_ALLOWOVERRIDE)->setValue(mAllowOverride);
@@ -3463,13 +3459,6 @@ bool LLPanelRegionEnvironment::refreshFromRegion(LLViewerRegion* region)
     return true;
 }
 
-void LLPanelRegionEnvironment::refreshFromEstate()
-{
-    const LLEstateInfoModel& estate_info = LLEstateInfoModel::instance();
-
-    mAllowOverride = estate_info.getAllowEnvironmentOverride();
-}
-
 void LLPanelRegionEnvironment::refreshFromSource()
 {
     LL_DEBUGS("ENVIRONMENT") << "Requesting environment for region, known version " << mCurEnvVersion << LL_ENDL;
@@ -3487,31 +3476,7 @@ void LLPanelRegionEnvironment::refreshFromSource()
     setControlsEnabled(false);
 }
 
-void LLPanelRegionEnvironment::doApply()
-{
-    LLPanelEnvironmentInfo::doApply();
-
-    if (getIsDirtyFlag(DIRTY_FLAG_OVERRIDE))
-    {
-        LLNotification::Params params("ChangeLindenEstate");
-        //params.functor.function(boost::bind(&LLPanelEstateInfo::doUpdateEstate, this, _1, _2));
-        params.functor.function([this](const LLSD& notification, const LLSD& response) { doUpdateEstate(notification, response); });
-
-        if (LLPanelEstateInfo::isLindenEstate())
-        {
-            // trying to change reserved estate, warn
-            LLNotifications::instance().add(params);
-        }
-        else
-        {
-            // for normal estates, just make the change
-            LLNotifications::instance().forceResponse(params, 0);
-        }
-
-    }
-}
-
-bool LLPanelRegionEnvironment::doUpdateEstate(const LLSD& notification, const LLSD& response)
+bool LLPanelRegionEnvironment::confirmUpdateEstateEnvironment(const LLSD& notification, const LLSD& response)
 {
     S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
 
@@ -3530,6 +3495,9 @@ bool LLPanelRegionEnvironment::doUpdateEstate(const LLSD& notification, const LL
     break;
 
     case 1:
+        mAllowOverride = mAllowOverrideRestore;
+        getChild<LLUICtrl>(CHK_ALLOWOVERRIDE)->setValue(mAllowOverride);
+        break;
     default:
         break;
     }
@@ -3538,11 +3506,24 @@ bool LLPanelRegionEnvironment::doUpdateEstate(const LLSD& notification, const LL
 
 void LLPanelRegionEnvironment::onChkAllowOverride(bool value)
 {
-    if (!value)
+    setDirtyFlag(DIRTY_FLAG_OVERRIDE);
+    mAllowOverrideRestore = mAllowOverride;
+    mAllowOverride = value;
+
+    LLNotification::Params params("ChangeLindenEstate");
+    params.functor.function([this](const LLSD& notification, const LLSD& response) { confirmUpdateEstateEnvironment(notification, response); });
+
+    std::string notification("EstateParcelEnvironmentOverride");
+    if (LLPanelEstateInfo::isLindenEstate())
+        notification = "ChangeLindenEstate";
+
+    if (!value || LLPanelEstateInfo::isLindenEstate())
+    {   // warn if turning off or a Linden Estate
+        LLNotifications::instance().add(params);
+    }
+    else
     {
-        LLNotificationsUtil::add("EstateParcelEnvironmentOverride");
+        LLNotifications::instance().forceResponse(params, 0);
     }
 
-    setDirtyFlag(DIRTY_FLAG_OVERRIDE);
-    mAllowOverride = value;
 }
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 7fea502c0fc13d58497f53e0c9b8cd536844604d..5f244ec6a2b179ccff2f37f2725105f5147f904b 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -152,6 +152,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
 	mShowItemLinkOverlays(p.show_item_link_overlays),
 	mShowEmptyMessage(p.show_empty_message),
 	mSuppressFolderMenu(p.suppress_folder_menu),
+	mSuppressOpenItemAction(false),
 	mViewsInitialized(false),
 	mInvFVBridgeBuilder(NULL),
 	mInventoryViewModel(p.name),
@@ -1658,21 +1659,18 @@ BOOL LLInventoryPanel::handleKeyHere( KEY key, MASK mask )
 		// Open selected items if enter key hit on the inventory panel
 		if (mask == MASK_NONE)
 		{
-
-// @TODO$: Rider: This code is dead with Outbox, however should something similar be 
-//  done for VMM?
-//  
-// 			//Don't allow attaching or opening items from Merchant Outbox
-// 			LLFolderViewItem* folder_item = mFolderRoot.get()->getCurSelectedItem();
-// 			if(folder_item)
-// 			{
-// 				LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem();
-// 				if(bridge && bridge->is() && (bridge->getInventoryType() != LLInventoryType::IT_CATEGORY))
-// 				{
-// 					return handled;
-// 				}
-// 			}
-
+			if (mSuppressOpenItemAction)
+			{
+				LLFolderViewItem* folder_item = mFolderRoot.get()->getCurSelectedItem();
+				if(folder_item)
+				{
+					LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem();
+					if(bridge && (bridge->getInventoryType() != LLInventoryType::IT_CATEGORY))
+					{
+						return handled;
+					}
+				}
+			}
 			LLInventoryAction::doToSelected(mInventory, mFolderRoot.get(), "open");
 			handled = TRUE;
 		}
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 97e1c37a31197546f26868330c1c77050774c628..b2a60543af2bb2b7c11b32dd6fc62c8559baadef 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -243,6 +243,8 @@ class LLInventoryPanel : public LLPanel
 	void setSelectionByID(const LLUUID& obj_id, BOOL take_keyboard_focus);
 	void updateSelection();
 
+	void setSuppressOpenItemAction(bool supress_open_item) { mSuppressOpenItemAction = supress_open_item; }
+
 	LLFolderViewModelInventory* getFolderViewModel() { return &mInventoryViewModel; }
 	const LLFolderViewModelInventory* getFolderViewModel() const { return &mInventoryViewModel; }
     
@@ -264,6 +266,7 @@ class LLInventoryPanel : public LLPanel
 	bool 						mShowItemLinkOverlays; // Shows link graphic over inventory item icons
 	bool						mShowEmptyMessage;
 	bool						mSuppressFolderMenu;
+	bool						mSuppressOpenItemAction;
 
 	LLHandle<LLFolderView>      mFolderRoot;
 	LLScrollContainer*			mScroller;
diff --git a/indra/newview/llpanelenvironment.cpp b/indra/newview/llpanelenvironment.cpp
index e3be46f1af17cd830111d32892621d49040f90ba..b4007cfdf0d9714965b519feb4de6a725bd0d048 100644
--- a/indra/newview/llpanelenvironment.cpp
+++ b/indra/newview/llpanelenvironment.cpp
@@ -54,23 +54,25 @@
 namespace 
 {
     const std::string FLOATER_DAY_CYCLE_EDIT("env_edit_extdaycycle");
+
+    inline bool ends_with(std::string const & value, std::string const & ending)
+    {
+        if (ending.size() > value.size())
+            return false;
+        return std::equal(ending.rbegin(), ending.rend(), value.rbegin());
+    }
+
 }
 
 //=========================================================================
-const std::string LLPanelEnvironmentInfo::RDG_ENVIRONMENT_SELECT("rdg_environment_select");
-const std::string LLPanelEnvironmentInfo::RDO_USEDEFAULT("rdo_use_xxx_setting");
-const std::string LLPanelEnvironmentInfo::RDO_USEINV("rdo_use_inv_setting");
-const std::string LLPanelEnvironmentInfo::RDO_USECUSTOM("rdo_use_custom_setting");
-const std::string LLPanelEnvironmentInfo::EDT_INVNAME("edt_inventory_name");
 const std::string LLPanelEnvironmentInfo::BTN_SELECTINV("btn_select_inventory");
 const std::string LLPanelEnvironmentInfo::BTN_EDIT("btn_edit");
+const std::string LLPanelEnvironmentInfo::BTN_USEDEFAULT("btn_usedefault");
 const std::string LLPanelEnvironmentInfo::SLD_DAYLENGTH("sld_day_length");
 const std::string LLPanelEnvironmentInfo::SLD_DAYOFFSET("sld_day_offset");
 const std::string LLPanelEnvironmentInfo::SLD_ALTITUDES("sld_altitudes");
 const std::string LLPanelEnvironmentInfo::ICN_GROUND("icon_ground");
 const std::string LLPanelEnvironmentInfo::CHK_ALLOWOVERRIDE("chk_allow_override");
-const std::string LLPanelEnvironmentInfo::BTN_APPLY("btn_apply");
-const std::string LLPanelEnvironmentInfo::BTN_CANCEL("btn_cancel");
 const std::string LLPanelEnvironmentInfo::LBL_TIMEOFDAY("lbl_apparent_time");
 const std::string LLPanelEnvironmentInfo::PNL_SETTINGS("pnl_environment_config");
 const std::string LLPanelEnvironmentInfo::PNL_ENVIRONMENT_ALTITUDES("pnl_environment_altitudes");
@@ -86,6 +88,7 @@ const std::string LLPanelEnvironmentInfo::STR_ALTITUDE_DESCRIPTION("str_altitude
 const std::string LLPanelEnvironmentInfo::STR_NO_PARCEL("str_no_parcel");
 const std::string LLPanelEnvironmentInfo::STR_CROSS_REGION("str_cross_region");
 const std::string LLPanelEnvironmentInfo::STR_LEGACY("str_legacy");
+const std::string LLPanelEnvironmentInfo::STR_DISALLOWED("str_disallowed");
 
 const U32 LLPanelEnvironmentInfo::DIRTY_FLAG_DAYCYCLE(0x01 << 0);
 const U32 LLPanelEnvironmentInfo::DIRTY_FLAG_DAYLENGTH(0x01 << 1);
@@ -111,9 +114,9 @@ const std::string alt_labels[] = {
     "alt2",
     "alt3",
     "ground",
+    "water",
 };
 
-
 static LLDefaultChildRegistry::Register<LLSettingsDropTarget> r("settings_drop_target");
 
 //=========================================================================
@@ -126,7 +129,8 @@ LLPanelEnvironmentInfo::LLPanelEnvironmentInfo():
     mNoEnvironment(false),
     mCurEnvVersion(INVALID_PARCEL_ENVIRONMENT_VERSION),
     mSettingsFloater(),
-    mEditFloater()
+    mEditFloater(),
+    mAllowOverride(true)
 {
 }
 
@@ -140,16 +144,17 @@ LLPanelEnvironmentInfo::~LLPanelEnvironmentInfo()
 
 BOOL LLPanelEnvironmentInfo::postBuild()
 {
-    getChild<LLUICtrl>(RDG_ENVIRONMENT_SELECT)->setCommitCallback([this](LLUICtrl *, const LLSD &){ onSwitchDefaultSelection(); });
+    getChild<LLUICtrl>(BTN_USEDEFAULT)->setCommitCallback([this](LLUICtrl *, const LLSD &){ onBtnDefault(); });
     getChild<LLUICtrl>(BTN_SELECTINV)->setCommitCallback([this](LLUICtrl *, const LLSD &){ onBtnSelect(); });
     getChild<LLUICtrl>(BTN_EDIT)->setCommitCallback([this](LLUICtrl *, const LLSD &){ onBtnEdit(); });
-    getChild<LLUICtrl>(BTN_APPLY)->setCommitCallback([this](LLUICtrl *, const LLSD &){ onBtnApply(); });
-    getChild<LLUICtrl>(BTN_CANCEL)->setCommitCallback([this](LLUICtrl *, const LLSD &){ onBtnReset(); });
 
     getChild<LLUICtrl>(SLD_DAYLENGTH)->setCommitCallback([this](LLUICtrl *, const LLSD &value) { onSldDayLengthChanged(value.asReal()); });
+    getChild<LLSliderCtrl>(SLD_DAYLENGTH)->setSliderMouseUpCallback([this](LLUICtrl *, const LLSD &) { onDayLenOffsetMouseUp(); });
     getChild<LLUICtrl>(SLD_DAYOFFSET)->setCommitCallback([this](LLUICtrl *, const LLSD &value) { onSldDayOffsetChanged(value.asReal()); });
+    getChild<LLSliderCtrl>(SLD_DAYOFFSET)->setSliderMouseUpCallback([this](LLUICtrl *, const LLSD &) { onDayLenOffsetMouseUp(); });
 
     getChild<LLMultiSliderCtrl>(SLD_ALTITUDES)->setCommitCallback([this](LLUICtrl *cntrl, const LLSD &value) { onAltSliderCallback(cntrl, value); });
+    getChild<LLMultiSliderCtrl>(SLD_ALTITUDES)->setSliderMouseUpCallback([this](LLUICtrl *, const LLSD &) { onAltSliderMouseUp(); });
 
     mChangeMonitor = LLEnvironment::instance().setEnvironmentChanged([this](LLEnvironment::EnvSelection_t env, S32 version) { onEnvironmentChanged(env, version); });
 
@@ -211,31 +216,31 @@ void LLPanelEnvironmentInfo::refresh()
         return;
     }
 
-    S32 rdo_selection = 0;
-    if ((!mCurrentEnvironment->mDayCycle) ||
-        ((mCurrentEnvironment->mParcelId == INVALID_PARCEL_ID) && (mCurrentEnvironment->mDayCycle->getAssetId() == LLSettingsDay::GetDefaultAssetId() )))
-    {
-        getChild<LLUICtrl>(EDT_INVNAME)->setValue("");
-    }
-    else if (!mCurrentEnvironment->mDayCycle->getAssetId().isNull())
-    {
-        rdo_selection = 1;
-
-        LLUUID asset_id = mCurrentEnvironment->mDayCycle->getAssetId();
-
-        std::string inventoryname = getInventoryNameForAssetId(asset_id);
-
-        if (inventoryname.empty())
-            inventoryname = "(" + mCurrentEnvironment->mDayCycle->getName() + ")";
-
-        getChild<LLUICtrl>(EDT_INVNAME)->setValue(inventoryname);
-    }
-    else
-    {   // asset id is null so this is a custom environment
-        rdo_selection = 2;
-        getChild<LLUICtrl>(EDT_INVNAME)->setValue("");
-    }
-    getChild<LLRadioGroup>(RDG_ENVIRONMENT_SELECT)->setSelectedIndex(rdo_selection);
+//     S32 rdo_selection = 0;
+//     if ((!mCurrentEnvironment->mDayCycle) ||
+//         ((mCurrentEnvironment->mParcelId == INVALID_PARCEL_ID) && (mCurrentEnvironment->mDayCycle->getAssetId() == LLSettingsDay::GetDefaultAssetId() )))
+//     {
+//         getChild<LLUICtrl>(EDT_INVNAME)->setValue("");
+//     }
+//     else if (!mCurrentEnvironment->mDayCycle->getAssetId().isNull())
+//     {
+//         rdo_selection = 1;
+// 
+//         LLUUID asset_id = mCurrentEnvironment->mDayCycle->getAssetId();
+// 
+//         std::string inventoryname = getInventoryNameForAssetId(asset_id);
+// 
+//         if (inventoryname.empty())
+//             inventoryname = "(" + mCurrentEnvironment->mDayCycle->getName() + ")";
+// 
+//         getChild<LLUICtrl>(EDT_INVNAME)->setValue(inventoryname);
+//     }
+//     else
+//     {   // asset id is null so this is a custom environment
+//         rdo_selection = 2;
+//         getChild<LLUICtrl>(EDT_INVNAME)->setValue("");
+//     }
+//     getChild<LLRadioGroup>(RDG_ENVIRONMENT_SELECT)->setSelectedIndex(rdo_selection);
 
     F32Hours daylength(mCurrentEnvironment->mDayLength);
     F32Hours dayoffset(mCurrentEnvironment->mDayOffset);
@@ -245,8 +250,8 @@ void LLPanelEnvironmentInfo::refresh()
 
     getChild<LLSliderCtrl>(SLD_DAYLENGTH)->setValue(daylength.value());
     getChild<LLSliderCtrl>(SLD_DAYOFFSET)->setValue(dayoffset.value());
-    getChild<LLSliderCtrl>(SLD_DAYLENGTH)->setEnabled(canEdit() && (rdo_selection != 0) && !mCurrentEnvironment->mIsLegacy);
-    getChild<LLSliderCtrl>(SLD_DAYOFFSET)->setEnabled(canEdit() && (rdo_selection != 0) && !mCurrentEnvironment->mIsLegacy);
+//     getChild<LLSliderCtrl>(SLD_DAYLENGTH)->setEnabled(canEdit() && (rdo_selection != 0) && !mCurrentEnvironment->mIsLegacy);
+//     getChild<LLSliderCtrl>(SLD_DAYOFFSET)->setEnabled(canEdit() && (rdo_selection != 0) && !mCurrentEnvironment->mIsLegacy);
    
     udpateApparentTimeOfDay();
 
@@ -271,6 +276,28 @@ void LLPanelEnvironmentInfo::refresh()
         readjustAltLabels();
     }
 
+    updateAltLabel(alt_labels[3], 1, 0); // ground
+    updateAltLabel(alt_labels[4], 0, 0); // water
+
+}
+
+void LLPanelEnvironmentInfo::refreshFromEstate()
+{
+    /*TODO: Bug!!  estate_info seems stale if regain floater has not been opened.*/
+    const LLEstateInfoModel& estate_info = LLEstateInfoModel::instance();
+
+    if (isRegion())
+    { // this should always work... but estate_info gives back false when it shouldn't for parcels
+        bool oldAO = mAllowOverride;
+        mAllowOverride = estate_info.getAllowEnvironmentOverride();
+        if (oldAO != mAllowOverride)
+            refresh();
+    }
+    else
+    {
+        // Get rid of this when I solve the above.
+        mAllowOverride = true;
+    }
 }
 
 std::string LLPanelEnvironmentInfo::getInventoryNameForAssetId(LLUUID asset_id) 
@@ -282,6 +309,27 @@ std::string LLPanelEnvironmentInfo::getInventoryNameForAssetId(LLUUID asset_id)
     return name;
 }
 
+
+std::string LLPanelEnvironmentInfo::getNameForTrackIndex(S32 index)
+{
+    std::string invname;
+
+    LL_WARNS("LAPRAS") << "mDayCycleName='" << mCurrentEnvironment->mDayCycleName << "'" << LL_ENDL;
+    if (mCurrentEnvironment->mDayCycleName.empty())
+    {
+        invname = mCurrentEnvironment->mNameList[index];
+    }
+    else if (!mCurrentEnvironment->mDayCycle->isTrackEmpty(index))
+    {
+        invname = mCurrentEnvironment->mDayCycleName;
+    }
+
+    if (invname.empty())
+        invname = getString("str_empty");
+
+    return invname;
+}
+
 LLFloaterSettingsPicker * LLPanelEnvironmentInfo::getSettingsPicker(bool create)
 {
     LLFloaterSettingsPicker *picker = static_cast<LLFloaterSettingsPicker *>(mSettingsFloater.get());
@@ -375,6 +423,11 @@ bool LLPanelEnvironmentInfo::setControlsEnabled(bool enabled)
         is_unavailable = true;
         getChild<LLTextBox>(TXT_DISABLED)->setText(getString(STR_CROSS_REGION));
     }
+    else if (!isRegion() && !mAllowOverride)
+    {
+        is_unavailable = true;
+        getChild<LLTextBox>(TXT_DISABLED)->setText(getString(STR_DISALLOWED));
+    }
 
     if (is_unavailable)
     {
@@ -391,26 +444,18 @@ bool LLPanelEnvironmentInfo::setControlsEnabled(bool enabled)
     getChild<LLUICtrl>(PNL_BUTTONS)->setVisible(true);
     getChild<LLUICtrl>(PNL_DISABLED)->setVisible(false);
 
-    getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(isRegion() && LLEnvironment::instance().isExtendedEnvironmentEnabled());
-
-    S32 rdo_selection = getChild<LLRadioGroup>(RDG_ENVIRONMENT_SELECT)->getSelectedIndex();
+    getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(LLEnvironment::instance().isExtendedEnvironmentEnabled());
 
-    bool can_enable = enabled && mCurrentEnvironment && mCurEnvVersion != INVALID_PARCEL_ENVIRONMENT_VERSION;
-    getChild<LLUICtrl>(RDG_ENVIRONMENT_SELECT)->setEnabled(can_enable);
-    getChild<LLUICtrl>(RDO_USEDEFAULT)->setEnabled(can_enable && !is_legacy);
-    getChild<LLUICtrl>(RDO_USEINV)->setEnabled(false);      // these two are selected automatically based on 
-    getChild<LLUICtrl>(RDO_USECUSTOM)->setEnabled(false);
-    getChild<LLUICtrl>(EDT_INVNAME)->setEnabled(FALSE);
+    bool can_enable = enabled && mCurrentEnvironment && (mCurEnvVersion != INVALID_PARCEL_ENVIRONMENT_VERSION);
     getChild<LLUICtrl>(BTN_SELECTINV)->setEnabled(can_enable && !is_legacy);
+    getChild<LLUICtrl>(BTN_USEDEFAULT)->setEnabled(can_enable && !is_legacy);
     getChild<LLUICtrl>(BTN_EDIT)->setEnabled(can_enable);
-    getChild<LLUICtrl>(SLD_DAYLENGTH)->setEnabled(can_enable && (rdo_selection != 0) && !is_legacy);
-    getChild<LLUICtrl>(SLD_DAYOFFSET)->setEnabled(can_enable && (rdo_selection != 0) && !is_legacy);
+    getChild<LLUICtrl>(SLD_DAYLENGTH)->setEnabled(can_enable && !is_legacy);
+    getChild<LLUICtrl>(SLD_DAYOFFSET)->setEnabled(can_enable && !is_legacy);
     getChild<LLUICtrl>(SLD_ALTITUDES)->setEnabled(can_enable && isRegion() && !is_legacy);
     getChild<LLUICtrl>(ICN_GROUND)->setColor((can_enable && isRegion() && !is_legacy) ? LLColor4::white : LLColor4::grey % 0.8f);
     getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setEnabled(can_enable && isRegion() && !is_legacy);
     getChild<LLUICtrl>(CHK_ALLOWOVERRIDE)->setEnabled(can_enable && isRegion() && !is_legacy);
-    getChild<LLUICtrl>(BTN_APPLY)->setEnabled(can_enable && (mDirtyFlag != 0));
-    getChild<LLUICtrl>(BTN_CANCEL)->setEnabled(enabled && (mDirtyFlag != 0));
 
     getChild<LLSettingsDropTarget>(SDT_DROP_TARGET)->setDndEnabled(enabled && !is_legacy);
 
@@ -435,18 +480,12 @@ void LLPanelEnvironmentInfo::setApplyProgress(bool started)
 
 void LLPanelEnvironmentInfo::setDirtyFlag(U32 flag)
 {
-    bool can_edit = canEdit();
     mDirtyFlag |= flag;
-    getChildView(BTN_APPLY)->setEnabled((mDirtyFlag != 0) && mCurrentEnvironment && mCurEnvVersion != INVALID_PARCEL_ENVIRONMENT_VERSION && can_edit);
-    getChildView(BTN_CANCEL)->setEnabled((mDirtyFlag != 0) && mCurrentEnvironment && can_edit);
 }
 
 void LLPanelEnvironmentInfo::clearDirtyFlag(U32 flag)
 {
-    bool can_edit = canEdit();
     mDirtyFlag &= ~flag;
-    getChildView(BTN_APPLY)->setEnabled((mDirtyFlag != 0) && mCurrentEnvironment && mCurEnvVersion != INVALID_PARCEL_ENVIRONMENT_VERSION && can_edit);
-    getChildView(BTN_CANCEL)->setEnabled((mDirtyFlag != 0) && mCurrentEnvironment && can_edit);
 }
 
 void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky_index, F32 alt_value)
@@ -460,7 +499,10 @@ void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky
 
     // get related text box
     LLTextBox* text = getChild<LLTextBox>(alt_name);
-    if (text)
+    LLLineEditor *field = getChild<LLLineEditor>("edt_invname_" + alt_name);
+    LLSettingsDropTarget *dt = getChild<LLSettingsDropTarget>("sdt_" + alt_name);
+
+    if (text && (sky_index > 1))
     {
         // move related text box
         LLRect rect = text->getRect();
@@ -468,7 +510,6 @@ void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky
         rect.mBottom = sld_bottom + (sld_offset / 2 + 1) + pos - (height / 2);
         rect.mTop = rect.mBottom + height;
         text->setRect(rect);
-
         // update text
         std::ostringstream convert;
         convert << alt_value;
@@ -477,7 +518,26 @@ void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky
         convert.clear();
         convert << sky_index;
         text->setTextArg("[INDEX]", convert.str());
+
+        if (field)
+        {
+            LLRect rect_name = field->getRect();
+            S32 name_height = rect_name.getHeight();
+            S32 center = rect.mBottom + (height / 2);
+            rect_name.mBottom = center - (name_height / 2);
+            rect_name.mTop = rect_name.mBottom + name_height;
+
+            field->setRect(rect_name);
+            if (dt)
+                dt->setRect(rect_name);
+        }
+    }
+
+    if (field)
+    {
+        field->setText(getNameForTrackIndex(sky_index));
     }
+
 }
 
 void LLPanelEnvironmentInfo::readjustAltLabels()
@@ -492,10 +552,22 @@ void LLPanelEnvironmentInfo::readjustAltLabels()
     ground_text_rect.mTop = ground_text_rect.mBottom + height;
     text->setRect(ground_text_rect);
 
+//     LLMultiSliderCtrl *sld = getChild<LLMultiSliderCtrl>(SLD_ALTITUDES);
+//     for (U32 idx = 0; idx < ALTITUDE_SLIDER_COUNT; ++idx)
+//     {
+//         LLRect rect_sld = sld->getSliderThumbRect(alt_sliders[idx]);
+//         LLTextBox* text_cmp = getChild<LLTextBox>(alt_labels[i]);
+// 
+//         LLRect rect_text = text_cmp->getRect();
+// 
+//         LL_WARNS("LAPRAS") << "slider[" << alt_sliders[idx] << "] -> " << rect_sld << " value=" << sld->getSliderValue(alt_sliders[idx]) LL_ENDL;
+//     }
+
+
+#if 0
     // Re-adjust all labels
     // Very simple "adjust after the fact" method
     // Note: labels are unordered, labels are 1 above sliders due to 'ground'
-
     for (U32 i = 0; i < ALTITUDE_SLIDER_COUNT; i++)
     {
         LLTextBox* text_cmp = getChild<LLTextBox>(alt_labels[i]);
@@ -531,16 +603,7 @@ void LLPanelEnvironmentInfo::readjustAltLabels()
             }
         }
     }
-}
-
-void LLPanelEnvironmentInfo::onSwitchDefaultSelection()
-{
-    bool can_edit = canEdit();
-    setDirtyFlag(DIRTY_FLAG_DAYCYCLE);
-
-    S32 rdo_selection = getChild<LLRadioGroup>(RDG_ENVIRONMENT_SELECT)->getSelectedIndex();
-    getChild<LLUICtrl>(SLD_DAYLENGTH)->setEnabled(can_edit && (rdo_selection != 0));
-    getChild<LLUICtrl>(SLD_DAYOFFSET)->setEnabled(can_edit && (rdo_selection != 0));
+#endif
 }
 
 void LLPanelEnvironmentInfo::onSldDayLengthChanged(F32 value)
@@ -566,6 +629,22 @@ void LLPanelEnvironmentInfo::onSldDayOffsetChanged(F32 value)
     udpateApparentTimeOfDay();
 }
 
+void LLPanelEnvironmentInfo::onDayLenOffsetMouseUp()
+{
+    if (getDirtyFlag() & (DIRTY_FLAG_DAYLENGTH | DIRTY_FLAG_DAYOFFSET))
+    {
+        clearDirtyFlag(DIRTY_FLAG_DAYOFFSET);
+        clearDirtyFlag(DIRTY_FLAG_DAYLENGTH);
+
+        LLHandle<LLPanel> that_h = getHandle();
+
+        LLEnvironment::instance().updateParcel(getParcelId(), LLSettingsDay::ptr_t(),
+            mCurrentEnvironment->mDayLength.value(), mCurrentEnvironment->mDayOffset.value(), LLEnvironment::altitudes_vect_t(),
+            [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
+
+    }
+}
+
 void LLPanelEnvironmentInfo::onAltSliderCallback(LLUICtrl *cntrl, const LLSD &data)
 {
     LLMultiSliderCtrl *sld = (LLMultiSliderCtrl *)cntrl;
@@ -593,6 +672,7 @@ void LLPanelEnvironmentInfo::onAltSliderCallback(LLUICtrl *cntrl, const LLSD &da
             iter2++;
         }
         iter->second.mAltitudeIndex = new_index;
+
         updateAltLabel(alt_labels[iter->second.mLabelIndex], iter->second.mAltitudeIndex + 1, iter->second.mAltitude);
         iter++;
     }
@@ -601,15 +681,33 @@ void LLPanelEnvironmentInfo::onAltSliderCallback(LLUICtrl *cntrl, const LLSD &da
     setDirtyFlag(DIRTY_FLAG_ALTITUDES);
 }
 
-void LLPanelEnvironmentInfo::onBtnApply()
+void LLPanelEnvironmentInfo::onAltSliderMouseUp()
 {
-    doApply();
+    if (isRegion() && (getDirtyFlag() & DIRTY_FLAG_ALTITUDES))
+    {
+        clearDirtyFlag(DIRTY_FLAG_ALTITUDES);
+
+        LLHandle<LLPanel> that_h = getHandle();
+        LLEnvironment::altitudes_vect_t alts;
+
+        for (auto alt : mAltitudes)
+        {
+            alts.push_back(alt.second.mAltitude);
+        }
+
+        LLEnvironment::instance().updateParcel(getParcelId(), LLSettingsDay::ptr_t(),
+            -1, -1, alts,
+            [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
+
+    }
 }
 
-void LLPanelEnvironmentInfo::onBtnReset()
+void LLPanelEnvironmentInfo::onBtnDefault()
 {
-    mCurrentEnvironment.reset();
-    refreshFromSource();
+    LLHandle<LLPanel> that_h = getHandle();
+
+    LLEnvironment::instance().resetParcel(getParcelId(),
+        [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
 }
 
 void LLPanelEnvironmentInfo::onBtnEdit()
@@ -624,7 +722,13 @@ void LLPanelEnvironmentInfo::onBtnEdit()
 
     dayeditor->openFloater(params);
     if (mCurrentEnvironment && mCurrentEnvironment->mDayCycle)
+    {
         dayeditor->setEditDayCycle(mCurrentEnvironment->mDayCycle);
+        if (!ends_with(mCurrentEnvironment->mDayCycle->getName(), "(customized)"))
+        {
+            dayeditor->setEditName(mCurrentEnvironment->mDayCycle->getName() + "(customized)");
+        }
+    }
     else
         dayeditor->setEditDefaultDayCycle();
 }
@@ -647,62 +751,6 @@ void LLPanelEnvironmentInfo::onBtnSelect()
 }
 
 
-void LLPanelEnvironmentInfo::doApply()
-{
-    S32 parcel_id = getParcelId();
-
-    if (getIsDirtyFlag(DIRTY_FLAG_MASK))
-    {
-        LLHandle<LLPanel> that_h = getHandle();
-        LLEnvironment::altitudes_vect_t alts;
-
-        S32 rdo_selection = getChild<LLRadioGroup>(RDG_ENVIRONMENT_SELECT)->getSelectedIndex();
-
-        if (isRegion() && getIsDirtyFlag(DIRTY_FLAG_ALTITUDES))
-        {
-            altitudes_data_t::iterator it;
-            for (auto alt : mAltitudes)
-            {
-                alts.push_back(alt.second.mAltitude);
-            }
-        }
-
-        if (rdo_selection == 0)
-        {
-            LLEnvironment::instance().resetParcel(parcel_id,
-                [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
-        }
-        else if (rdo_selection == 1)
-        {
-            if (!mCurrentEnvironment)
-            {
-                // Attempting to save mid update?
-                LL_WARNS("ENVPANEL") << "Failed to apply changes from editor! Dirty state: " << mDirtyFlag << " update state: " << mCurEnvVersion << LL_ENDL;
-                return;
-            }
-            LLEnvironment::instance().updateParcel(parcel_id,
-                mCurrentEnvironment->mDayCycle->getAssetId(), std::string(), mCurrentEnvironment->mDayLength.value(), 
-                mCurrentEnvironment->mDayOffset.value(), alts,
-                [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
-        }
-        else
-        {
-            if (!mCurrentEnvironment)
-            {
-                // Attempting to save mid update?
-                LL_WARNS("ENVPANEL") << "Failed to apply changes from editor! Dirty state: " << mDirtyFlag << " update state: " << mCurEnvVersion << LL_ENDL;
-                return;
-            }
-            LLEnvironment::instance().updateParcel(parcel_id,
-                mCurrentEnvironment->mDayCycle, mCurrentEnvironment->mDayLength.value(), mCurrentEnvironment->mDayOffset.value(), alts,
-                [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
-        }
-
-        setControlsEnabled(false);
-    }
-}
-
-
 void LLPanelEnvironmentInfo::udpateApparentTimeOfDay()
 {
     static const F32 SECONDSINDAY(24.0 * 60.0 * 60.0);
@@ -751,16 +799,19 @@ void LLPanelEnvironmentInfo::onPickerCommitted(LLUUID item_id)
     LLInventoryItem *itemp = gInventory.getItem(item_id);
     if (itemp)
     {
-        LLSettingsVOBase::getSettingsAsset(itemp->getAssetUUID(), [this](LLUUID, LLSettingsBase::ptr_t settings, S32 status, LLExtStat) {
-            if (status)
-                return;
-            onPickerAssetDownloaded(settings);
-        });
+        LLHandle<LLPanel> that_h = getHandle();
+
+        LLEnvironment::instance().updateParcel(getParcelId(), itemp->getAssetUUID(),
+            itemp->getName(), 
+            -1, -1, LLEnvironment::altitudes_vect_t(),
+            [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
     }
 }
 
 void LLPanelEnvironmentInfo::onEditCommitted(LLSettingsDay::ptr_t newday)
 {
+    LLEnvironment::instance().clearEnvironment(LLEnvironment::ENV_EDIT);
+    LLEnvironment::instance().updateEnvironment();
     if (!newday)
     {
         LL_WARNS("ENVPANEL") << "Editor committed an empty day. Do nothing." << LL_ENDL;
@@ -777,9 +828,11 @@ void LLPanelEnvironmentInfo::onEditCommitted(LLSettingsDay::ptr_t newday)
 
     if (newhash != oldhash)
     {
-        mCurrentEnvironment->mDayCycle = newday;
-        setDirtyFlag(DIRTY_FLAG_DAYCYCLE);
-        refresh();
+        LLHandle<LLPanel> that_h = getHandle();
+
+        LLEnvironment::instance().updateParcel(getParcelId(), newday,
+            -1, -1, LLEnvironment::altitudes_vect_t(),
+            [that_h](S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo) { _onEnvironmentReceived(that_h, parcel_id, envifo); });
     }
 }
 
@@ -873,6 +926,7 @@ void LLPanelEnvironmentInfo::onEnvironmentReceived(S32 parcel_id, LLEnvironment:
         LL_WARNS("ENVPANEL") << " Environment version was not provided for " << parcel_id << ", old env version: " << mCurEnvVersion << LL_ENDL;
     }
 
+    refreshFromEstate();
     refresh();
 
     // todo: we have envifo and parcel env version, should we just setEnvironment() and parcel's property to prevent dupplicate requests?
diff --git a/indra/newview/llpanelenvironment.h b/indra/newview/llpanelenvironment.h
index 05f25fa78f62eba65f0feec8063223f12209b753..3649abe93940f1f8cb98f342ff8d42473f37cc4e 100644
--- a/indra/newview/llpanelenvironment.h
+++ b/indra/newview/llpanelenvironment.h
@@ -36,6 +36,7 @@
 #include "llparcel.h"
 #include "llsettingspicker.h"
 #include "llfloatereditextdaycycle.h"
+#include "llestateinfomodel.h"
 
 class LLViewerRegion;
 
@@ -62,13 +63,9 @@ class LLPanelEnvironmentInfo : public LLPanel
 protected:
     LOG_CLASS(LLPanelEnvironmentInfo);
 
-    static const std::string    RDG_ENVIRONMENT_SELECT;
-    static const std::string    RDO_USEDEFAULT;
-    static const std::string    RDO_USEINV;
-    static const std::string    RDO_USECUSTOM;
-    static const std::string    EDT_INVNAME;
     static const std::string    BTN_SELECTINV;
     static const std::string    BTN_EDIT;
+    static const std::string    BTN_USEDEFAULT;
     static const std::string    SLD_DAYLENGTH;
     static const std::string    SLD_DAYOFFSET;
     static const std::string    SLD_ALTITUDES;
@@ -91,6 +88,7 @@ class LLPanelEnvironmentInfo : public LLPanel
     static const std::string    STR_NO_PARCEL;
     static const std::string    STR_CROSS_REGION;
     static const std::string    STR_LEGACY;
+    static const std::string    STR_DISALLOWED;
 
     static const U32            DIRTY_FLAG_DAYCYCLE;
     static const U32            DIRTY_FLAG_DAYLENGTH;
@@ -106,32 +104,35 @@ class LLPanelEnvironmentInfo : public LLPanel
     bool                        getIsDirty() const                  { return (mDirtyFlag != 0); }
     bool                        getIsDirtyFlag(U32 flag) const      { return ((mDirtyFlag & flag) != 0); }
     U32                         getDirtyFlag() const                { return mDirtyFlag; }
-    void                        updateAltLabel(const std::string &alt_name, U32 sky_index, F32 alt_value);
+    void updateAltLabel(const std::string &alt_name, U32 sky_index, F32 alt_value);
     void                        readjustAltLabels();
 
-    void                        onSwitchDefaultSelection();
     void                        onSldDayLengthChanged(F32 value);
     void                        onSldDayOffsetChanged(F32 value);
     void                        onAltSliderCallback(LLUICtrl *cntrl, const LLSD &data);
-    void                        onBtnApply();
-    void                        onBtnReset();
+    void                        onAltSliderMouseUp();
+
     void                        onBtnEdit();
     void                        onBtnSelect();
-
-    virtual void                doApply();
+    void                        onBtnDefault();
 
     void                        udpateApparentTimeOfDay();
 
     void                        onPickerCommitted(LLUUID item_id);
     void                        onEditCommitted(LLSettingsDay::ptr_t newday);
+    void                        onDayLenOffsetMouseUp();
+
     void                        onPickerAssetDownloaded(LLSettingsBase::ptr_t settings);
     void                        onEnvironmentReceived(S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo);
     static void                 _onEnvironmentReceived(LLHandle<LLPanel> that_h, S32 parcel_id, LLEnvironment::EnvironmentInfo::ptr_t envifo);
 
+
     virtual void                refreshFromSource() = 0;
 
     std::string                 getInventoryNameForAssetId(LLUUID asset_id);
 
+    std::string                 getNameForTrackIndex(S32 index);
+
     LLFloaterSettingsPicker *   getSettingsPicker(bool create = true);
     LLFloaterEditExtDayCycle *  getEditFloater(bool create = true);
     void                        updateEditFloater(const LLEnvironment::EnvironmentInfo::ptr_t &nextenv, bool enable);
@@ -159,12 +160,15 @@ class LLPanelEnvironmentInfo : public LLPanel
         F32 mAltitude;
     };
     typedef std::map<std::string, AltitudeData>      altitudes_data_t;
-    altitudes_data_t                        mAltitudes;
-    S32                                     mCurEnvVersion; // used to filter duplicate callbacks/refreshes
+    altitudes_data_t                mAltitudes;
+    S32                             mCurEnvVersion; // used to filter duplicate callbacks/refreshes
 
+protected:
+    void                            refreshFromEstate();
+    bool                            mAllowOverride;
 
 private:
-    static void                 onIdlePlay(void *);
+    static void                     onIdlePlay(void *);
 
     typedef boost::signals2::connection connection_t;
 
@@ -178,6 +182,7 @@ class LLPanelEnvironmentInfo : public LLPanel
     bool                            mCrossRegion;
     bool                            mNoSelection;
     bool                            mNoEnvironment;
+
 };
 
 class LLSettingsDropTarget : public LLView
diff --git a/indra/newview/llsettingspicker.cpp b/indra/newview/llsettingspicker.cpp
index b82be3a23e5a8418e3929cdd6db8a4f13afd05ad..d115f6fa4f50033eabecb7419da84ae29a0b9d0a 100644
--- a/indra/newview/llsettingspicker.cpp
+++ b/indra/newview/llsettingspicker.cpp
@@ -105,6 +105,7 @@ BOOL LLFloaterSettingsPicker::postBuild()
 
         mInventoryPanel->setSelectCallback([this](const LLFloaterSettingsPicker::itemlist_t &items, bool useraction){ onSelectionChange(items, useraction); });
         mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
+        mInventoryPanel->setSuppressOpenItemAction(true);
 
         // Disable auto selecting first filtered item because it takes away
         // selection from the item set by LLTextureCtrl owning this floater.
@@ -336,6 +337,24 @@ BOOL LLFloaterSettingsPicker::handleDoubleClick(S32 x, S32 y, MASK mask)
     return result;
 }
 
+BOOL LLFloaterSettingsPicker::handleKeyHere(KEY key, MASK mask)
+{
+    if ((key == KEY_RETURN) && (mask == MASK_NONE))
+    {
+        LLFolderViewItem* item_viewp = mInventoryPanel->getItemByID(mSettingItemID);
+        if (item_viewp && item_viewp->getIsCurSelection())
+        {
+            // Quick-apply
+            if (mCommitSignal)
+                (*mCommitSignal)(this, LLSD(mSettingItemID));
+            closeFloater();
+            return TRUE;
+        }
+    }
+
+    return LLFloater::handleKeyHere(key, mask);
+}
+
 //=========================================================================
 void LLFloaterSettingsPicker::setActive(bool active)
 {
diff --git a/indra/newview/llsettingspicker.h b/indra/newview/llsettingspicker.h
index 434eb04c61f8f248a8a2de3f48b2bb33a02ea5e0..5acc562fe53e741cb364bb932fb27ca7487e8ee0 100644
--- a/indra/newview/llsettingspicker.h
+++ b/indra/newview/llsettingspicker.h
@@ -94,6 +94,7 @@ class LLFloaterSettingsPicker : public LLFloater
     void                    onButtonCancel();
     void                    onButtonSelect();
     virtual BOOL            handleDoubleClick(S32 x, S32 y, MASK mask) override;
+    BOOL                    handleKeyHere(KEY key, MASK mask) override;
 
 
     LLHandle<LLView>        mOwnerHandle;
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp
index 0def17b32df982b7dd15ec19b0fbfa4653e7ba41..6b1a0a2b777dcff1c92542f8f75c268316d6b1c6 100644
--- a/indra/newview/llsettingsvo.cpp
+++ b/indra/newview/llsettingsvo.cpp
@@ -154,23 +154,24 @@ void LLSettingsVOBase::createInventoryItem(const LLSettingsBase::ptr_t &settings
 
 void LLSettingsVOBase::onInventoryItemCreated(const LLUUID &inventoryId, LLSettingsBase::ptr_t settings, inventory_result_fn callback)
 {
+    LLViewerInventoryItem *pitem = gInventory.getItem(inventoryId);
+    if (pitem)
+    {
+        LLPermissions perm = pitem->getPermissions();
+        if (perm.getMaskEveryone() != PERM_COPY)
+        {
+            perm.setMaskEveryone(PERM_COPY);
+            pitem->setPermissions(perm);
+            pitem->updateServer(FALSE);
+        }
+    }
     if (!settings)
     {   // The item was created as new with no settings passed in.  Simulator should have given it the default for the type... check ID, 
         // no need to upload asset.
         LLUUID asset_id;
-        LLViewerInventoryItem *pitem = gInventory.getItem(inventoryId);
-
         if (pitem)
         {
             asset_id = pitem->getAssetUUID();
-
-            LLPermissions perm = pitem->getPermissions();
-            if (perm.getMaskEveryone() != PERM_COPY)
-            {
-                perm.setMaskEveryone(PERM_COPY);
-                pitem->setPermissions(perm);
-                pitem->updateServer(FALSE);
-            }
         }
         if (callback)
             callback(asset_id, inventoryId, LLUUID::null, LLSD());
diff --git a/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml b/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml
index cac6f334c721581d7a795393c4e4da47a796c473..a3dbab2509237d75fdd1a5a589c2aee612aaad51 100644
--- a/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml
+++ b/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml
@@ -241,7 +241,7 @@
                         <multi_slider
                                 decimal_digits="0"
                                 follows="bottom"
-                                height="10"
+                                height="12"
                                 increment="0.005"
                                 overlap_threshold="0.026"
                                 loop_overlap="true"
@@ -252,6 +252,7 @@
                                 max_val="1"
                                 name="WLDayCycleFrames"
                                 show_text="false"
+                                thumb_width="12"
                                 top_pad="15"
                                 width="525" />
 
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 5c08bf50f6f8aaf4772c3c75f845805a56c7b7be..b4cfe9d1b5551697e891f586086e45fd776214ef 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4811,10 +4811,12 @@ Unchecking this option may remove restrictions that parcel owners have added to
    icon="alertmodal.tga"
    name="EstateParcelEnvironmentOverride"
    type="alertmodal">
-Unchecking this option may remove any custom environments that parcel owners have added to their parcels. Please discuss with your parcel owners as needed.
+Unchecking this option will remove any custom environments that parcel owners have added to their parcels. Please discuss with your parcel owners as needed.
+Do you wish to proceed?
     <tag>confirm</tag>
     <usetemplate
-     name="okbutton"
+     name="okcancelbuttons"
+     notext="Cancel"
      yestext="OK"/>
   </notification>
   
diff --git a/indra/newview/skins/default/xui/en/panel_region_environment.xml b/indra/newview/skins/default/xui/en/panel_region_environment.xml
index 2f91252d9b1344f270ebdea9cc7458bbd0f66860..7c08262d50a29cea9df68fdb7a626c33483d3cf1 100644
--- a/indra/newview/skins/default/xui/en/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_environment.xml
@@ -16,6 +16,8 @@
     <string name="str_no_parcel">No parcel is selected. Environmental settings are disabled.</string>
     <string name="str_cross_region">Environmental settings are not available across region boundries.</string>
     <string name="str_legacy">Environmental settings are not available on this region.</string>
+    <string name="str_disallowed">The estate manager does not allow changing parcel environments in this region.</string>
+    <string name="str_empty">(empty)</string>
     <layout_stack 
             width="530"
             height="367"
@@ -29,14 +31,422 @@
                 name="pnl_environment_disabled"
                 visible="false">
             <text follows="top|left|bottom|right"
-                            halign="center"
-                            valign="top"
-                            top_pad="40"
-                            name="txt_environment_disabled"
-                            text_color="white">
-            ...
+                    halign="center"
+                    valign="top"
+                    top_pad="40"
+                    name="txt_environment_disabled"
+                    text_color="white">
+                ...
             </text>
         </layout_panel>
+        <layout_panel
+                auto_resize="true"
+                user_resize="false"
+                min_height="0"
+                name="pnl_environment_config"
+                visible="true">
+            <layout_stack 
+                    xxxwidth="530"
+                    xxxheight="367"
+                    follows="all"
+                    layout="topleft"
+                    animate="false"
+                    orientation="horizontal">
+                <layout_panel
+                        auto_resize="true"
+                        user_resize="false"
+                        min_height="0"
+                        top="5"
+                        name="pnl_environment_altitudes"
+                        visible="true">
+                        <text follows="top|left"
+                                font="SansSerif"
+                                halign="left"
+                                text_color="white"
+                                left="5"
+                                top="2">Sky Altitudes</text>
+                        <multi_slider
+                                height="270"
+                                follows="top|left"
+                                orientation="vertical"
+                                increment="25"
+                                min_val="100"
+                                max_val="4000"
+                                thumb_image="Inv_SettingsSky"
+                                thumb_width="17"
+                                thumb_highlight_color="white"
+                                decimal_digits="0"
+                                draw_track="true"
+                                overlap_threshold="100"
+                                initial_value="0"
+                                layout="topleft"
+                                left="10"
+                                max_sliders="3"
+                                name="sld_altitudes"
+                                show_text="false"
+                                top_pad="20"
+                                use_triangle="false"
+                                width="17">
+                            <slider name="sld1"
+                                    value="1000"/>
+                            <slider name="sld2"
+                                    value="2000"/>
+                            <slider name="sld3"
+                                    value="3000"/>
+                        </multi_slider>
+                        <icon
+                                follows="top|left"
+                                height="17"
+                                width="17"
+                                image_name="Inv_SettingsSky"
+                                layout="topleft"
+                                name="icon_ground"
+                                mouse_opaque="false"
+                                visible="true"
+                                left="10"
+                                xxxleft_delta="0"
+                                top_pad="10"/>
+                        <text
+                                type="string"
+                                length="1"
+                                follows="left|top"
+                                height="12"
+                                layout="topleft"
+                                left_pad="8"
+                                top_delta="2"
+                                width="50"
+                                name="ground_name">
+                            Ground
+                        </text>
+                    <line_editor
+                            follows="top|right"
+                            enabled="false"
+                            top_delta="-3"
+                            right="-5"
+                            xxxleft="-160"
+                            height="20"
+                            layout="topleft"
+                            name="edt_invname_ground"
+                            width="155">
+                        Unknown
+                    </line_editor>
+                    <settings_drop_target
+                            height="20"
+                            top_delta="0"
+                            left_delta="0"
+                            follows="top|left"
+                            layout="topleft"
+                            name="sdt_ground"
+                            tool_tip="Drag a setting from Inventory onto this target box to select it as the ground level sky."
+                            width="155" />
+                        
+                        <icon
+                                follows="left|top"
+                                height="17"
+                                width="17"
+                                image_name="Inv_SettingsWater"
+                                layout="topleft"
+                                name="icon_water"
+                                mouse_opaque="false"
+                                visible="true"
+                                left="10"
+                                top_pad="10"/>
+                        <text
+                                type="string"
+                                length="1"
+                                follows="left|top"
+                                height="12"
+                                layout="topleft"
+                                left_pad="8"
+                                top_delta="2"
+                                width="200"
+                                name="water_name">
+                            Water
+                        </text>
+                    <line_editor
+                            follows="top|right"
+                            enabled="false"
+                            top_delta="-3"
+                            right="-5"
+                            xxxleft="-160"
+                            height="20"
+                            layout="topleft"
+                            name="edt_invname_water"
+                            width="155">
+                        Unknown
+                    </line_editor>
+                    <settings_drop_target
+                            height="20"
+                            top_delta="0"
+                            left_delta="0"
+                            follows="top|left"
+                            layout="topleft"
+                            name="sdt_water"
+                            tool_tip="Drag a setting from Inventory onto this target box to select it as current water."
+                            width="155" />
+                        
+                        <text
+                                type="string"
+                                length="1"
+                                follows="left"
+                                height="12"
+                                layout="topleft"
+                                left="35"
+                                top="30"
+                                width="200"
+                                name="alt1">
+                            Sky [INDEX]([ALTITUDE]m)
+                        </text>
+                    <line_editor
+                            follows="top|right"
+                            enabled="false"
+                            top_delta="-3"
+                            right="-5"
+                            xxxleft="-160"
+                            height="20"
+                            layout="topleft"
+                            name="edt_invname_alt1"
+                            width="155">
+                        Unknown
+                    </line_editor>
+                    <settings_drop_target
+                            height="20"
+                            top_delta="0"
+                            left_delta="0"
+                            follows="top|left"
+                            layout="topleft"
+                            name="sdt_alt2"
+                            tool_tip="Drag a setting from Inventory onto this target box to select it as current water."
+                            width="155" />
+                        
+                        <text
+                                type="string"
+                                length="1"
+                                follows="left|top"
+                                height="12"
+                                layout="topleft"
+                                left="35"
+                                top="40"
+                                width="200"
+                                name="alt2">
+                            Sky [INDEX]([ALTITUDE]m)
+                        </text>
+                    <line_editor
+                            follows="top|right"
+                            enabled="false"
+                            top_delta="-3"
+                            right="-5"
+                            xxxleft="-160"
+                            height="20"
+                            layout="topleft"
+                            name="edt_invname_alt2"
+                            width="155">
+                        Unknown
+                    </line_editor>
+                    <settings_drop_target
+                            height="20"
+                            top_delta="0"
+                            left_delta="0"
+                            follows="top|left"
+                            layout="topleft"
+                            name="sdt_alt2"
+                            tool_tip="Drag a setting from Inventory onto this target box to select it as current water."
+                            width="155" />
+                        
+                        <text
+                                type="string"
+                                length="1"
+                                follows="left|top"
+                                height="12"
+                                layout="topleft"
+                                left="35"
+                                top="50"
+                                width="200"
+                                name="alt3">
+                            Sky [INDEX]([ALTITUDE]m)
+                        </text>
+                    <line_editor
+                            follows="top|right"
+                            enabled="false"
+                            top_delta="-3"
+                            right="-5"
+                            xxxleft="-160"
+                            height="20"
+                            layout="topleft"
+                            name="edt_invname_alt3"
+                            width="155">
+                        Unknown
+                    </line_editor>
+                    <settings_drop_target
+                            height="20"
+                            top_delta="0"
+                            left_delta="0"
+                            follows="top|left"
+                            layout="topleft"
+                            name="sdt_alt3"
+                            tool_tip="Drag a setting from Inventory onto this target box to select it as current water."
+                            width="155" />
+                        
+                </layout_panel>                    
+                <layout_panel
+                        auto_resize="true"
+                        user_resize="false"
+                        min_height="0"
+                        top="5"
+                        name="pnl_environment_config"
+                        visible="true">
+                    <layout_stack
+                            follows="all"
+                            layout="topleft"
+                            animate="false"
+                            orientation="vertical">
+                        <layout_panel
+                                min_height="140"
+                                follows="all"
+                                border="true"
+                                bevel_style="in"
+                                name="pnl_environment_current">
+                            <text follows="top|left"
+                                    font="SansSerif"
+                                    halign="left"
+                                    text_color="white"
+                                    top="2">Select Environment</text>
+                            <button
+                                    follows="top|left"
+                                    top_pad="20"
+                                    left_delta="10"
+                                    layout="topleft"
+                                    height="23"
+                                    label="[USEDEFAULT]"
+                                    width="120"
+                                    name="btn_usedefault"/>
+                            <button
+                                    follows="top|left"
+                                    top_pad="5"
+                                    left_delta="0"
+                                    layout="topleft"
+                                    height="23"
+                                    label="Use Inventory"
+                                    width="120"
+                                    name="btn_select_inventory"/>
+                            <button
+                                    follows="top|left"
+                                    top_pad="5"
+                                    left_delta="0"
+                                    layout="topleft"
+                                    height="23"
+                                    label="Customize"
+                                    width="120"
+                                    name="btn_edit"/>
+                            <check_box
+                                    height="20"
+                                    label="Parcel Owners May Override Environment"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    top_pad="10"
+                                    name="chk_allow_override"
+                                    width="200" />
+                        </layout_panel>
+                        <layout_panel
+                                min_height="130"
+                                follows="all"
+                                border="true"
+                                bevel_style="in"
+                                name="pnl_environment_length">
+                            <text 
+                                    font="SansSerif"
+                                    follows="top|left|right"
+                                    halign="left"
+                                    text_color="white"
+                                    top="2">Day Settings</text>
+                            <text
+                                    type="string"
+                                    length="1"
+                                    follows="left|top"
+                                    height="12"
+                                    layout="topleft"
+                                    left_delta="10"
+                                    top_pad="16"
+                                    width="200">
+                                Day Length (hours)
+                            </text>
+                            <slider
+                                    can_edit_text="true"
+                                    decimal_digits="1"
+                                    follows="left|top"
+                                    height="20"
+                                    increment="0.5"
+                                    initial_value="4"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    xxxright="-10"
+                                    top_pad="0"
+                                    name="sld_day_length"
+                                    min_val="4"
+                                    max_val="168"
+                                    width="237" />
+                            <text
+                                    type="string"
+                                    length="1"
+                                    follows="left|top"
+                                    height="12"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    top_pad="5"
+                                    width="200">
+                                Day Offset (hours)
+                            </text>
+                            <slider
+                                    can_edit_text="true"
+                                    decimal_digits="1"
+                                    follows="left|top"
+                                    height="20"
+                                    increment="0.5"
+                                    initial_value="-8"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    top_pad="0"
+                                    name="sld_day_offset"
+                                    min_val="-11.5"
+                                    max_val="12"
+                                    width="237" />
+                            <text
+                                    type="string"
+                                    length="1"
+                                    follows="left|top"
+                                    height="12"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    top_pad="5"
+                                    width="200">
+                                Apparent Time of Day:
+                            </text>
+                            <text
+                                    name="lbl_apparent_time"
+                                    type="string"
+                                    length="1"
+                                    follows="left|top"
+                                    height="12"
+                                    layout="topleft"
+                                    left_delta="10"
+                                    top_pad="5"
+                                    width="200">
+                                [HH]:[MM][AP] ([PRC]%)
+                            </text>
+                        </layout_panel>
+                        <layout_panel
+                                follows="bottom"
+                                border="true"
+                                bevel_style="in"
+                                name="pnl_environment_buttons">
+<!-- used to be buttons, but now spacer.
+-->
+                        </layout_panel>
+                    </layout_stack>
+                </layout_panel>
+            </layout_stack>        
+        </layout_panel>
+        <!--
         <layout_panel 
                 auto_resize="false"
                 user_resize="false"
@@ -103,13 +513,13 @@
                         Unknown
                     </line_editor>
                     <settings_drop_target
-                     height="20"
-                     top_pad="-20"
-                     follows="top|left"
-                     layout="topleft"
-                     name="sdt_drop_target"
-                     tool_tip="Drag a setting from Inventory onto this target box to select it as current evironment."
-                     width="200" />
+                            height="20"
+                            top_pad="-20"
+                            follows="top|left"
+                            layout="topleft"
+                            name="sdt_drop_target"
+                            tool_tip="Drag a setting from Inventory onto this target box to select it as current evironment."
+                            width="200" />
                     <button
                             name="btn_select_inventory"
                             follows="top|left"
@@ -231,54 +641,57 @@
                 name="pnl_environment_altitudes"
                 visible="true">
             <panel
-                left="5"
-                top="0"
-                bottom="-1"
-                width="260"
-                follows="left|top|bottom"
-                background_visible="true"
-                border="true"
-                bevel_style="in"
-                name="cnt_panel">
+                    left="5"
+                    top="0"
+                    bottom="-1"
+                    width="260"
+                    follows="left|top|bottom"
+                    background_visible="true"
+                    border="true"
+                    bevel_style="in"
+                    name="cnt_panel">
                 <text follows="top|left"
-                    font="SansSerif"
-                    halign="left"
-                    text_color="white"
-                    top="2">Sky Altitudes</text>
+                        font="SansSerif"
+                        halign="left"
+                        text_color="white"
+                        top="2">Sky Altitudes</text>
                 <multi_slider
-                    decimal_digits="0"
-                    follows="bottom"
-                    height="123"
-                    width="17"
-                    orientation="vertical"
-                    increment="10"
-                    overlap_threshold="100"
-                    min_val="100"
-                    max_val="4000"
-                    layout="topleft"
-                    left="15"
-                    top="20"
-                    max_sliders="20"
-                    name="sld_altitudes"
-                    show_text="false"
-                    thumb_image="Inv_SettingsSky"
-                    thumb_width="17"
-                    thumb_highlight_color="white">
-                    <slider name="sld1" value="200"/>
-                    <slider name="sld2" value="400"/>
-                    <slider name="sld3" value="600"/>
+                        decimal_digits="0"
+                        follows="bottom"
+                        height="123"
+                        width="17"
+                        orientation="vertical"
+                        increment="10"
+                        overlap_threshold="100"
+                        min_val="100"
+                        max_val="4000"
+                        layout="topleft"
+                        left="15"
+                        top="20"
+                        max_sliders="20"
+                        name="sld_altitudes"
+                        show_text="false"
+                        thumb_image="Inv_SettingsSky"
+                        thumb_width="17"
+                        thumb_highlight_color="white">
+                    <slider name="sld1"
+                            value="200"/>
+                    <slider name="sld2"
+                            value="400"/>
+                    <slider name="sld3"
+                            value="600"/>
                 </multi_slider>
                 <icon
-                    follows="left|top"
-                    height="17"
-                    width="17"
-                    image_name="Inv_SettingsSky"
-                    layout="topleft"
-                    name="icon_ground"
-                    mouse_opaque="false"
-                    visible="true"
-                    left_delta="0"
-                    top_pad="-9"/>
+                        follows="left|top"
+                        height="17"
+                        width="17"
+                        image_name="Inv_SettingsSky"
+                        layout="topleft"
+                        name="icon_ground"
+                        mouse_opaque="false"
+                        visible="true"
+                        left_delta="0"
+                        top_pad="-9"/>
                 <text
                         type="string"
                         length="1"
@@ -368,5 +781,6 @@
                     width="100" /> 
 
         </layout_panel>
+-->
     </layout_stack>
 </panel>