diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 8cc14a66fa9709a4d8136ef499a52633893186b1..c6c24328b46c8816d000b1895db061d7c0fc23e7 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -680,11 +680,11 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
 	
 	std::string tooltip("");
 	mTrackedStatus = LLTracker::TRACKING_LOCATION;
-	LLWorldMap::getInstance()->cancelTracking();		// The floater is taking over the tracking
 // [RLVa:KB] - Checked: 2012-02-08 (RLVa-1.4.5) | Added: RLVa-1.4.5
 	LLTracker::trackLocation(pos_global, (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? full_name : RlvStrings::getString(RlvStringKeys::Hidden::Generic).c_str(), tooltip);
 // [/RLVa:KB]
 //	LLTracker::trackLocation(pos_global, full_name, tooltip);
+	LLWorldMap::getInstance()->cancelTracking();		// The floater is taking over the tracking
 	
 	LLVector3d coord_pos = LLTracker::getTrackedPositionGlobal();
 	updateTeleportCoordsDisplay( coord_pos );
@@ -1660,6 +1660,8 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
 	
 	if (num_results > 0)
 	{
+		list->sortByColumn("sim_name", TRUE);
+
 		// if match found, highlight it and go
 		if (!match.isUndefined())
 		{
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index 017aeb52db9f9bd8ebc04e4e1484abdceed56986..881f535ba857868f3bdde1051e1129e6ad678969 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -1291,8 +1291,8 @@ bool LLPanelProfileSecondLife::onEnableMenu(const LLSD& userdata)
     }
     else if (item_name == "can_show_on_map")
     {
-        return (LLAvatarTracker::instance().isBuddyOnline(agent_id) && LLAvatarActions::isAgentMappable(agent_id))
-        || gAgent.isGodlike();
+        return ((LLAvatarTracker::instance().isBuddyOnline(agent_id) && LLAvatarActions::isAgentMappable(agent_id))
+        || gAgent.isGodlike()) && !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWWORLDMAP);
     }
     else if (item_name == "toggle_block_agent")
     {
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 754193c481b1988b86a61d0a7c771b5fe7979bdf..4ba8aed363b6063cd6fea4c9f739cfe6d1519217 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -762,6 +762,7 @@ bool LLWorldMapView::drawMipmapLevel(S32 width, S32 height, S32 level, bool load
 	pos_NE[VY] += tile_width;
 
 	// Iterate through the tiles on screen: we just need to ask for one tile every tile_width meters
+	LLWorldMap* world_map = LLWorldMap::getInstance();
 	U32 grid_x, grid_y;
 	for (F64 index_y = pos_SW[VY]; index_y < pos_NE[VY]; index_y += tile_width)
 	{
@@ -772,7 +773,7 @@ bool LLWorldMapView::drawMipmapLevel(S32 width, S32 height, S32 level, bool load
 			// Convert to the mipmap level coordinates for that point (i.e. which tile to we hit)
 			LLWorldMipmap::globalToMipmap(pos_global[VX], pos_global[VY], level, &grid_x, &grid_y);
 			// Get the tile. Note: NULL means that the image does not exist (so it's considered "complete" as far as fetching is concerned)
-			LLPointer<LLViewerFetchedTexture> simimage = LLWorldMap::getInstance()->getObjectsTile(grid_x, grid_y, level, load);
+			LLPointer<LLViewerFetchedTexture> simimage = world_map->getObjectsTile(grid_x, grid_y, level, load);
 			if (simimage)
 			{
 				// Checks that the image has a valid texture
@@ -912,10 +913,13 @@ void LLWorldMapView::drawItems()
     BOOL show_mature = mature_enabled && ALControlCache::ShowMatureEvents;
 	BOOL show_adult = adult_enabled && ALControlCache::ShowAdultEvents;
 
+
+	LLWorldMap* world_map = LLWorldMap::getInstance();
+
 	for (handle_list_t::iterator iter = mVisibleRegions.begin(); iter != mVisibleRegions.end(); ++iter)
 	{
 		U64 handle = *iter;
-		LLSimInfo* info = LLWorldMap::getInstance()->simInfoFromHandle(handle);
+		LLSimInfo* info = world_map->simInfoFromHandle(handle);
 		if ((info == NULL) || (info->isDown()))
 		{
 			continue;
@@ -964,10 +968,12 @@ void LLWorldMapView::drawAgents()
 {
 	static LLUIColor map_avatar_color = LLUIColorTable::instance().getColor("MapAvatarColor", LLColor4::white);
 
+	LLWorldMap* world_map = LLWorldMap::getInstance();
+
 	for (handle_list_t::iterator iter = mVisibleRegions.begin(); iter != mVisibleRegions.end(); ++iter)
 	{
 		U64 handle = *iter;
-		LLSimInfo* siminfo = LLWorldMap::getInstance()->simInfoFromHandle(handle);
+		LLSimInfo* siminfo = world_map->simInfoFromHandle(handle);
 		if ((siminfo == NULL) || (siminfo->isDown()))
 		{
 			continue;
@@ -1603,7 +1609,8 @@ void LLWorldMapView::handleClick(S32 x, S32 y, MASK mask,
 
 	*hit_type = 0; // hit nothing
 
-	LLWorldMap::getInstance()->cancelTracking();
+	auto world_map = LLWorldMap::getInstance();
+	world_map->cancelTracking();
 
 	S32 level = LLWorldMipmap::scaleToLevel(mMapScale);
 	// If the zoom level is not too far out already, test hits
@@ -1619,7 +1626,7 @@ void LLWorldMapView::handleClick(S32 x, S32 y, MASK mask,
 			for (handle_list_t::iterator iter = mVisibleRegions.begin(); iter != mVisibleRegions.end(); ++iter)
 			{
 				U64 handle = *iter;
-				LLSimInfo* siminfo = LLWorldMap::getInstance()->simInfoFromHandle(handle);
+				LLSimInfo* siminfo = world_map->simInfoFromHandle(handle);
 				if ((siminfo == NULL) || (siminfo->isDown()))
 				{
 					continue;