diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index f4a8ac80dd4a4e5cf0f37da0c50b3eba60e80a86..28f783f8758143bb7e5c0bc00450947564467843 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -435,6 +435,10 @@ class LLChatHistoryHeader: public LLPanel
 		{
 			LLAvatarActions::toggleMute(getAvatarId(), LLMute::flagTextChat);
 		}
+		else if (level == "report_abuse")
+		{
+			ALAvatarActions::reportAbuse(getAvatarId());
+		}
 		else if(level == "toggle_allow_text_chat")
 		{
 			LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID);
@@ -918,6 +922,7 @@ class LLChatHistoryHeader: public LLPanel
 				menu->setItemEnabled("Pay", false);
 				menu->setItemEnabled("Block Unblock", false);
 				menu->setItemEnabled("Mute Text", false);
+				menu->setItemEnabled("Report", false);
 			}
 			else
 			{
@@ -930,9 +935,7 @@ class LLChatHistoryHeader: public LLPanel
 				menu->setItemEnabled("Request Teleport", LLAvatarActions::canOfferTeleport(mAvatarID));
 				menu->setItemEnabled("Voice Call", LLAvatarActions::canCall());
 
-				// We should only show 'Zoom in' item in a nearby chat
-				bool should_show_zoom = !LLIMModel::getInstance()->findIMSession(currentSessionID);
-				menu->setItemVisible("Zoom In", should_show_zoom && gObjectList.findObject(mAvatarID));	
+				menu->setItemVisible("Zoom In", ALAvatarActions::canZoomIn(mAvatarID));	
 				menu->setItemEnabled("Block Unblock", LLAvatarActions::canBlock(mAvatarID));
 				menu->setItemEnabled("Mute Text", LLAvatarActions::canBlock(mAvatarID));
 				menu->setItemEnabled("Chat History", LLLogChat::isTranscriptExist(mAvatarID));
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 5ca02388f8dbe7a8f5cc44329b4324e760e1ccf2..b7927ea05b6f0211e21cb790a8d06d6b81a4a32e 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -184,6 +184,7 @@ void LLConversationItem::buildParticipantMenuOptions(menuentry_vec_t& items, U32
 		items.push_back(std::string("pay"));
 		items.push_back(std::string("block_unblock"));
 		items.push_back(std::string("MuteText"));
+		items.push_back(std::string("report_abuse"));
 
 		if ((getType() != CONV_SESSION_1_ON_1) && mDisplayModeratorOptions)
 		{
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 9b5f202ca6aa79ce3d12eb857b262f0f6152e7a7..b6ffb884d37984a2d167de0334b4ae11d40ecdff 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -1195,6 +1195,10 @@ void LLFloaterIMContainer::doToParticipants(const std::string& command, uuid_vec
 		{
 			LLAvatarActions::toggleMute(userID, LLMute::flagVoiceChat);
 		}
+		else if ("report_abuse" == command)
+		{
+			ALAvatarActions::reportAbuse(userID);
+		}
 		else if ("mute_unmute" == command)
 		{
 			LLAvatarActions::toggleMute(userID, LLMute::flagTextChat);
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
index 70bf4ea77c56226b8c19f526f94b9421cd2c12cd..55ec42bbf7c098be286732816c7ff608fc4eef03 100644
--- a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
@@ -111,6 +111,12 @@
        <on_click function="AvatarIcon.Action" parameter="mute_unmute" />
        <on_check function="AvatarIcon.Check" parameter="is_muted" />   
     </menu_item_check>
+    <menu_item_call
+     label="Report"
+     layout="topleft"
+     name="Report">
+       <on_click function="AvatarIcon.Action" parameter="report_abuse" />
+    </menu_item_call>
     <menu_item_separator layout="topleft" name="Moderator Options Separator"/>
     <context_menu
      label="Moderator Options"
diff --git a/indra/newview/skins/default/xui/en/menu_conversation.xml b/indra/newview/skins/default/xui/en/menu_conversation.xml
index cbf15c22b403d10c4ed18b654032c3b7fe8b4a8d..3d10e3fab9548a262358d93ac6124008e8d4d1db 100644
--- a/indra/newview/skins/default/xui/en/menu_conversation.xml
+++ b/indra/newview/skins/default/xui/en/menu_conversation.xml
@@ -148,6 +148,12 @@
      <on_check function="Avatar.CheckItem" parameter="is_muted" />
      <on_enable  function="Avatar.EnableItem" parameter="can_block" />
     </menu_item_check>
+    <menu_item_call
+     label="Report"
+     layout="topleft"
+     name="report_abuse">
+        <on_click function="Avatar.DoToSelected" parameter="report_abuse" />
+    </menu_item_call>
     <menu_item_call
      label="Group Profile"
      layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_im_conversation.xml b/indra/newview/skins/default/xui/en/menu_im_conversation.xml
index a8d810eb8a6620c61cc44d50694cd884d399a066..b793dcce83fceda795fcb82cd51b1a1736d9d86e 100644
--- a/indra/newview/skins/default/xui/en/menu_im_conversation.xml
+++ b/indra/newview/skins/default/xui/en/menu_im_conversation.xml
@@ -53,8 +53,8 @@
        label="Zoom In"
        layout="topleft"
        name="zoom_in">
-      <on_click function="Avatar.DoToSelected" parameter="zoom_in" />
-      <on_enable function="Avatar.EnableItem" parameter="can_zoom_in" />
+      <on_click function="Avatar.GearDoToSelected" parameter="zoom_in" />
+      <on_enable function="Avatar.EnableGearItem" parameter="can_zoom_in" />
     </menu_item_call>
     <menu_item_call
      label="Map"
@@ -95,6 +95,12 @@
         <on_click function="Avatar.GearDoToSelected" parameter="mute_unmute" />
         <on_enable function="Avatar.EnableGearItem" parameter="can_block" />
     </menu_item_check>
+    <menu_item_call
+     label="Report"
+     layout="topleft"
+     name="report_abuse">
+        <on_click function="Avatar.GearDoToSelected" parameter="report_abuse" />
+    </menu_item_call>
   <menu_item_separator name="separator_utils"/>
   <context_menu
    label="Utilities"