diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index a32f0d046e926bceeb47a3d896e9c5124de56555..db4e0b5afd37add8bb1a0a9f06bba2c140584501 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4633,6 +4633,17 @@
       <key>Value</key>
       <integer>410</integer>
     </map>
+    <key>MePanelOpened</key>
+    <map>
+      <key>Comment</key>
+      <string>Indicates that Me Panel was opened at least once after Viewer was installed</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <real>0</real>
+    </map>
     <key>MigrateCacheDirectory</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index a68552a91e9a312f40d6c32ce94ce8a94e81351e..3504cbd1ef976013520b2bdcabb9ddc2496bf7ce 100644
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
@@ -41,6 +41,7 @@
 #include "llsidetray.h"
 #include "lltabcontainer.h"
 #include "lltexturectrl.h"
+#include "llviewercontrol.h"
 
 #define PICKER_SECOND_LIFE "2nd_life_pic"
 #define PICKER_FIRST_LIFE "real_world_pic"
@@ -70,18 +71,16 @@ void LLPanelMe::onOpen(const LLSD& key)
 {
 	LLPanelProfile::onOpen(key);
 
-	if(key.isUndefined() || key.has("edit_my_profile"))
+	// Force Edit My Profile if this is the first time when user is opening Me Panel (EXT-5068)
+	bool opened = gSavedSettings.getBOOL("MePanelOpened");
+	// In some cases Side Tray my call onOpen() twice, check getCollapsed() to be sure this
+	// is the last time onOpen() is called
+	if( !opened && !LLSideTray::getInstance()->getCollapsed() )
 	{
-		// Open Edit My Profile panel by default (through Side Tray -> My Profile) (EXT-4823)
 		buildEditPanel();
 		openPanel(mEditPanel, getAvatarId());
-	}
-	else if(mEditPanel)
-	{
-		// When opening Me Panel through Side Tray LLPanelMe::onOpen() is called twice.
-		// First time key can be undefined and second time - key may contain some data.
-		// Lets close Edit Panel if key does contain some data on second call.
-		closePanel(mEditPanel);
+
+		gSavedSettings.setBOOL("MePanelOpened", true);
 	}
 }
 
diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h
index b1c8675793c296170aa71b6afc2e24c24f66652e..140a9c818a7a7b6f8b6e021091aeedad3e5ffd70 100644
--- a/indra/newview/llsidetray.h
+++ b/indra/newview/llsidetray.h
@@ -139,6 +139,8 @@ class LLSideTray : public LLPanel, private LLDestroyClass<LLSideTray>
 
 	LLPanel*	getButtonsPanel() { return mButtonsPanel; }
 
+	bool		getCollapsed() { return mCollapsed; }
+
 public:
 	virtual ~LLSideTray(){};