diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 47fde08a9de671c2a511d154b2f26f6def00808a..b3f7a64efbde1357998806d4e8a3af7d17641011 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -438,6 +438,7 @@ set(viewer_SOURCE_FILES
     lltracker.cpp
     lltransientdockablefloater.cpp
     lltransientfloatermgr.cpp
+    llpanelgenerictip.cpp
     lluilistener.cpp
     lluploaddialog.cpp
     llurl.cpp
@@ -940,6 +941,7 @@ set(viewer_HEADER_FILES
     lltracker.h
     lltransientdockablefloater.h
     lltransientfloatermgr.h
+    llpanelgenerictip.h
     lluiconstants.h
     lluilistener.h
     lluploaddialog.h
diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp
index afc00bf7ef3176cb89f04da015e2d9d5c65a31f1..407de79c89441c94d12d0c417d57afd0d4aa8280 100644
--- a/indra/newview/llnotificationtiphandler.cpp
+++ b/indra/newview/llnotificationtiphandler.cpp
@@ -157,6 +157,7 @@ bool LLTipHandler::processNotification(const LLSD& notify)
 		}
 
 		LLToastPanel* notify_box = NULL;
+		// TODO: this should be implemented in LLToastPanel::buidPanelFromNotification
 		if("FriendOffline" == notification->getName() || "FriendOnline" == notification->getName())
 		{
 			LLOnlineStatusToast::Params p;
@@ -166,6 +167,14 @@ bool LLTipHandler::processNotification(const LLSD& notify)
 			notify_box = new LLOnlineStatusToast(p);
 		}
 		else
+		{
+			notify_box = LLToastPanel::buidPanelFromNotification(notification);
+		}
+
+		// TODO: this if statement should be removed  after modification of
+		// LLToastPanel::buidPanelFromNotification() to allow create generic tip panel
+		// for all tip notifications except FriendOnline and FriendOffline
+		if (notify_box == NULL)
 		{
 			notify_box = new LLToastNotifyPanel(notification);
 		}
diff --git a/indra/newview/llpanelgenerictip.cpp b/indra/newview/llpanelgenerictip.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2e977faf096ba6db34eb8cc5c1811ccad5049715
--- /dev/null
+++ b/indra/newview/llpanelgenerictip.cpp
@@ -0,0 +1,56 @@
+/** 
+ * @file llpanelgenerictip.cpp
+ * @brief Represents a generic panel for a notifytip notifications. As example:
+ * "SystemMessageTip", "Cancelled", "UploadWebSnapshotDone".
+ *
+ * $LicenseInfo:firstyear=2010&license=viewergpl$
+ * 
+ * Copyright (c) 2010, 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 "llviewerprecompiledheaders.h"
+
+#include "llpanelgenerictip.h"
+#include "llnotifications.h"
+
+/**
+ * Generic toast tip panel.
+ * This is particular case of toast panel that decoupled from LLToastNotifyPanel.
+ * From now LLToastNotifyPanel is deprecated and will be removed after all  panel
+ * types are represented in separate classes.
+ */
+LLPanelGenericTip::LLPanelGenericTip(
+		const LLNotificationPtr& notification) :
+	LLToastPanel(notification)
+{
+	LLUICtrlFactory::getInstance()->buildPanel(this, "panel_generic_tip.xml");
+
+	childSetValue("message", notification->getMessage());
+
+	// set line max count to 3 in case of a very long name
+	snapToMessageHeight(getChild<LLTextBox> ("message"), 3);
+}
+
diff --git a/indra/newview/llpanelgenerictip.h b/indra/newview/llpanelgenerictip.h
new file mode 100644
index 0000000000000000000000000000000000000000..0eb502498af96815826f42e738310c5ccf013640
--- /dev/null
+++ b/indra/newview/llpanelgenerictip.h
@@ -0,0 +1,47 @@
+/** 
+ * @file llpanelgenerictip.h
+ * @brief Represents a generic panel for a notifytip notifications. As example:
+ * "SystemMessageTip", "Cancelled", "UploadWebSnapshotDone".
+ *
+ * $LicenseInfo:firstyear=2010&license=viewergpl$
+ * 
+ * Copyright (c) 2010, 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_PANELGENERICTIP_H
+#define LL_PANELGENERICTIP_H
+
+#include "lltoastpanel.h"
+
+class LLPanelGenericTip: public LLToastPanel
+{
+	// disallow instantiation of this class
+private:
+	// grant privileges to instantiate this class to LLToastPanel
+	friend class LLToastPanel;
+	LLPanelGenericTip(const LLNotificationPtr& notification);
+};
+#endif /* LL_PANELGENERICTIP_H */
diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h
index 1c68e4c6b3dd61758b3ad013ab216ef3601731f1..a6644c0a7abaf6e9aa5f52fe74344970a99f47f0 100644
--- a/indra/newview/lltoastnotifypanel.h
+++ b/indra/newview/lltoastnotifypanel.h
@@ -49,6 +49,9 @@ class LLNotificationForm;
  * Notification panel should be used for notifications that require a response from the user.
  *
  * Replaces class LLNotifyBox.
+ *
+ * @deprecated this class will be removed after all toast panel types are
+ *  implemented in separate classes.
  */
 class LLToastNotifyPanel: public LLToastPanel 
 {
@@ -60,6 +63,8 @@ class LLToastNotifyPanel: public LLToastPanel
 	 * @param rect an initial rectangle of the toast panel. 
 	 * If it is null then a loaded from xml rectangle will be used. 
 	 * @see LLNotification
+	 * @deprecated if you intend to instantiate LLToastNotifyPanel - it's point to
+	 * implement right class for desired toast panel. @see LLGenericTipPanel as example.
 	 */
 	LLToastNotifyPanel(LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null);
 	virtual ~LLToastNotifyPanel();
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index 755e64777716000ae2527c000cc5b38c026996b2..d142a0665b52cdb53b6b3873e588ebf40338e405 100644
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
@@ -32,14 +32,14 @@
 
 #include "llviewerprecompiledheaders.h"
 
-#include "lltoastpanel.h"
-
+#include "llpanelgenerictip.h"
 #include "llnotifications.h"
+#include "lltoastpanel.h"
 
 //static
 const S32 LLToastPanel::MIN_PANEL_HEIGHT = 40; // VPAD(4)*2 + ICON_HEIGHT(32)
 
-LLToastPanel::LLToastPanel(LLNotificationPtr& notification) 
+LLToastPanel::LLToastPanel(const LLNotificationPtr& notification)
 {
 	mNotification = notification;
 }
@@ -91,3 +91,20 @@ void LLToastPanel::snapToMessageHeight(LLTextBase* message, S32 maxLineCount)
 	}
 }
 
+// static
+LLToastPanel* LLToastPanel::buidPanelFromNotification(
+		const LLNotificationPtr& notification)
+{
+	LLToastPanel* res = NULL;
+
+	if (notification->getName() == "SystemMessageTip")
+	{
+		res = new LLPanelGenericTip(notification);
+	}
+	/*
+	 else if(...)
+	 create all other specific non-public toast panel
+	 */
+
+	return res;
+}
diff --git a/indra/newview/lltoastpanel.h b/indra/newview/lltoastpanel.h
index f1dd7d7a867a1f3cd26e99691b12483bfb6321dd..54243e52facb30ed0278a0ff5f04203a33b6b789 100644
--- a/indra/newview/lltoastpanel.h
+++ b/indra/newview/lltoastpanel.h
@@ -53,13 +53,21 @@ class LLToastPanelBase: public LLPanel
  */
 class LLToastPanel: public LLPanel {
 public:
-	LLToastPanel(LLNotificationPtr&);
+	LLToastPanel(const LLNotificationPtr&);
 	virtual ~LLToastPanel() = 0;
 
 	virtual std::string getTitle();
 	virtual const LLUUID& getID();
 
 	static const S32 MIN_PANEL_HEIGHT;
+
+	/**
+	 * Builder method for constructing notification specific panels.
+	 * Normally type of created panels shouldn't be publicated and should be hidden
+	 * from other functionality.
+	 */
+	static LLToastPanel* buidPanelFromNotification(
+			const LLNotificationPtr& notification);
 protected:
 	LLNotificationPtr mNotification;
 	void snapToMessageHeight(LLTextBase* message, S32 maxLineCount);
diff --git a/indra/newview/skins/default/xui/en/panel_generic_tip.xml b/indra/newview/skins/default/xui/en/panel_generic_tip.xml
new file mode 100644
index 0000000000000000000000000000000000000000..453ed7c7a677412adc8c56563a77610a7fb830cb
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_generic_tip.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ height="40"
+ layout="topleft"
+ left="0"
+ name="panel_system_tip"
+ top="0"
+ width="305">
+    <text
+     follows="all"
+     font="SansSerif"
+     height="20"
+     layout="topleft"
+     left="10"
+     max_length="350"
+     name="message"
+     text_color="white"
+     top="10"
+     use_ellipses="true"
+     value=""
+     width="285"
+     wrap="true" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml
index e7384fa77f236876658087d8184e4facdb13c3a0..92b4c17247de325b77fd0730e2005388f5d44f2e 100644
--- a/indra/newview/skins/default/xui/en/panel_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_toast.xml
@@ -55,7 +55,7 @@
     clip_partial="true" 
    visible="false"
    follows="left|top|right|bottom"
-   font="SansSerifBold"
+   font="SansSerif"
    height="20"
    layout="topleft"
    left="20"