diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index e0e86ae228f90593dea75e65230549568b740ee9..70c144a832f6c001914b96433d2f4e531086d7d7 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -3420,6 +3420,12 @@ BOOL LLMenuHolderGL::handleKey(KEY key, MASK mask, BOOL called_from_parent)
 			
 	if (pMenu)
 	{
+		//eat TAB key - EXT-7000
+		if (key == KEY_TAB && mask == MASK_NONE)
+		{
+			return TRUE;
+		}
+
 		//handle ESCAPE and RETURN key
 		handled = LLPanel::handleKey(key, mask, called_from_parent);
 		if (!handled)
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 47ec5270c3ed33c3cff2cd1ed6ac0947f7b7f112..72ee289c91d565d4433b25f0dd0fa5fde55ffafa 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -399,6 +399,15 @@ BOOL LLAvatarList::handleRightMouseDown(S32 x, S32 y, MASK mask)
 	return handled;
 }
 
+void LLAvatarList::setVisible(BOOL visible)
+{
+	if ( visible == FALSE && mContextMenu )
+	{
+		mContextMenu->hide();
+	}
+	LLFlatListViewEx::setVisible(visible);
+}
+
 void LLAvatarList::computeDifference(
 	const uuid_vec_t& vnew_unsorted,
 	uuid_vec_t& vadded,
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index ff090f3a341c8399a7da3a1c64c8d2aa6d95c081..a9320055ca350f382e28b62527b1c88eea58b0d1 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -70,6 +70,8 @@ class LLAvatarList : public LLFlatListViewEx
 
 	virtual void clear();
 
+	virtual void setVisible(BOOL visible);
+
 	void setNameFilter(const std::string& filter);
 	void setDirty(bool val = true, bool force_refresh = false);
 	uuid_vec_t& getIDs() 							{ return mIDs; }
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index 3ba2c7a3e3d4aba4553ef15a04ea816209c81c95..c6fac7a9f1cc749f0595c78aeaafce38f48a9335 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -71,6 +71,7 @@ class LLAvatarListItem : public LLPanel, public LLFriendObserver
 	{
 	public:
 		virtual void show(LLView* spawning_view, const uuid_vec_t& selected_uuids, S32 x, S32 y) = 0;
+		virtual void hide() = 0;
 	};
 
 	/**