diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 45bb07acfa2617734c4a4a37be2355eec2ad77c5..81caf9fbd4a46b42f890804a891aeb6033914c1f 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -175,6 +175,7 @@ set(viewer_SOURCE_FILES
     llfloaterdaycycle.cpp
     llfloaterdisplayname.cpp
     llfloaterenvsettings.cpp
+    llfloaterenvironmentsettings.cpp
     llfloaterevent.cpp
     llfloaterfonttest.cpp
     llfloatergesture.cpp
@@ -722,6 +723,7 @@ set(viewer_HEADER_FILES
     llfloaterdaycycle.h
     llfloaterdisplayname.h
     llfloaterenvsettings.h
+    llfloaterenvironmentsettings.h
     llfloaterevent.h
     llfloaterfonttest.h
     llfloatergesture.h
diff --git a/indra/newview/llenvmanager.cpp b/indra/newview/llenvmanager.cpp
index dfec6c4b9d5984a173ff9b977930bb5d9df1fb0e..bc1e0f8b142eadc97a328fa6a0956d06eebb93fc 100644
--- a/indra/newview/llenvmanager.cpp
+++ b/indra/newview/llenvmanager.cpp
@@ -82,6 +82,7 @@ void LLEnvManager::changedRegion(bool interp)
 	mInterpNextChangeMessage = interp;
 	mPendingOutgoingMessage = false;
 
+	LLFloaterReg::hideInstance("old_env_settings");
 	LLFloaterReg::hideInstance("env_settings");
 
 	resetInternalsToDefault(LLEnvKey::SCOPE_REGION);
@@ -733,6 +734,25 @@ void LLEnvManagerNew::saveUserPrefs()
 	gSavedSettings.setBOOL("UseDayCycle",				getUseDayCycle());
 }
 
+void LLEnvManagerNew::setUserPrefs(
+	const std::string& water_preset,
+	const std::string& sky_preset,
+	const std::string& day_cycle_preset,
+	bool use_fixed_sky,
+	bool use_region_settings)
+{
+	// operate on members directly to avoid side effects
+	mUserPrefs.mWaterPresetName	= water_preset;
+	mUserPrefs.mSkyPresetName	= sky_preset;
+	mUserPrefs.mDayCycleName	= day_cycle_preset;
+
+	mUserPrefs.mUseDefaults		= use_region_settings;
+	mUserPrefs.mUseDayCycle		= !use_fixed_sky;
+
+	saveUserPrefs();
+	updateManagersFromPrefs(false);
+}
+
 void LLEnvManagerNew::dumpUserPrefs()
 {
 	LL_DEBUGS("Windlight") << "WaterPresetName: "	<< gSavedSettings.getString("WaterPresetName") << LL_ENDL;
diff --git a/indra/newview/llenvmanager.h b/indra/newview/llenvmanager.h
index b871ebc06f027e8b8414cb4ca91a72fe7bd6ea36..1f005ecce215c5e5d6405bba3184847116886570 100644
--- a/indra/newview/llenvmanager.h
+++ b/indra/newview/llenvmanager.h
@@ -276,6 +276,12 @@ class LLEnvManagerNew : public LLSingleton<LLEnvManagerNew>
 
 	void loadUserPrefs();
 	void saveUserPrefs();
+	void setUserPrefs(
+		const std::string& water_preset,
+		const std::string& sky_preset,
+		const std::string& day_cycle_preset,
+		bool use_fixed_sky,
+		bool use_region_settings);
 	void dumpUserPrefs();
 
 	void onRegionCrossing();
diff --git a/indra/newview/llfloaterenvironmentsettings.cpp b/indra/newview/llfloaterenvironmentsettings.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..cbbbed983016266d83b6728760cf96a217fe95b5
--- /dev/null
+++ b/indra/newview/llfloaterenvironmentsettings.cpp
@@ -0,0 +1,209 @@
+/** 
+ * @file llfloaterenvironmentsettings.cpp
+ * @brief LLFloaterEnvironmentSettings class definition
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterenvironmentsettings.h"
+
+#include "llcombobox.h"
+#include "llradiogroup.h"
+
+#include "llenvmanager.h"
+#include "llwaterparammanager.h"
+#include "llwlparamset.h"
+#include "llwlparammanager.h"
+
+LLFloaterEnvironmentSettings::LLFloaterEnvironmentSettings(const LLSD &key)
+: 	 LLFloater(key)
+	,mRegionSettingsRadioGroup(NULL)
+	,mDayCycleSettingsRadioGroup(NULL)
+	,mWaterPresetCombo(NULL)
+	,mSkyPresetCombo(NULL)
+	,mDayCyclePresetCombo(NULL)
+{	
+}
+
+LLFloaterEnvironmentSettings::~LLFloaterEnvironmentSettings()
+{
+}
+
+// virtual
+BOOL LLFloaterEnvironmentSettings::postBuild()
+{	
+	mRegionSettingsRadioGroup = getChild<LLRadioGroup>("region_settings_radio_group");
+	mRegionSettingsRadioGroup->setCommitCallback(boost::bind(&LLFloaterEnvironmentSettings::onSwitchRegionSettings, this));
+
+	mDayCycleSettingsRadioGroup = getChild<LLRadioGroup>("sky_dayc_settings_radio_group");
+	mDayCycleSettingsRadioGroup->setCommitCallback(boost::bind(&LLFloaterEnvironmentSettings::onSwitchDayCycle, this));
+
+	mWaterPresetCombo = getChild<LLComboBox>("water_settings_preset_combo");
+	mWaterPresetCombo->setCommitCallback(boost::bind(&LLFloaterEnvironmentSettings::onSelectWaterPreset, this));
+
+	mSkyPresetCombo = getChild<LLComboBox>("sky_settings_preset_combo");
+	mSkyPresetCombo->setCommitCallback(boost::bind(&LLFloaterEnvironmentSettings::onSelectSkyPreset, this));
+
+	mDayCyclePresetCombo = getChild<LLComboBox>("dayc_settings_preset_combo");
+	mDayCyclePresetCombo->setCommitCallback(boost::bind(&LLFloaterEnvironmentSettings::onSelectDayCyclePreset, this));
+
+	childSetCommitCallback("ok_btn", boost::bind(&LLFloaterEnvironmentSettings::onBtnOK, this), NULL);
+	childSetCommitCallback("cancel_btn", boost::bind(&LLFloaterEnvironmentSettings::onBtnCancel, this), NULL);
+
+	setCloseCallback(boost::bind(&LLFloaterEnvironmentSettings::cancel, this));
+
+	return TRUE;
+}
+
+// virtual
+void LLFloaterEnvironmentSettings::onOpen(const LLSD& key)
+{
+	LLEnvManagerNew *env_mgr = LLEnvManagerNew::getInstance();
+
+	// Save UseRegionSettings and UseFixedSky settings to restore them
+	// in case of "Cancel" button has been pressed.
+	mUseRegionSettings = env_mgr->getUseRegionSettings();
+	mUseFixedSky = env_mgr->getUseFixedSky();
+
+	mRegionSettingsRadioGroup->setSelectedIndex(mUseRegionSettings ? 0 : 1);
+	mDayCycleSettingsRadioGroup->setSelectedIndex(mUseFixedSky ? 0 : 1);
+
+	// Update other controls state based on the selected radio buttons.
+	onSwitchRegionSettings();
+	onSwitchDayCycle();
+
+	// Populate the combo boxes with appropriate lists of available presets.
+	populateWaterPresetsList();
+	populateSkyPresetsList();
+	populateDayCyclePresetsList();
+
+	// Save water, sky and day cycle presets to restore them
+	// in case of "Cancel" button has been pressed.
+	mWaterPreset = env_mgr->getWaterPresetName();
+	mSkyPreset = env_mgr->getSkyPresetName();
+	mDayCyclePreset = env_mgr->getDayCycleName();
+
+	// Select the current presets in combo boxes.
+	mWaterPresetCombo->selectByValue(mWaterPreset);
+	mSkyPresetCombo->selectByValue(mSkyPreset);
+	mDayCyclePresetCombo->selectByValue(mDayCyclePreset);
+
+	mDirty = false;
+}
+
+void LLFloaterEnvironmentSettings::onSwitchRegionSettings()
+{
+	getChild<LLView>("user_environment_settings")->setEnabled(mRegionSettingsRadioGroup->getSelectedIndex() != 0);
+
+	LLEnvManagerNew::getInstance()->setUseRegionSettings(mRegionSettingsRadioGroup->getSelectedIndex() == 0);
+
+	mDirty = true;
+}
+
+void LLFloaterEnvironmentSettings::onSwitchDayCycle()
+{
+	bool is_fixed_sky = mDayCycleSettingsRadioGroup->getSelectedIndex() == 0;
+
+	mSkyPresetCombo->setEnabled(is_fixed_sky);
+	mDayCyclePresetCombo->setEnabled(!is_fixed_sky);
+
+	if (is_fixed_sky)
+	{
+		LLEnvManagerNew::getInstance()->setUseSkyPreset(mSkyPresetCombo->getValue().asString());
+	}
+	else
+	{
+		LLEnvManagerNew::getInstance()->setUseDayCycle(mDayCyclePresetCombo->getValue().asString());
+	}
+
+	mDirty = true;
+}
+
+void LLFloaterEnvironmentSettings::onSelectWaterPreset()
+{
+	LLEnvManagerNew::getInstance()->setUseWaterPreset(mWaterPresetCombo->getValue().asString());
+	mDirty = true;
+}
+
+void LLFloaterEnvironmentSettings::onSelectSkyPreset()
+{
+	LLEnvManagerNew::getInstance()->setUseSkyPreset(mSkyPresetCombo->getValue().asString());
+	mDirty = true;
+}
+
+void LLFloaterEnvironmentSettings::onSelectDayCyclePreset()
+{
+	LLEnvManagerNew::getInstance()->setUseDayCycle(mDayCyclePresetCombo->getValue().asString());
+	mDirty = true;
+}
+
+void LLFloaterEnvironmentSettings::onBtnOK()
+{
+	mDirty = false;
+	closeFloater();
+}
+
+void LLFloaterEnvironmentSettings::onBtnCancel()
+{
+	cancel();
+	closeFloater();
+}
+
+void LLFloaterEnvironmentSettings::cancel()
+{
+	if (!mDirty) return;
+
+	// Restore the saved user prefs
+	LLEnvManagerNew::getInstance()->setUserPrefs(mWaterPreset, mSkyPreset, mDayCyclePreset, mUseFixedSky, mUseRegionSettings);
+}
+
+void LLFloaterEnvironmentSettings::populateWaterPresetsList()
+{
+	mWaterPresetCombo->removeall();
+
+	const std::map<std::string, LLWaterParamSet> &water_params_map = LLWaterParamManager::getInstance()->mParamList;
+	for (std::map<std::string, LLWaterParamSet>::const_iterator it = water_params_map.begin(); it != water_params_map.end(); it++)
+	{
+		mWaterPresetCombo->add(it->first);
+	}
+}
+
+void LLFloaterEnvironmentSettings::populateSkyPresetsList()
+{
+	mSkyPresetCombo->removeall();
+
+	const std::map<LLWLParamKey, LLWLParamSet> &sky_params_map = LLWLParamManager::getInstance()->mParamList;
+	for (std::map<LLWLParamKey, LLWLParamSet>::const_iterator it = sky_params_map.begin(); it != sky_params_map.end(); it++)
+	{
+		mSkyPresetCombo->add(it->first.name);
+	}
+}
+
+void LLFloaterEnvironmentSettings::populateDayCyclePresetsList()
+{
+	mDayCyclePresetCombo->removeall();
+
+	std::string day_cycle_name = LLEnvManagerNew::getInstance()->getDayCycleName();
+	mDayCyclePresetCombo->add(day_cycle_name);
+}
diff --git a/indra/newview/llfloaterenvironmentsettings.h b/indra/newview/llfloaterenvironmentsettings.h
new file mode 100644
index 0000000000000000000000000000000000000000..0953ab4a65449e76dfb3a96053397d8a7c231d63
--- /dev/null
+++ b/indra/newview/llfloaterenvironmentsettings.h
@@ -0,0 +1,78 @@
+/** 
+ * @file llfloaterenvironmentsettings.h
+ * @brief LLFloaterEnvironmentSettings class definition
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLFLOATERENVIRONMENTSETTINGS_H
+#define LL_LLFLOATERENVIRONMENTSETTINGS_H
+
+#include "llfloater.h"
+
+class LLComboBox;
+class LLRadioGroup;
+
+class LLFloaterEnvironmentSettings : public LLFloater
+{
+	LOG_CLASS(LLFloaterEnvironmentSettings);
+
+public:
+	LLFloaterEnvironmentSettings(const LLSD &key);
+	/*virtual*/ ~LLFloaterEnvironmentSettings();
+	/*virtual*/	BOOL	postBuild();	
+	/*virtual*/ void	onOpen(const LLSD& key);
+
+private:
+	void onSwitchRegionSettings();
+	void onSwitchDayCycle();
+
+	void onSelectWaterPreset();
+	void onSelectSkyPreset();
+	void onSelectDayCyclePreset();
+
+	void onBtnOK();
+	void onBtnCancel();
+
+	void cancel();
+
+	void populateWaterPresetsList();
+	void populateSkyPresetsList();
+	void populateDayCyclePresetsList();
+
+	LLRadioGroup*	mRegionSettingsRadioGroup;
+	LLRadioGroup*	mDayCycleSettingsRadioGroup;
+
+	LLComboBox*		mWaterPresetCombo;
+	LLComboBox*		mSkyPresetCombo;
+	LLComboBox*		mDayCyclePresetCombo;
+
+	std::string 	mWaterPreset;
+	std::string 	mSkyPreset;
+	std::string 	mDayCyclePreset;
+
+	bool 			mUseRegionSettings;
+	bool 			mUseFixedSky;
+	bool			mDirty;
+};
+
+#endif // LL_LLFLOATERENVIRONMENTSETTINGS_H
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 6dc85799ce2dbaa1bca1f39d2477a8ff9278eaf0..a6dee5a55336924495db3202166a9ed7851938f7 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -50,6 +50,7 @@
 #include "llfloatercamera.h"
 #include "llfloaterdaycycle.h"
 #include "llfloaterdisplayname.h"
+#include "llfloaterenvironmentsettings.h"
 #include "llfloaterevent.h"
 #include "llfloatersearch.h"
 #include "llfloaterenvsettings.h"
@@ -154,7 +155,8 @@ void LLViewerFloaterReg::registerFloaters()
 
 	LLFloaterReg::add("env_day_cycle", "floater_day_cycle_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDayCycle>);
 	LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostProcess>);
-	LLFloaterReg::add("env_settings", "floater_env_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEnvSettings>);
+	LLFloaterReg::add("old_env_settings", "floater_env_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEnvSettings>);
+	LLFloaterReg::add("env_settings", "floater_environment_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEnvironmentSettings>);
 	LLFloaterReg::add("env_water", "floater_water.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWater>);
 	LLFloaterReg::add("env_windlight", "floater_windlight_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWindLight>);
 
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 4acf9a1faddcaf3c882df865adeeeb6389c7318a..0edba58755656c459e2895ab92f94ce43c38f216 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -7579,10 +7579,16 @@ class LLWorldEnvSettings : public view_listener_t
 		std::string tod = userdata.asString();
 		LLVector3 sun_direction;
 		
-		if (tod == "editor")
+		if (tod == "old_editor")
 		{
 			// if not there or is hidden, show it
 			// *TODO replace with LLFloaterWindLight::show(LLEnvKey::SCOPE_LOCAL) to make sure we're using the right scope?
+			LLFloaterReg::toggleInstance("old_env_settings");
+			return true;
+		}
+
+		if (tod == "editor")
+		{
 			LLFloaterReg::toggleInstance("env_settings");
 			return true;
 		}
@@ -7612,38 +7618,6 @@ class LLWorldEnvSettings : public view_listener_t
 	}
 };
 
-class LLWorldCheckEnvironment : public view_listener_t
-{
-	bool handleEvent(const LLSD& userdata)
-	{
-		const std::string& item = userdata.asString();
-
-		if (item == "use_region_settings")
-		{
-			// Check whether we're using region environment settings.
-			return LLEnvManagerNew::instance().getUseRegionSettings();
-		}
-
-		return true;
-	}
-};
-
-class LLWorldEnvironment : public view_listener_t
-{
-	bool handleEvent(const LLSD& userdata)
-	{
-		const std::string& item = userdata.asString();
-
-		if (item == "use_region_settings")
-		{
-			bool cur_val = LLEnvManagerNew::instance().getUseRegionSettings();
-			LLEnvManagerNew::instance().setUseRegionSettings(!cur_val);
-		}
-
-		return true;
-	}
-};
-
 /// Post-Process callbacks
 class LLWorldPostProcess : public view_listener_t
 {
@@ -7892,8 +7866,6 @@ void initialize_menus()
 	view_listener_t::addMenu(new LLWorldCheckAlwaysRun(), "World.CheckAlwaysRun");
 	
 	view_listener_t::addMenu(new LLWorldEnvSettings(), "World.EnvSettings");
-	view_listener_t::addEnable(new LLWorldCheckEnvironment(), "World.CheckEnvironment");
-	view_listener_t::addMenu(new LLWorldEnvironment(), "World.Environment");
 	view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");
 	view_listener_t::addMenu(new LLWorldDayCycle(), "World.DayCycle");
 
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index 0913c4dec279944b113774636d0dea3dd59a7800..7af17a8d0ba5f20ca049c03f5cf8ee8decd627a2 100644
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
@@ -547,7 +547,7 @@ void LLWLParamManager::update(LLViewerCamera * cam)
 	{
 		dlfloater->syncMenu();
 	}
-	LLFloaterEnvSettings* envfloater = LLFloaterReg::findTypedInstance<LLFloaterEnvSettings>("env_settings");
+	LLFloaterEnvSettings* envfloater = LLFloaterReg::findTypedInstance<LLFloaterEnvSettings>("old_env_settings");
 	if (envfloater)
 	{
 		envfloater->syncMenu();
diff --git a/indra/newview/skins/default/xui/en/floater_environment_settings.xml b/indra/newview/skins/default/xui/en/floater_environment_settings.xml
index 77cad2a2bd78aa6c993f99ab30a392d21dfc2538..8460530f97d422ce7fabb3ac637b7cc41027af58 100644
--- a/indra/newview/skins/default/xui/en/floater_environment_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_environment_settings.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  legacy_header_height="18"
- height="400"
+ height="350"
  layout="topleft"
  name="Environment Editor Floater"
  help_topic="environment_editor_floater"
@@ -9,100 +9,80 @@
  title="ENVIRONMENT EDITOR"
  width="600">
  
- <!-- Water Settings -->
  <view_border
   bevel_style="none"  
   follows="top|left"
-  height="100"
+  height="237"
   layout="topleft"
   left="50"
-  name="water_panel"
+  name="border"
   top="50"
-  width="500"/> 
- <text
-  name="water_settings_title"
+  width="500"/>  
+ <radio_group
   follows="top|left"
-  height="16"
+  height="45"
   layout="topleft"
-  left_delta="5"
-  top_delta="5"
-  width="35">
-  		Water
-  </text>
-  
-  <radio_group
-   follows="top|left"
-   height="45"
-   layout="topleft"
-   name="water_settings_radio_group"   
-   top_pad="20"
-   width="200">
-  	<radio_item  	 
+  left_delta="10"
+  name="region_settings_radio_group"
+  top_delta="20"
+  width="200">
+    <radio_item
   	 label="Use region settings"
   	 layout="topleft"
-  	 name="region_water_settings"/>
-  	<radio_item  	 
+  	 name="use_region_settings"/>
+    <radio_item
   	 label="Use my settings"
   	 layout="topleft"
-  	 name="my_water_settings"
-  	 top_pad="20"/>  	
+  	 name="use_my_settings"
+  	 top_pad="20"/>
   </radio_group>
+
+ <panel
+  height="170"
+  layout="topleft"
+  left="50"
+  name="user_environment_settings"
+  top_pad="0"
+  width="500">
+
+ <!-- Water Setting -->
+ <text
+  name="water_settings_title"
+  follows="top|left"
+  height="16"
+  layout="topleft"
+  left="50"
+  top_pad="30"
+  width="200">
+  		Water Setting
+  </text>
   <combo_box
    follows="top|left"
    left_pad="2"
    name="water_settings_preset_combo"
-   top_delta="24"
+   top_delta="-7"
    width="200">
       <combo_box.item
        label="-Select a preset-"
-       name="item0"
-       value="any" />
+       name="item0"/>
   </combo_box>
  
- 
+
  <!-- Sky/Day Cycle Settings -->  
- <view_border
-  bevel_style="none"  
-  follows="top|left"
-  height="180"
-  layout="topleft"
-  left="50"
-  name="sky_dayc_panel"
-  top="175"
-  width="500"/> 
  <text
   name="sky_dayc_settings_title"
   follows="top|left"
   height="16"
   layout="topleft"
-  left="55"
-  top_delta="5"
+  left="50"
+  top_pad="30"
   width="100">
   		Sky / Day Cycle
   </text>
-  
-  <radio_group
-   follows="top|left"
-   height="45"
-   layout="topleft"
-   name="sky_dayc_settings_radio_group1"
-   top_pad="20"
-   width="200">
-  	<radio_item
-  	 layout="topleft"
-  	 label="Use region settings"
-  	 name="region_sky_dayc_settings"/>
-  	<radio_item
-  	 layout="topleft"
-  	 label="Use my settings"
-  	 name="my_sky_dayc_settings"
-  	 top_pad="20"/>  	
-  </radio_group>
-  
   <radio_group
    layout="topleft"
    left_delta="50"
-   name="sky_dayc_settings_radio_group2"
+   name="sky_dayc_settings_radio_group"
    top_pad="10"
    height="50"
    width="150">
@@ -124,17 +104,34 @@
    width="200">
       <combo_box.item
        label="-Select a preset-"
-       name="item0"
-       value="any" />
+       name="item0"/>
   </combo_box>
-    <combo_box
+  <combo_box
    follows="top|left"
    name="dayc_settings_preset_combo"
    top_delta="36"
    width="200">
       <combo_box.item
        label="-Select a preset-"
-       name="item0"
-       value="any" />
-  </combo_box>		
+       name="item0"/>
+  </combo_box>
+  </panel>
+
+  <button
+   follows="left|top"
+   height="23"
+   label="OK"
+   layout="topleft"
+   right="-160"
+   name="ok_btn"
+   top_pad="20"
+   width="100" />
+  <button
+   follows="left|top"
+   height="23"
+   label="Cancel"
+   layout="topleft"
+   left_pad="10"
+   name="cancel_btn"
+   width="100" />	
 </floater>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 04a0350283bb1364d9d45c4e01d9dc6646aa864d..38bffd04edb137f37ce7570cfb99875c9f9573cc 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -505,31 +505,7 @@
                  function="World.EnvSettings"
                  parameter="midnight" />
             </menu_item_call>
-            <menu_item_separator/>
-            <menu_item_call
-             label="Use Region Sun"
-             name="Revert to Region Default">
-                <menu_item_call.on_click
-                 function="World.EnvSettings"
-                 parameter="default" />
-            </menu_item_call>
         </menu>
-	    <menu
-	     create_jump_keys="true"
-	     label="Edit My Environment"
-	     name="Environment"
-	     tear_off="true">
-            <menu_item_check
-             label="Use Region Settings"
-             name="Use Region Settings">
-                <on_check
-                 function="World.CheckEnvironment"
-                 parameter="use_region_settings" />
-                <on_click
-                 function="World.Environment"
-                 parameter="use_region_settings" />
-            </menu_item_check>
-	    </menu>
 	    
    
 	    <menu
@@ -546,6 +522,14 @@
                  parameter="editor"/>
 	     	</menu_item_call>
 	     	
+	        <menu_item_call
+	     	 label="Enviroment Settings (old)"
+	     	 name="Enviroment Settings (old)">
+	     	 	<menu_item_call.on_click
+	     	 	 function="World.EnvSettings"
+                 parameter="old_editor"/>
+	     	</menu_item_call>
+	     	
 	     	<menu_item_separator/>
 	     	
 	     	<menu