diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp
index a1689ed04c6026643db906d04d3e892a52daa10e..94da304a962ba7b818d60e253b0209478033146a 100644
--- a/indra/newview/llfloatereditextdaycycle.cpp
+++ b/indra/newview/llfloatereditextdaycycle.cpp
@@ -173,7 +173,7 @@ BOOL LLFloaterEditExtDayCycle::postBuild()
     mImportButton = getChild<LLButton>(BTN_IMPORT, true);
     mLoadFrame = getChild<LLButton>(BTN_LOADFRAME, true);
 
-    mFlyoutControl = new LLFlyoutComboBtnCtrl(this, BTN_SAVE, BTN_FLYOUT, XML_FLYOUTMENU_FILE);
+    mFlyoutControl = new LLFlyoutComboBtnCtrl(this, BTN_SAVE, BTN_FLYOUT, XML_FLYOUTMENU_FILE, false);
     mFlyoutControl->setAction([this](LLUICtrl *ctrl, const LLSD &data) { onButtonApply(ctrl, data); });
 
     getChild<LLButton>(BTN_CANCEL, true)->setCommitCallback([this](LLUICtrl *ctrl, const LLSD &data) { onClickCloseBtn(); });
diff --git a/indra/newview/llfloaterfixedenvironment.cpp b/indra/newview/llfloaterfixedenvironment.cpp
index 82f056710ef4eb5b9e3d76785a94a3562d8fc9d6..39e37034e7f548cb39aae9f7bb4642c4b2c7c5f6 100644
--- a/indra/newview/llfloaterfixedenvironment.cpp
+++ b/indra/newview/llfloaterfixedenvironment.cpp
@@ -108,7 +108,7 @@ BOOL LLFloaterFixedEnvironment::postBuild()
     getChild<LLButton>(BUTTON_NAME_CANCEL)->setClickedCallback([this](LLUICtrl *, const LLSD &) { onClickCloseBtn(); });
     getChild<LLButton>(BUTTON_NAME_LOAD)->setClickedCallback([this](LLUICtrl *, const LLSD &) { onButtonLoad(); });
 
-    mFlyoutControl = new LLFlyoutComboBtnCtrl(this, BUTTON_NAME_COMMIT, BUTTON_NAME_FLYOUT, XML_FLYOUTMENU_FILE);
+    mFlyoutControl = new LLFlyoutComboBtnCtrl(this, BUTTON_NAME_COMMIT, BUTTON_NAME_FLYOUT, XML_FLYOUTMENU_FILE, false);
     mFlyoutControl->setAction([this](LLUICtrl *ctrl, const LLSD &data) { onButtonApply(ctrl, data); });
     mFlyoutControl->setMenuItemVisible(ACTION_COMMIT, false);
 
diff --git a/indra/newview/llflyoutcombobtn.cpp b/indra/newview/llflyoutcombobtn.cpp
index d1a8b46c927600cad60f5bfba53cdef0fadbdb5b..b008ee13be3a26bf04d33c2ac7262711f75e4b79 100644
--- a/indra/newview/llflyoutcombobtn.cpp
+++ b/indra/newview/llflyoutcombobtn.cpp
@@ -29,14 +29,21 @@
 #include "llflyoutcombobtn.h"
 #include "llviewermenu.h"
 
-LLFlyoutComboBtnCtrl::LLFlyoutComboBtnCtrl(LLPanel* parent, const std::string &action_button, const std::string &flyout_button, const std::string &menu_file) :
-	mParent(parent),
+LLFlyoutComboBtnCtrl::LLFlyoutComboBtnCtrl(LLPanel* parent,
+                                           const std::string &action_button,
+                                           const std::string &flyout_button,
+                                           const std::string &menu_file,
+                                           bool apply_immediately) :
+    mParent(parent),
     mActionButton(action_button),
-    mFlyoutButton(flyout_button)
+    mFlyoutButton(flyout_button),
+    mApplyImmediately(apply_immediately)
 {
-	// register action mapping before creating menu
-	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar save_registar;
+    // register action mapping before creating menu
+    LLUICtrl::CommitCallbackRegistry::ScopedRegistrar save_registar;
     save_registar.add("FlyoutCombo.Button.Action", [this](LLUICtrl *ctrl, const LLSD &data) { onFlyoutItemSelected(ctrl, data); });
+    LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enabled_rgistar;
+    enabled_rgistar.add("FlyoutCombo.Button.Check", [this](LLUICtrl *ctrl, const LLSD &data) { return onFlyoutItemCheck(ctrl, data); });
 
     mParent->childSetAction(flyout_button, [this](LLUICtrl *ctrl, const LLSD &data) { onFlyoutButton(ctrl, data); });
     mParent->childSetAction(action_button, [this](LLUICtrl *ctrl, const LLSD &data) { onFlyoutAction(ctrl, data); });
@@ -119,7 +126,24 @@ void LLFlyoutComboBtnCtrl::onFlyoutItemSelected(LLUICtrl *ctrl, const LLSD &data
     LLMenuItemGL *pmenuitem = static_cast<LLMenuItemGL*>(ctrl);
     setSelectedItem(pmenuitem);
 
-    onFlyoutAction(pmenuitem, data);
+    if (mApplyImmediately)
+    {
+        onFlyoutAction(pmenuitem, data);
+    }
+}
+
+bool LLFlyoutComboBtnCtrl::onFlyoutItemCheck(LLUICtrl *ctrl, const LLSD &data)
+{
+    if (mApplyImmediately)
+    {
+        return false;
+    }
+    else
+    {
+        LLMenuItemGL *pmenuitem = static_cast<LLMenuItemGL*>(ctrl);
+
+        return pmenuitem->getName() == mSelectedName;
+    }
 }
 
 void LLFlyoutComboBtnCtrl::onFlyoutAction(LLUICtrl *ctrl, const LLSD &data)
diff --git a/indra/newview/llflyoutcombobtn.h b/indra/newview/llflyoutcombobtn.h
index 741ad03a3786c25095195465ecfd9ea61c8274f2..b0dd4abadf1073e569f59b61da9679066e601fb5 100644
--- a/indra/newview/llflyoutcombobtn.h
+++ b/indra/newview/llflyoutcombobtn.h
@@ -37,7 +37,11 @@ class LLFlyoutComboBtnCtrl
 {
     LOG_CLASS(LLFlyoutComboBtnCtrl);
 public:
-    LLFlyoutComboBtnCtrl(LLPanel* parent, const std::string &action_button, const std::string &flyout_button, const std::string &menu_file);
+    LLFlyoutComboBtnCtrl(LLPanel* parent,
+                         const std::string &action_button,
+                         const std::string &flyout_button,
+                         const std::string &menu_file,
+                         bool apply_immediately = true);
 
 	void setMenuItemEnabled(const std::string &item, bool enabled);
 	void setShownBtnEnabled(bool enabled);
@@ -52,6 +56,7 @@ class LLFlyoutComboBtnCtrl
 protected:
     void onFlyoutButton(LLUICtrl *, const LLSD &);
     void onFlyoutItemSelected(LLUICtrl *, const LLSD &);
+    bool onFlyoutItemCheck(LLUICtrl *, const LLSD &);
     void onFlyoutAction(LLUICtrl *, const LLSD &);
 
     void setSelectedItem(LLMenuItemGL *pitem);
@@ -63,6 +68,7 @@ class LLFlyoutComboBtnCtrl
     std::string                 mFlyoutButton;
 
     std::string                 mSelectedName;
+    bool                        mApplyImmediately;
 
     LLUICtrl::commit_signal_t   mActionSignal;
 };
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 e553948d9daaec2ff6123ad0ca8d1696aa6a0264..c8843db28bcdda442cfdc1f487bb39464f2ea60a 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
@@ -538,7 +538,7 @@ Select a key frame from the timeline above to edit settings.
                     left="5"
                     top_pad="0"
                     name="save_btn"
-                    width="150" />
+                    width="156" />
 
             <button
                     follows="top|left"
diff --git a/indra/newview/skins/default/xui/en/menu_save_settings.xml b/indra/newview/skins/default/xui/en/menu_save_settings.xml
index e3ed9a17410c5defe5d4d2751106667ecac43f02..84dacaa8b8a535c8c0612b80abb79c5b319963c2 100644
--- a/indra/newview/skins/default/xui/en/menu_save_settings.xml
+++ b/indra/newview/skins/default/xui/en/menu_save_settings.xml
@@ -5,46 +5,64 @@
         mouse_opaque="false"
         name="save_settings_menu"
         width="120">
-    <menu_item_call 
+    <menu_item_check
             name="save_settings" 
             label="Save">
-        <menu_item_call.on_click 
+        <menu_item_check.on_check
+                function="FlyoutCombo.Button.Check"
+                userdata="save" />
+        <menu_item_check.on_click
                 function="FlyoutCombo.Button.Action"
                 userdata="save"/>
-    </menu_item_call>
-    <menu_item_call 
+    </menu_item_check>
+    <menu_item_check 
             name="save_as_new_settings" 
             label="Save As">
-        <menu_item_call.on_click 
+        <menu_item_check.on_check
+                function="FlyoutCombo.Button.Check"
+                userdata="saveas" />
+        <menu_item_check.on_click
                 function="FlyoutCombo.Button.Action"
                 userdata="saveas" />
-    </menu_item_call>
-    <menu_item_call
+    </menu_item_check>
+    <menu_item_check
             name="commit_changes"
             label="Commit">
-        <menu_item_call.on_click 
+        <menu_item_check.on_check
+                function="FlyoutCombo.Button.Check"
+                userdata="commit" />
+        <menu_item_check.on_click
                 function="FlyoutCombo.Button.Action"
                 userdata="commit" />
-    </menu_item_call>
-    <menu_item_call
+    </menu_item_check>
+    <menu_item_check
             name="apply_local"
             label="Apply Only To Myself">
-        <menu_item_call.on_click 
+        <menu_item_check.on_check
+                function="FlyoutCombo.Button.Check"
+                userdata="local" />
+        <menu_item_check.on_click 
                 function="FlyoutCombo.Button.Action"
                 userdata="local" />
-    </menu_item_call>
-    <menu_item_call
+    </menu_item_check>
+    <menu_item_check
             name="apply_parcel"
             label="Apply To Parcel">
-        <menu_item_call.on_click 
+        <menu_item_check.on_check
+                function="FlyoutCombo.Button.Check"
+                userdata="parcel" />
+        <menu_item_check.on_click
                 function="FlyoutCombo.Button.Action"
                 userdata="parcel" />
-    </menu_item_call>
-    <menu_item_call
+    </menu_item_check>
+    <menu_item_check
             name="apply_region"
             label="Apply To Region">
-        <menu_item_call.on_click 
+        <menu_item_check.on_check
+                function="FlyoutCombo.Button.Check"
+                userdata="region" />
+        <menu_item_check.on_click
                 function="FlyoutCombo.Button.Action"
                 userdata="region" />
-    </menu_item_call>
+    </menu_item_check>
 </toggleable_menu>