diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index b6c186249c..76a3f737aa 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -26357,5 +26357,16 @@ Change of this parameter will affect the layout of buttons in notification toast
Value
1
+ FSRepeatedEnvTogglesShared
+
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 382b211c82..dbba65666f 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -11809,6 +11809,19 @@ class LLWorldEnvSettings : public view_listener_t
#endif
//
+ // Redundant environment toggles revert to shared environment
+ LLSettingsSky::ptr_t sky = LLEnvironment::instance().getEnvironmentFixedSky(LLEnvironment::ENV_LOCAL);
+ LLUUID skyid = (sky) ? sky->getAssetId() : LLUUID::null;
+ bool repeatedEnvTogglesShared = gSavedSettings.getBOOL("FSRepeatedEnvTogglesShared");
+
+ if(repeatedEnvTogglesShared && ((skyid == LLEnvironment::KNOWN_SKY_SUNRISE && event_name == "sunrise") ||
+ (skyid == LLEnvironment::KNOWN_SKY_MIDDAY && event_name == "noon") ||
+ (skyid == LLEnvironment::KNOWN_SKY_LEGACY_MIDDAY && event_name == "legacy noon") ||
+ (skyid == LLEnvironment::KNOWN_SKY_SUNSET && event_name == "sunset") ||
+ (skyid == LLEnvironment::KNOWN_SKY_MIDNIGHT && event_name == "midnight")))
+ event_name = "region";
+ //
+
if (event_name == "sunrise")
{
// FIRE-29926 - allow manually selected environments to have a user defined transition time.
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml b/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml
index 73b834275e..20ee2fdc43 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml
@@ -218,6 +218,17 @@
left="10"
width="500"
tool_tip="Restores the current environment settings after next login."/>
+