diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 2430ca5f83d58048132de0fe75116d489f82cb9f..85741340324fd7e024345fc857f8ea01b44f020c 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -582,7 +582,12 @@ void LLAgent::showLatestFeatureNotification()
     S32 feature_version = gSavedSettings.getS32("LastUIFeatureVersion");
     if (feature_version < UI_FEATURE_VERSION)
     {
-        LLFloaterReg::showInstance("new_feature_notification");
+        // Need to open on top even if called from onOpen,
+        // do on idle to make sure it's on top
+        doOnIdleOneTime([]()
+                        {
+                            LLFloaterReg::showInstance("new_feature_notification");
+                        });
         gSavedSettings.setS32("LastUIFeatureVersion", UI_FEATURE_VERSION);
     }
 }
diff --git a/indra/newview/llfloaternewfeaturenotification.cpp b/indra/newview/llfloaternewfeaturenotification.cpp
index e04b1a5da5a0b87db27e69a71702b3c81f43071f..7c3fe8cdc8f9bb51b28c93537e485b67f66ff711 100644
--- a/indra/newview/llfloaternewfeaturenotification.cpp
+++ b/indra/newview/llfloaternewfeaturenotification.cpp
@@ -30,7 +30,7 @@
 
 
 LLFloaterNewFeatureNotification::LLFloaterNewFeatureNotification(const LLSD& key)
-	:	LLFloater(key)
+  : LLFloater(key)
 {
 }
 
@@ -40,24 +40,29 @@ LLFloaterNewFeatureNotification::~LLFloaterNewFeatureNotification()
 
 BOOL LLFloaterNewFeatureNotification::postBuild()
 {
-	setCanDrag(FALSE);
-	getChild<LLButton>("close_btn")->setCommitCallback(boost::bind(&LLFloaterNewFeatureNotification::onCloseBtn, this));
-	return TRUE;
+    setCanDrag(FALSE);
+    getChild<LLButton>("close_btn")->setCommitCallback(boost::bind(&LLFloaterNewFeatureNotification::onCloseBtn, this));
+    return TRUE;
 }
 
 void LLFloaterNewFeatureNotification::onOpen(const LLSD& key)
 {
-	centerOnScreen();
+    centerOnScreen();
 }
 
 void LLFloaterNewFeatureNotification::onCloseBtn()
 {
-	closeFloater();
+    closeFloater();
 }
 
 void LLFloaterNewFeatureNotification::centerOnScreen()
 {
-	LLVector2 window_size = LLUI::getInstance()->getWindowSize();
-	centerWithin(LLRect(0, 0, ll_round(window_size.mV[VX]), ll_round(window_size.mV[VY])));
+    LLVector2 window_size = LLUI::getInstance()->getWindowSize();
+    centerWithin(LLRect(0, 0, ll_round(window_size.mV[VX]), ll_round(window_size.mV[VY])));
+    LLFloaterView* parent = dynamic_cast<LLFloaterView*>(getParent());
+    if (parent)
+    {
+        parent->bringToFront(this);
+    }
 }
 
diff --git a/indra/newview/llfloaternewfeaturenotification.h b/indra/newview/llfloaternewfeaturenotification.h
index 86e9683def8b24715d3861e33e3b0709e54e073b..95501451dc51c3f8b9b96051c9fe13d0b4ddb0c6 100644
--- a/indra/newview/llfloaternewfeaturenotification.h
+++ b/indra/newview/llfloaternewfeaturenotification.h
@@ -30,20 +30,20 @@
 #include "llfloater.h"
 
 class LLFloaterNewFeatureNotification:
-	public LLFloater
+    public LLFloater
 {
-	friend class LLFloaterReg;
+    friend class LLFloaterReg;
 public:
-	BOOL postBuild() override;
-	void onOpen(const LLSD& key) override;
+    BOOL postBuild() override;
+    void onOpen(const LLSD& key) override;
 
 private:
     LLFloaterNewFeatureNotification(const LLSD& key);
     /*virtual*/	~LLFloaterNewFeatureNotification();
 
-	void centerOnScreen();
+    void centerOnScreen();
 
-	void onCloseBtn();	
+    void onCloseBtn();	
 };
 
 #endif