diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 88a1652671b213c7690efe8232b12fcea9be6b7d..12df9ccae45139a460d83f1cba3038f5fe944b79 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -91,6 +91,7 @@ set(llui_SOURCE_FILES
     lltextbox.cpp
     lltexteditor.cpp
     lltextparser.cpp
+    lltextutil.cpp
     lltextvalidate.cpp
     lltransutil.cpp
     lltoggleablemenu.cpp
@@ -101,7 +102,6 @@ set(llui_SOURCE_FILES
     lluictrlfactory.cpp
     lluiimage.cpp
     lluistring.cpp
-    lluitextutil.cpp
     llundo.cpp
     llurlaction.cpp
     llurlentry.cpp
@@ -186,6 +186,7 @@ set(llui_HEADER_FILES
     lltextbox.h
     lltexteditor.h
     lltextparser.h
+    lltextutil.h
     lltextvalidate.h
     lltoggleablemenu.h
     lltooltip.h
@@ -198,7 +199,6 @@ set(llui_HEADER_FILES
     llui.h
     lluiimage.h
     lluistring.h
-    lluitextutil.h
     llundo.h
     llurlaction.h
     llurlentry.h
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 0db2dca6155cabca4628c1b1128b0dd06487e245..b09c108ec3c17841779e344b9ad22b18309bd10a 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -37,8 +37,8 @@
 #include "lllocalcliprect.h"
 #include "llscrollbar.h"
 #include "lltextbox.h"
+#include "lltextutil.h"
 #include "lluictrl.h"
-#include "lluitextutil.h"
 
 static const std::string DD_BUTTON_NAME = "dd_button";
 static const std::string DD_TEXTBOX_NAME = "dd_textbox";
diff --git a/indra/llui/lltextutil.cpp b/indra/llui/lltextutil.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c5f3929fb126806aa7bbef98ec22518af363f7b0
--- /dev/null
+++ b/indra/llui/lltextutil.cpp
@@ -0,0 +1,79 @@
+/** 
+ * @file lltextutil.cpp
+ * @brief Misc text-related auxiliary methods
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ * 
+ * Copyright (c) 2009, Linden Research, Inc.
+ * 
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab.  Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ * 
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "lltextutil.h"
+
+#include "lluicolor.h"
+#include "lltextbox.h"
+
+
+void LLTextUtil::textboxSetHighlightedVal(LLTextBox *txtbox, const LLStyle::Params& normal_style, const std::string& text, const std::string& hl)
+{
+	static LLUIColor sFilterTextColor = LLUIColorTable::instance().getColor("FilterTextColor", LLColor4::green);
+
+	std::string text_uc = text;
+	LLStringUtil::toUpper(text_uc);
+
+	size_t hl_begin = 0, hl_len = hl.size();
+
+	if (hl_len == 0 || (hl_begin = text_uc.find(hl)) == std::string::npos)
+	{
+		txtbox->setText(text, normal_style);
+		return;
+	}
+
+	LLStyle::Params hl_style = normal_style;
+	hl_style.color = sFilterTextColor;
+
+	txtbox->setText(LLStringUtil::null); // clear text
+	txtbox->appendText(text.substr(0, hl_begin),		false, normal_style);
+	txtbox->appendText(text.substr(hl_begin, hl_len),	false, hl_style);
+	txtbox->appendText(text.substr(hl_begin + hl_len),	false, normal_style);
+}
+
+const std::string& LLTextUtil::formatPhoneNumber(const std::string& phone_str)
+{
+	static const std::string PHONE_SEPARATOR = LLUI::sSettingGroups["config"]->getString("AvalinePhoneSeparator");
+	static const S32 PHONE_PART_LEN = 2;
+
+	static std::string formatted_phone_str;
+	formatted_phone_str = phone_str;
+	S32 separator_pos = (S32)(formatted_phone_str.size()) - PHONE_PART_LEN;
+	for (; separator_pos >= PHONE_PART_LEN; separator_pos -= PHONE_PART_LEN)
+	{
+		formatted_phone_str.insert(separator_pos, PHONE_SEPARATOR);
+	}
+
+	return formatted_phone_str;
+}
+
+// EOF
diff --git a/indra/llui/lltextutil.h b/indra/llui/lltextutil.h
new file mode 100644
index 0000000000000000000000000000000000000000..325c3c5b7c1f3e9a0d5c15ce690089b2783aa987
--- /dev/null
+++ b/indra/llui/lltextutil.h
@@ -0,0 +1,72 @@
+/** 
+ * @file lltextutil.h
+ * @brief Misc text-related auxiliary methods
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ * 
+ * Copyright (c) 2009, Linden Research, Inc.
+ * 
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab.  Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ * 
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLTEXTUTIL_H
+#define LL_LLTEXTUTIL_H
+
+#include "llstyle.h"
+
+class LLTextBox;
+
+namespace LLTextUtil
+{
+
+	/**
+	 * Set value for text box, highlighting substring hl_uc.
+	 * 
+	 * Used to highlight filter matches.
+	 * 
+	 * @param txtbox        Text box to set value for
+	 * @param normal_style  Style to use for non-highlighted text
+	 * @param text          Text to set
+	 * @param hl            Upper-cased string to highlight
+	 */
+	void textboxSetHighlightedVal(
+		LLTextBox *txtbox,
+		const LLStyle::Params& normal_style,
+		const std::string& text,
+		const std::string& hl);
+
+	/**
+	 * Formats passed phone number to be more human readable.
+	 *
+	 * It just divides the number on parts by two digits from right to left. The first left part
+	 * can have 2 or 3 digits, i.e. +44-33-33-44-55-66 or 12-34-56-78-90. Separator is set in
+	 * application settings (AvalinePhoneSeparator)
+	 *
+	 * @param[in] phone_str string with original phone number
+	 * @return reference to string with formatted phone number
+	 */
+	const std::string& formatPhoneNumber(const std::string& phone_str);
+}
+
+#endif // LL_LLTEXTUTIL_H
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index f2bed843c98e0a4b64d8f8f0f064d8fbab8c9d08..d77d53f6af31470e66a95279651df8eff5968996 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -421,7 +421,6 @@ set(viewer_SOURCE_FILES
     lltexturestats.cpp
     lltexturestatsuploader.cpp
     lltextureview.cpp
-    lltextutil.cpp
     lltoast.cpp
     lltoastalertpanel.cpp
     lltoastgroupnotifypanel.cpp
@@ -935,7 +934,6 @@ set(viewer_HEADER_FILES
     lltexturestats.h
     lltexturestatsuploader.h
     lltextureview.h
-    lltextutil.h
     lltoast.h
     lltoastalertpanel.h
     lltoastgroupnotifypanel.h
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 72ee289c91d565d4433b25f0dd0fa5fde55ffafa..24290ac089a85a8a460ea312bb7f6ccd0860bd5f 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -32,19 +32,21 @@
 
 #include "llviewerprecompiledheaders.h"
 
+#include "llavatarlist.h"
+
 // common
 #include "lltrans.h"
 #include "llcommonutils.h"
 
-#include "llavatarlist.h"
-#include "llagentdata.h" // for comparator
+// llui
+#include "lltextutil.h"
 
 // newview
+#include "llagentdata.h" // for comparator
 #include "llavatariconctrl.h"
 #include "llcallingcard.h" // for LLAvatarTracker
 #include "llcachename.h"
 #include "llrecentpeople.h"
-#include "lltextutil.h"
 #include "lluuid.h"
 #include "llvoiceclient.h"
 #include "llviewercontrol.h"	// for gSavedSettings
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 656274cb7aaa9eb1aae2373da7f167af657ee048..5a8ad73c8324039b47e805177ab43a6154aed456 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -38,7 +38,7 @@
 
 #include "llbutton.h"
 #include "llfloaterreg.h"
-#include "lluitextutil.h"
+#include "lltextutil.h"
 
 #include "llagent.h"
 #include "llavatariconctrl.h"
diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp
index 3224ac6d9b8f2e1f5212c9f20438e1cddb10dae3..da5196df45c2bc38e3d1af7d0be2dc5f61bc7c07 100644
--- a/indra/newview/llgrouplist.cpp
+++ b/indra/newview/llgrouplist.cpp
@@ -39,8 +39,8 @@
 #include "lliconctrl.h"
 #include "llmenugl.h"
 #include "lltextbox.h"
+#include "lltextutil.h"
 #include "lltrans.h"
-#include "lluitextutil.h"
 
 // newview
 #include "llagent.h"
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index c143ac9deaac2d5187265f218cfcb344a61eb52e..039df6945430ea91749faa47da905d311c3d18ac 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -43,6 +43,7 @@
 #include "llhttpclient.h"
 #include "llsdutil_math.h"
 #include "llstring.h"
+#include "lltextutil.h"
 #include "lltrans.h"
 #include "lluictrlfactory.h"
 
@@ -65,7 +66,6 @@
 #include "llnearbychat.h"
 #include "llspeakers.h" //for LLIMSpeakerMgr
 #include "lltextbox.h"
-#include "lltextutil.h"
 #include "llviewercontrol.h"
 #include "llviewerparcelmgr.h"
 
diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp
index 9b592e79aff156735ed759ab8e377fa6d2b67fc8..f94515d2428a59d21538a57e1d4d208c0d5f365a 100644
--- a/indra/newview/llinventoryitemslist.cpp
+++ b/indra/newview/llinventoryitemslist.cpp
@@ -42,7 +42,7 @@
 
 // llui
 #include "lliconctrl.h"
-#include "lluitextutil.h"
+#include "lltextutil.h"
 
 #include "llcallbacklist.h"
 #include "llinventoryfunctions.h"
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 4dd03e04a9a5439f1105ef45658da20273936752..e8b6c6bfe5a33fe40ed3516a93d8fcd59319f78e 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -38,7 +38,7 @@
 #include "llsidetray.h"
 #include "llworldmap.h"
 #include "llteleporthistorystorage.h"
-#include "lluitextutil.h"
+#include "lltextutil.h"
 
 #include "llaccordionctrl.h"
 #include "llaccordionctrltab.h"