diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index f7528bc62ab331e9776eca2aec819d6f2e657cda..1b6dd1b2641967f18af68f9de3138f0f4f8a7732 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -101,7 +101,7 @@ std::string LLUrlEntryBase::getLabelFromWikiLink(const std::string &url)
 	{
 		start++;
 	}
-	return url.substr(start, url.size()-start-1);
+	return unescapeUrl(url.substr(start, url.size()-start-1));
 }
 
 std::string LLUrlEntryBase::getUrlFromWikiLink(const std::string &string)
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index f3d6dbbb464cf0d1d3f01e196a1f6d857c3912df..fb898f7cdf6110826e6c0b23daad32d9efb35ab7 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -594,8 +594,8 @@ void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_g
 		if (it != mGroups.begin())
 			groups += ", ";
 
-		
-		std::string group_url="[secondlife:///app/group/" + it->second.asString() + "/about " + it->first + "]";
+		std::string group_name = LLURI::escape(it->first);
+		std::string group_url="[secondlife:///app/group/" + it->second.asString() + "/about " + group_name + "]";
 		groups += group_url;
 	}