diff --git a/indra/newview/llsociallist.cpp b/indra/newview/llsociallist.cpp
index 3d1d2561495f30dbc09a568d33815c9e2d4b2cbc..2402a7c4b8a30f6b606f2ce3b8e6068cdbc5172d 100644
--- a/indra/newview/llsociallist.cpp
+++ b/indra/newview/llsociallist.cpp
@@ -31,7 +31,10 @@ sDestroyImmediate
 
 #include "llsociallist.h"
 
+#include "llavataractions.h"
+#include "llfloaterreg.h"
 #include "llavatariconctrl.h"
+#include "llavatarnamecache.h"
 #include "lloutputmonitorctrl.h"
 #include "lltextutil.h"
     
@@ -60,7 +63,16 @@ void LLSocialList::refresh()
 void LLSocialList::addNewItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos)
 {
 	LLSocialListItem * item = new LLSocialListItem();
-	item->setName(name, mNameFilter);
+	LLAvatarName avatar_name;
+	bool has_avatar_name = id.notNull() && LLAvatarNameCache::get(id, &avatar_name);
+
+	item->mAvatarId = id;
+	if(id.notNull())
+	{
+		item->mIcon->setValue(id);
+	}
+
+	item->setName(has_avatar_name ? avatar_name.mDisplayName + " (" + name + ")" : name, mNameFilter);
 	addItem(item, id, pos);
 }
 
@@ -97,6 +109,9 @@ BOOL LLSocialListItem::postBuild()
 	mInfoBtn->setVisible(false);
 	mProfileBtn->setVisible(false);
 
+	mInfoBtn->setClickedCallback(boost::bind(&LLSocialListItem::onInfoBtnClick, this));
+	mProfileBtn->setClickedCallback(boost::bind(&LLSocialListItem::onProfileBtnClick, this));
+
 	return TRUE;
 }
 
@@ -128,3 +143,13 @@ void LLSocialListItem::onMouseLeave(S32 x, S32 y, MASK mask)
 
 	LLPanel::onMouseLeave(x, y, mask);
 }
+
+void LLSocialListItem::onInfoBtnClick()
+{
+	LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", mAvatarId));
+}
+
+void LLSocialListItem::onProfileBtnClick()
+{
+	LLAvatarActions::showProfile(mAvatarId);
+}
diff --git a/indra/newview/llsociallist.h b/indra/newview/llsociallist.h
index 884d6ebd7e6f666a9ccbd338d469dc84c3853eab..bc667fc40058b1f0b65e4697f6b5c60b87f12adb 100644
--- a/indra/newview/llsociallist.h
+++ b/indra/newview/llsociallist.h
@@ -77,6 +77,10 @@ class LLSocialListItem : public LLPanel
 	void setValue(const LLSD& value);
 	void onMouseEnter(S32 x, S32 y, MASK mask);
 	void onMouseLeave(S32 x, S32 y, MASK mask);
+	void onInfoBtnClick();
+	void onProfileBtnClick();
+
+	LLUUID mAvatarId;
 
 	LLTextBox * mLabelTextBox;
 	std::string mLabel;