diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 746b541f9d2ce76e8d50fad1900197881b5d5d21..d7c959ccd61e582cfea1ec5c8ae38a07c6834726 100755
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -311,6 +311,7 @@ bool LLAvatarIconCtrl::updateFromCache()
 	else
 	{
 		LLIconCtrl::setValue(mDefaultIconName);
+        return false;
 	}
 
 	return true;
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 49a71b0018a916b3c10f1877bef221fe4f6afde4..d6240838b6eca6da33174638a3ff837580a14b70 100755
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -132,8 +132,7 @@ void LLChannelManager::onLoginCompleted()
 			S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); 
 			S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
 			mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound);
-			//mStartUpChannel->setMouseDownCallback(boost::bind(&LLNotificationWellWindow::onStartUpToastClick, LLNotificationWellWindow::getInstance(), _2, _3, _4));
-            mStartUpChannel->setMouseDownCallback(boost::bind(&LLFloaterNotificationsTabbed::onStartUpToastClick, LLFloaterNotificationsTabbed::getInstance(), _2, _3, _4));
+			mStartUpChannel->setMouseDownCallback(boost::bind(&LLFloaterNotificationsTabbed::onStartUpToastClick, LLFloaterNotificationsTabbed::getInstance(), _2, _3, _4));
 
 			mStartUpChannel->setCommitCallback(boost::bind(&LLChannelManager::onStartUpToastClose, this));
 			mStartUpChannel->createStartUpToast(away_notifications, gSavedSettings.getS32("StartUpToastLifeTime"));
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 33cb0551b4a01d80c8eeecd3e6c7d4b8748b8f81..ce8878b8490dd6165cf572da545e45bc71152658 100755
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -166,8 +166,7 @@ LLNotificationChiclet::LLNotificationChiclet(const Params& p)
 	mNotificationChannel.reset(new ChicletNotificationChannel(this));
 	// ensure that notification well window exists, to synchronously
 	// handle toast add/delete events.
-	//LLNotificationWellWindow::getInstance()->setSysWellChiclet(this);
-    LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this);
+	LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this);
 }
 
 void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data)
@@ -175,8 +174,7 @@ void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data)
 	std::string action = user_data.asString();
 	if("close all" == action)
 	{
-		//LLNotificationWellWindow::getInstance()->closeAll();
-        LLFloaterNotificationsTabbed::getInstance()->closeAll();
+		LLFloaterNotificationsTabbed::getInstance()->closeAll();
 		LLIMWellWindow::getInstance()->closeAll();
 	}
 }
diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp
index 45510d08243f2c0f8db9710905d5dc1a4de83271..8d1a8c58f3fab62ece073a72d7c94e9a66850f89 100755
--- a/indra/newview/llchicletbar.cpp
+++ b/indra/newview/llchicletbar.cpp
@@ -60,8 +60,7 @@ BOOL LLChicletBar::postBuild()
 	mToolbarStack = getChild<LLLayoutStack>("toolbar_stack");
 	mChicletPanel = getChild<LLChicletPanel>("chiclet_list");
 
-	//showWellButton("notification_well", !LLNotificationWellWindow::getInstance()->isWindowEmpty());
-    showWellButton("notification_well", !LLFloaterNotificationsTabbed::getInstance()->isWindowEmpty());
+	showWellButton("notification_well", !LLFloaterNotificationsTabbed::getInstance()->isWindowEmpty());
 
 	LLPanelTopInfoBar::instance().setResizeCallback(boost::bind(&LLChicletBar::fitWithTopInfoBar, this));
 	LLPanelTopInfoBar::instance().setVisibleCallback(boost::bind(&LLChicletBar::fitWithTopInfoBar, this));
diff --git a/indra/newview/llfloaternotificationstabbed.cpp b/indra/newview/llfloaternotificationstabbed.cpp
index b05ea6aa3842369189c295070fa47695f5a5bded..05a0af01ce34286d75fca9b146f5ac0b8652e468 100644
--- a/indra/newview/llfloaternotificationstabbed.cpp
+++ b/indra/newview/llfloaternotificationstabbed.cpp
@@ -1,9 +1,9 @@
 /** 
  * @file llfloaternotificationstabbed.cpp
  * @brief                                  
- * $LicenseInfo:firstyear=2000&license=viewerlgpl$
+ * $LicenseInfo:firstyear=2015&license=viewerlgpl$
  * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
+ * Copyright (C) 2015, Linden Research, Inc.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -51,7 +51,7 @@ LLFloaterNotificationsTabbed::LLFloaterNotificationsTabbed(const LLSD& key) : LL
     mIsReshapedByUser(false)
 
 {
-	setOverlapsScreenChannel(true);
+    setOverlapsScreenChannel(true);
     mNotificationUpdates.reset(new NotificationTabbedChannel(this));
     mNotificationsSeparator = new LLNotificationSeparator();
 }
@@ -70,12 +70,15 @@ BOOL LLFloaterNotificationsTabbed::postBuild()
     mDeleteAllBtn = getChild<LLButton>("delete_all_button");
     mDeleteAllBtn->setClickedCallback(boost::bind(&LLFloaterNotificationsTabbed::onClickDeleteAllBtn,this));
 
+    mCollapseAllBtn = getChild<LLButton>("collapse_all_button");
+    mCollapseAllBtn->setClickedCallback(boost::bind(&LLFloaterNotificationsTabbed::onClickCollapseAllBtn,this));
+
     // get a corresponding channel
     initChannel();
     BOOL rv = LLTransientDockableFloater::postBuild();
     
     setTitle(getString("title_notification_tabbed_window"));
-	return rv;
+    return rv;
 }
 
 //---------------------------------------------------------------------------------
@@ -98,6 +101,7 @@ void LLFloaterNotificationsTabbed::onStartUpToastClick(S32 x, S32 y, MASK mask)
     setVisible(TRUE);
 }
 
+//---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::setSysWellChiclet(LLSysWellChiclet* chiclet) 
 { 
     mSysWellChiclet = chiclet;
@@ -208,29 +212,6 @@ void LLFloaterNotificationsTabbed::setDocked(bool docked, bool pop_on_undock)
 //---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::reshapeWindow()
 {
-    // save difference between floater height and the list height to take it into account while calculating new window height
-    // it includes height from floater top to list top and from floater bottom and list bottom
-    //static S32 parent_list_delta_height = getRect().getHeight() - mInviteMessageList->getRect().getHeight();
-
-    //if (!mIsReshapedByUser) // Don't reshape Well window, if it ever was reshaped by user. See EXT-5715.
-    //{
-    //    S32 notif_list_height = mInviteMessageList->getItemsRect().getHeight() + 2 * mInviteMessageList->getBorderWidth();
-
-    //    LLRect curRect = getRect();
-
-    //    S32 new_window_height = notif_list_height + parent_list_delta_height;
-
-    //    if (new_window_height > MAX_WINDOW_HEIGHT)
-    //    {
-    //        new_window_height = MAX_WINDOW_HEIGHT;
-    //    }
-    //    S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH	: curRect.getWidth();
-
-    //    curRect.setLeftTopAndSize(curRect.mLeft, curRect.mTop, newWidth, new_window_height);
-    //    reshape(curRect.getWidth(), curRect.getHeight(), TRUE);
-    //    setRect(curRect);
-    //}
-
     // update notification channel state
     // update on a window reshape is important only when a window is visible and docked
     if(mChannel && getVisible() && isDocked())
@@ -245,8 +226,9 @@ bool LLFloaterNotificationsTabbed::isWindowEmpty()
     return mNotificationsSeparator->size() == 0;
 }
 
+//---------------------------------------------------------------------------------
 LLFloaterNotificationsTabbed::NotificationTabbedChannel::NotificationTabbedChannel(LLFloaterNotificationsTabbed* notifications_tabbed_window)
-    :	LLNotificationChannel(LLNotificationChannel::Params().name(notifications_tabbed_window->getPathname())),
+    : LLNotificationChannel(LLNotificationChannel::Params().name(notifications_tabbed_window->getPathname())),
     mNotificationsTabbedWindow(notifications_tabbed_window)
 {
     connectToChannel("Notifications");
@@ -255,11 +237,13 @@ LLFloaterNotificationsTabbed::NotificationTabbedChannel::NotificationTabbedChann
 }
 
 // static
+//---------------------------------------------------------------------------------
 LLFloaterNotificationsTabbed* LLFloaterNotificationsTabbed::getInstance(const LLSD& key /*= LLSD()*/)
 {
     return LLFloaterReg::getTypedInstance<LLFloaterNotificationsTabbed>("notification_well_window", key);
 }
 
+//---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::updateNotificationCounter(S32 panelIndex, S32 counterValue, std::string stringName)
 {
     LLStringUtil::format_map_t string_args;
@@ -268,6 +252,7 @@ void LLFloaterNotificationsTabbed::updateNotificationCounter(S32 panelIndex, S32
     mNotificationsTabContainer->setPanelTitle(panelIndex, label);
 }
 
+//---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::updateNotificationCounters()
 {
     updateNotificationCounter(0, mSystemMessageList->size(), "system_tab_title");
@@ -304,6 +289,7 @@ void LLFloaterNotificationsTabbed::addItem(LLNotificationListItem::Params p)
     }
 }
 
+//---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::closeAll()
 {
     // Need to clear notification channel, to add storable toasts into the list.
@@ -319,11 +305,8 @@ void LLFloaterNotificationsTabbed::closeAll()
 }
 
 //---------------------------------------------------------------------------------
-void LLFloaterNotificationsTabbed::closeAllOnCurrentTab()
+void LLFloaterNotificationsTabbed::getAllItemsOnCurrentTab(std::vector<LLPanel*>& items) const
 {
-    // Need to clear notification channel, to add storable toasts into the list.
-    clearScreenChannels();
-    std::vector<LLPanel*> items;
     switch (mNotificationsTabContainer->getCurrentPanelIndex())
     {
     case 0:
@@ -336,8 +319,17 @@ void LLFloaterNotificationsTabbed::closeAllOnCurrentTab()
         mInviteMessageList->getItems(items);
         break;
     default:
-        return;
+        break;
     }
+}
+
+//---------------------------------------------------------------------------------
+void LLFloaterNotificationsTabbed::closeAllOnCurrentTab()
+{
+    // Need to clear notification channel, to add storable toasts into the list.
+    clearScreenChannels();
+    std::vector<LLPanel*> items;
+    getAllItemsOnCurrentTab(items);
     std::vector<LLPanel*>::iterator iter = items.begin();
     for (; iter != items.end(); ++iter)
     {
@@ -347,6 +339,20 @@ void LLFloaterNotificationsTabbed::closeAllOnCurrentTab()
     }
 }
 
+//---------------------------------------------------------------------------------
+void LLFloaterNotificationsTabbed::collapseAllOnCurrentTab()
+{
+    std::vector<LLPanel*> items;
+    getAllItemsOnCurrentTab(items);
+    std::vector<LLPanel*>::iterator iter = items.begin();
+    for (; iter != items.end(); ++iter)
+    {
+        LLNotificationListItem* notify_item = dynamic_cast<LLNotificationListItem*>(*iter);
+        if (notify_item)
+            notify_item->setExpanded(FALSE);
+    }
+}
+
 //---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::clearScreenChannels()
 {
@@ -375,6 +381,8 @@ void LLFloaterNotificationsTabbed::onStoreToast(LLPanel* info_panel, LLUUID id)
     p.group_id = payload["group_id"];
     p.sender = payload["name"].asString();
     p.time_stamp = notify->getDate();
+    p.paid_from_id = payload["from_id"];
+    p.paid_to_id = payload["dest_id"];
     addItem(p);
 }
 
@@ -403,22 +411,32 @@ void LLFloaterNotificationsTabbed::onItemClose(LLNotificationListItem* item)
 
 }
 
+//---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::onAdd( LLNotificationPtr notify )
 {
     removeItemByID(notify->getID(), notify->getName());
 }
 
+//---------------------------------------------------------------------------------
 void LLFloaterNotificationsTabbed::onClickDeleteAllBtn()
 {
     closeAllOnCurrentTab();
 }
 
+//---------------------------------------------------------------------------------
+void LLFloaterNotificationsTabbed::onClickCollapseAllBtn()
+{
+    collapseAllOnCurrentTab();
+}
+
+//---------------------------------------------------------------------------------
 void LLNotificationSeparator::initTaggedList(const std::string& tag, LLNotificationListView* list)
 {
     mNotificationListMap.insert(notification_list_map_t::value_type(tag, list));
     mNotificationLists.push_back(list);
 }
 
+//---------------------------------------------------------------------------------
 void LLNotificationSeparator::initTaggedList(const std::set<std::string>& tags, LLNotificationListView* list)
 {
     std::set<std::string>::const_iterator it = tags.begin();
@@ -428,11 +446,13 @@ void LLNotificationSeparator::initTaggedList(const std::set<std::string>& tags,
     }
 }
 
+//---------------------------------------------------------------------------------
 void LLNotificationSeparator::initUnTaggedList(LLNotificationListView* list)
 {
     mUnTaggedList = list;
 }
 
+//---------------------------------------------------------------------------------
 bool LLNotificationSeparator::addItem(std::string& tag, LLNotificationListItem* item)
 {
     notification_list_map_t::iterator it = mNotificationListMap.find(tag);
@@ -447,6 +467,7 @@ bool LLNotificationSeparator::addItem(std::string& tag, LLNotificationListItem*
     return false;
 }
 
+//---------------------------------------------------------------------------------
 bool LLNotificationSeparator::removeItemByID(std::string& tag, const LLUUID& id)
 {
     notification_list_map_t::iterator it = mNotificationListMap.find(tag);
@@ -461,6 +482,7 @@ bool LLNotificationSeparator::removeItemByID(std::string& tag, const LLUUID& id)
     return false;
 }
 
+//---------------------------------------------------------------------------------
 U32 LLNotificationSeparator::size() const
 {
     U32 size = 0;
@@ -476,6 +498,7 @@ U32 LLNotificationSeparator::size() const
     return size;
 }
 
+//---------------------------------------------------------------------------------
 LLPanel* LLNotificationSeparator::findItemByID(std::string& tag, const LLUUID& id)
 {
     notification_list_map_t::iterator it = mNotificationListMap.find(tag);
@@ -492,6 +515,7 @@ LLPanel* LLNotificationSeparator::findItemByID(std::string& tag, const LLUUID& i
 }
 
 //static
+//---------------------------------------------------------------------------------
 void LLNotificationSeparator::getItemsFromList(std::vector<LLNotificationListItem*>& items, LLNotificationListView* list)
 {
     std::vector<LLPanel*> list_items;
@@ -505,6 +529,7 @@ void LLNotificationSeparator::getItemsFromList(std::vector<LLNotificationListIte
     }
 }
 
+//---------------------------------------------------------------------------------
 void LLNotificationSeparator::getItems(std::vector<LLNotificationListItem*>& items) const
 {
     items.clear();
@@ -519,9 +544,11 @@ void LLNotificationSeparator::getItems(std::vector<LLNotificationListItem*>& ite
     }
 }
 
+//---------------------------------------------------------------------------------
 LLNotificationSeparator::LLNotificationSeparator()
     : mUnTaggedList(NULL)
 {}
 
+//---------------------------------------------------------------------------------
 LLNotificationSeparator::~LLNotificationSeparator()
 {}
diff --git a/indra/newview/llfloaternotificationstabbed.h b/indra/newview/llfloaternotificationstabbed.h
index 36eee2f86695bfe407836bb13360f055feffb362..5191b783f6356694703e6831348184c60b932d08 100644
--- a/indra/newview/llfloaternotificationstabbed.h
+++ b/indra/newview/llfloaternotificationstabbed.h
@@ -2,9 +2,9 @@
  * @file llfloaternotificationstabbed.h
  * @brief                                  
  *
- * $LicenseInfo:firstyear=2003&license=viewerlgpl$
+ * $LicenseInfo:firstyear=2015&license=viewerlgpl$
  * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
+ * Copyright (C) 2015, Linden Research, Inc.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -68,11 +68,11 @@ class LLNotificationSeparator
 class LLFloaterNotificationsTabbed : public LLTransientDockableFloater
 {
 public:
-	LOG_CLASS(LLFloaterNotificationsTabbed);
+    LOG_CLASS(LLFloaterNotificationsTabbed);
 
     LLFloaterNotificationsTabbed(const LLSD& key);
     virtual ~LLFloaterNotificationsTabbed();
-	BOOL postBuild();
+    BOOL postBuild();
 
     // other interface functions
     // check is window empty
@@ -86,12 +86,11 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater
 
     // Operating with outfit
     virtual void setVisible(BOOL visible);
-    void adjustWindowPosition();//not used - ?
 
-    /*virtual*/ void	setDocked(bool docked, bool pop_on_undock = true);
+    /*virtual*/ void    setDocked(bool docked, bool pop_on_undock = true);
     // override LLFloater's minimization according to EXT-1216
-    /*virtual*/ void	setMinimized(BOOL minimize);
-    /*virtual*/ void	handleReshape(const LLRect& rect, bool by_user);
+    /*virtual*/ void    setMinimized(BOOL minimize);
+    /*virtual*/ void    handleReshape(const LLRect& rect, bool by_user);
 
     void onStartUpToastClick(S32 x, S32 y, MASK mask);
     /*virtual*/ void onAdd(LLNotificationPtr notify);
@@ -102,8 +101,8 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater
     static LLFloaterNotificationsTabbed* getInstance(const LLSD& key = LLSD());
 
     // size constants for the window and for its elements
-    static const S32 MAX_WINDOW_HEIGHT		= 200;
-    static const S32 MIN_WINDOW_WIDTH		= 318;
+    static const S32 MAX_WINDOW_HEIGHT      = 200;
+    static const S32 MIN_WINDOW_WIDTH       = 318;
 
 private:
     // init Window's channel
@@ -119,9 +118,9 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater
     LLNotificationsUI::LLScreenChannel*	mChannel;
 
     /**
-	 * Reference to an appropriate Well chiclet to release "new message" state. EXT-3147
-	 */
-	LLSysWellChiclet* mSysWellChiclet;
+     * Reference to an appropriate Well chiclet to release "new message" state. EXT-3147
+     */
+    LLSysWellChiclet* mSysWellChiclet;
 
     bool mIsReshapedByUser;
 
@@ -144,12 +143,15 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater
     void clearScreenChannels();
     // Operating with items
     void addItem(LLNotificationListItem::Params p);
+    void getAllItemsOnCurrentTab(std::vector<LLPanel*>& items) const;
 
     // Closes all notifications and removes them from the Notification Well
     void closeAllOnCurrentTab();
+    void collapseAllOnCurrentTab();
 
     void onStoreToast(LLPanel* info_panel, LLUUID id);
     void onClickDeleteAllBtn();
+    void onClickCollapseAllBtn();
     // Handlers
     void onItemClick(LLNotificationListItem* item);
     void onItemClose(LLNotificationListItem* item);
@@ -162,6 +164,7 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater
     LLNotificationSeparator* mNotificationsSeparator;
     LLTabContainer* mNotificationsTabContainer;
     LLButton*	mDeleteAllBtn;
+    LLButton*	mCollapseAllBtn;
 };
 
 #endif // LL_FLOATERNOTIFICATIONSTABBED_H
diff --git a/indra/newview/llgroupiconctrl.cpp b/indra/newview/llgroupiconctrl.cpp
index 26680e1ea513ebac8f55ff80fd6512d4c5fd9740..6abf9ea637675cae1bafd8a927812e579ea22df9 100755
--- a/indra/newview/llgroupiconctrl.cpp
+++ b/indra/newview/llgroupiconctrl.cpp
@@ -52,7 +52,7 @@ LLGroupIconCtrl::LLGroupIconCtrl(const LLGroupIconCtrl::Params& p)
 	{
 		LLSD value(p.group_id);
 		setValue(value);
-    }
+	}
 	else
 	{
 		LLIconCtrl::setValue(mDefaultIconName);
diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp
index f280dc0ed351741781e6d2cea33364c3a5b83dcf..4c4dd07d7fa5e8a12b106e604ddc775bef7c8b94 100644
--- a/indra/newview/llnotificationlistitem.cpp
+++ b/indra/newview/llnotificationlistitem.cpp
@@ -1,8 +1,8 @@
 /** 
  * @file llnotificationlistitem.cpp
- * @brief                                    // TODO
+ * @brief                                   
  *
- * $LicenseInfo:firstyear=2000&license=viewerlgpl$
+ * $LicenseInfo:firstyear=2015&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2015, Linden Research, Inc.
  * 
@@ -109,37 +109,18 @@ std::string LLNotificationListItem::buildNotificationDate(const LLDate& time_sta
     return timeStr;
 }
 
-//---------------------------------------------------------------------------------
-//void LLNotificationTabbedItem::setTitle( std::string title )
-//{
-//    mTitleBox->setValue(title);
-//}
-
 void LLNotificationListItem::onClickCloseBtn()
 {
     mOnItemClose(this);
 }
 
-BOOL LLNotificationListItem::handleMouseDown(S32 x, S32 y, MASK mask)
+BOOL LLNotificationListItem::handleMouseUp(S32 x, S32 y, MASK mask)
 {
-    BOOL res = LLPanel::handleMouseDown(x, y, mask);
-    //if(!mCloseBtn->getRect().pointInRect(x, y))
-    //if(!mCloseBtn->getLocalRect().pointInRect(x, y))
-        //mOnItemClick(this);
-
+    BOOL res = LLPanel::handleMouseUp(x, y, mask);
+    mOnItemClick(this);
     return res;
 }
 
-void LLNotificationListItem::onMouseEnter(S32 x, S32 y, MASK mask)
-{
-    //setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemSelected" ));
-}
-
-void LLNotificationListItem::onMouseLeave(S32 x, S32 y, MASK mask)
-{
-    //setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemUnselected" ));
-}
-
 //static
 LLNotificationListItem* LLNotificationListItem::create(const Params& p)
 {
@@ -176,23 +157,18 @@ void LLNotificationListItem::onClickCondenseBtn()
     setExpanded(FALSE);
 }
 
-void setPanelSize(LLView* panel, S32 width, S32 height, BOOL called_from_parent)
-{
-    LLRect rect = panel->getRect();
-    panel->reshape(width, height, called_from_parent);
-}
-
 void LLNotificationListItem::setExpanded(BOOL value)
 {
     mCondensedViewPanel->setVisible(!value);
     mExpandedViewPanel->setVisible(value);
+    S32 width = this->getRect().getWidth();
     if (value)
     {
-        setPanelSize(this, 331, mExpandedHeight, FALSE);
+        this->reshape(width, mExpandedHeight, FALSE);
     }
-    else 
+    else
     {
-        setPanelSize(this, 331, mCondensedHeight, FALSE);
+        this->reshape(width, mCondensedHeight, FALSE);
     }
 }
 
@@ -211,31 +187,11 @@ std::set<std::string> LLTransactionNotificationListItem::getTypes()
     return types;
 }
 
-std::set<std::string> LLSystemNotificationListItem::getTypes()
-{
-    std::set<std::string> types;
-    //types.insert("AddPrimitiveFailure");
-    //types.insert("AddToNavMeshNoCopy");
-    //types.insert("AssetServerTimeoutObjReturn");
-    //types.insert("AvatarEjected");
-    //types.insert("AutoUnmuteByIM");
-    //types.insert("AutoUnmuteByInventory");
-    //types.insert("AutoUnmuteByMoney");
-    //types.insert("BuyInventoryFailedNoMoney");
-    //types.insert("DeactivatedGesturesTrigger");
-    //types.insert("DeedFailedNoPermToDeedForGroup");
-    //types.insert("WhyAreYouTryingToWearShrubbery");
-    //types.insert("YouDiedAndGotTPHome");
-    //types.insert("YouFrozeAvatar");
-    //types.insert("OfferCallingCard");
-    return types;
-}
-
 LLInviteNotificationListItem::LLInviteNotificationListItem(const Params& p)
-	: LLNotificationListItem(p),
-	mSenderBox(NULL)
+    : LLNotificationListItem(p),
+    mSenderBox(NULL)
 {
-	buildFromFile("panel_notification_list_item.xml");
+    buildFromFile("panel_notification_list_item.xml");
 }
 
 BOOL LLInviteNotificationListItem::postBuild()
@@ -256,19 +212,8 @@ BOOL LLInviteNotificationListItem::postBuild()
 
     mSenderBox = getChild<LLTextBox>("sender_resident");
     mSenderBoxExp = getChild<LLTextBox>("sender_resident_exp");
-    if (!mParams.sender.empty())
-    {
-        LLStringUtil::format_map_t string_args;
-        string_args["[SENDER_RESIDENT]"] = llformat("%s", mParams.sender.c_str());
-        std::string sender_text = getString("sender_resident_text", string_args);
-        mSenderBox->setValue(sender_text);
-        mSenderBox->setVisible(TRUE);
-        mSenderBoxExp->setValue(sender_text);
-        mSenderBoxExp->setVisible(TRUE);
-    } else {
-        mSenderBox->setVisible(FALSE);
-        mSenderBoxExp->setVisible(FALSE);
-    }
+
+    setSender(mParams.sender);
 
     LLSD value(mParams.group_id);
     setGroupId(value);
@@ -288,18 +233,7 @@ bool LLInviteNotificationListItem::updateFromCache()
 {
     LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(mGroupId);
     if (!group_data) return false;
-    if (!group_data->mName.empty())
-    {
-        LLStringUtil::format_map_t string_args;
-        string_args["[GROUP_NAME]"] = llformat("%s", group_data->mName.c_str());
-        std::string group_name = getString("group_name_text", string_args);
-        mGroupNameBoxExp->setValue(group_name);
-        mGroupNameBoxExp->setVisible(TRUE);
-    }
-    else
-    {
-        mGroupNameBoxExp->setValue(LLStringUtil::null);
-    }
+    setGroupName(group_data->mName);
     return true;
 }
 
@@ -311,7 +245,7 @@ void LLInviteNotificationListItem::setGroupId(const LLUUID& value)
         gm->removeObserver(this);
     }
 
-    mID = mGroupId; // set LLGroupMgrObserver::mID to make callbacks work
+    mID = mGroupId;
 
     // Check if cache already contains image_id for that group
     if (!updateFromCache())
@@ -321,9 +255,45 @@ void LLInviteNotificationListItem::setGroupId(const LLUUID& value)
     }
 }
 
+void LLInviteNotificationListItem::setGroupName(std::string name)
+{
+    if (!name.empty())
+    {
+        LLStringUtil::format_map_t string_args;
+        string_args["[GROUP_NAME]"] = llformat("%s", name.c_str());
+        std::string group_box_str = getString("group_name_text", string_args);
+        mGroupNameBoxExp->setValue(group_box_str);
+        mGroupNameBoxExp->setVisible(TRUE);
+    }
+    else
+    {
+        mGroupNameBoxExp->setValue(LLStringUtil::null);
+        mGroupNameBoxExp->setVisible(FALSE);
+    }
+}
+
+void LLInviteNotificationListItem::setSender(std::string sender)
+{
+    if (!sender.empty())
+    {
+        LLStringUtil::format_map_t string_args;
+        string_args["[SENDER_RESIDENT]"] = llformat("%s", sender.c_str());
+        std::string sender_text = getString("sender_resident_text", string_args);
+        mSenderBox->setValue(sender_text);
+        mSenderBox->setVisible(TRUE);
+        mSenderBoxExp->setValue(sender_text);
+        mSenderBoxExp->setVisible(TRUE);
+    } else {
+        mSenderBox->setValue(LLStringUtil::null);
+        mSenderBoxExp->setValue(LLStringUtil::null);
+        mSenderBox->setVisible(FALSE);
+        mSenderBoxExp->setVisible(FALSE);
+    }
+}
+
 LLTransactionNotificationListItem::LLTransactionNotificationListItem(const Params& p)
     : LLNotificationListItem(p),
-    mTransactionIcon(NULL)
+    mAvatarIcon(NULL)
 {
     buildFromFile("panel_notification_list_item.xml");
 }
@@ -331,20 +301,20 @@ LLTransactionNotificationListItem::LLTransactionNotificationListItem(const Param
 BOOL LLTransactionNotificationListItem::postBuild()
 {
     BOOL rv = LLNotificationListItem::postBuild();
+    mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
+    mAvatarIconExp = getChild<LLAvatarIconCtrl>("avatar_icon_exp");
     if (mParams.notification_name == "PaymentReceived")
     {
-        mTransactionIcon = getChild<LLIconCtrl>("incoming_transaction_icon");
-        mTransactionIconExp = getChild<LLIconCtrl>("incoming_transaction_icon_exp");
+        mAvatarIcon->setValue(mParams.paid_from_id);
+        mAvatarIconExp->setValue(mParams.paid_from_id);
     }
     else if (mParams.notification_name == "PaymentSent")
     {
-        mTransactionIcon = getChild<LLIconCtrl>("outcoming_transaction_icon");
-        mTransactionIconExp = getChild<LLIconCtrl>("outcoming_transaction_icon_exp");
+        mAvatarIcon->setValue(mParams.paid_to_id);
+        mAvatarIconExp->setValue(mParams.paid_to_id);
     }
-    if(mTransactionIcon)
-        mTransactionIcon->setVisible(TRUE);
-    if(mTransactionIconExp)
-        mTransactionIconExp->setVisible(TRUE);
+    mAvatarIcon->setVisible(TRUE);
+    mAvatarIconExp->setVisible(TRUE);
     return rv;
 }
 
diff --git a/indra/newview/llnotificationlistitem.h b/indra/newview/llnotificationlistitem.h
index f5cd9422b5d1ebd9ffefbec7cec99f96336a7d8e..22003a3a6a833f8f2618eeb23814e66bd75c0a21 100644
--- a/indra/newview/llnotificationlistitem.h
+++ b/indra/newview/llnotificationlistitem.h
@@ -1,8 +1,8 @@
 /** 
  * @file llnotificationlistitem.h
- * @brief                                    // TODO
+ * @brief                                    
  *
- * $LicenseInfo:firstyear=2003&license=viewerlgpl$
+ * $LicenseInfo:firstyear=2015&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2015, Linden Research, Inc.
  * 
@@ -32,6 +32,7 @@
 #include "lltextbox.h"
 #include "llbutton.h"
 #include "llgroupiconctrl.h"
+#include "llavatariconctrl.h"
 
 #include "llgroupmgr.h"
 
@@ -40,13 +41,15 @@
 class LLNotificationListItem : public LLPanel
 {
 public:
-    struct Params :	public LLInitParam::Block<Params, LLPanel::Params>
+    struct Params : public LLInitParam::Block<Params, LLPanel::Params>
     {
-        LLUUID        	notification_id;
+        LLUUID          notification_id;
         LLUUID          group_id;
-        std::string		notification_name;
-        std::string		title;
-        std::string		sender;
+        LLUUID          paid_from_id;
+        LLUUID          paid_to_id;
+        std::string     notification_name;
+        std::string     title;
+        std::string     sender;
         LLDate time_stamp;
         Params()        {};
     };
@@ -65,44 +68,41 @@ class LLNotificationListItem : public LLPanel
     std::string& getNotificationName() { return mNotificationName; }
 
     // handlers
-    virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-    virtual void onMouseEnter(S32 x, S32 y, MASK mask);
-    virtual void onMouseLeave(S32 x, S32 y, MASK mask);
+    virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
 
     //callbacks
     typedef boost::function<void (LLNotificationListItem* item)> item_callback_t;
     typedef boost::signals2::signal<void (LLNotificationListItem* item)> item_signal_t;
-    item_signal_t mOnItemClose;	
-    item_signal_t mOnItemClick;	
+    item_signal_t mOnItemClose;
+    item_signal_t mOnItemClick;
     boost::signals2::connection setOnItemCloseCallback(item_callback_t cb) { return mOnItemClose.connect(cb); }
     boost::signals2::connection setOnItemClickCallback(item_callback_t cb) { return mOnItemClick.connect(cb); }
-
+    
+    void setExpanded(BOOL value);
     virtual BOOL postBuild();
 protected:
     LLNotificationListItem(const Params& p);
-    virtual	~LLNotificationListItem();
+    virtual ~LLNotificationListItem();
 
     static std::string buildNotificationDate(const LLDate&);
-    void setExpanded(BOOL value);
-	void onClickExpandBtn();
-	void onClickCondenseBtn();
+    void onClickExpandBtn();
+    void onClickCondenseBtn();
     void onClickCloseBtn();
 
     Params      mParams;
-    LLTextBox*	mTitleBox;
-    LLTextBox*	mTitleBoxExp;
-    LLTextBox*	mNoticeTextExp;
+    LLTextBox*  mTitleBox;
+    LLTextBox*  mTitleBoxExp;
+    LLTextBox*  mNoticeTextExp;
     LLTextBox*  mTimeBox;
     LLTextBox*  mTimeBoxExp;
-	LLButton*	mExpandBtn;
-	LLButton*	mCondenseBtn;
-    LLButton*	mCloseBtn;
-	LLButton*	mCloseBtnExp;
+    LLButton*   mExpandBtn;
+    LLButton*   mCondenseBtn;
+    LLButton*   mCloseBtn;
+    LLButton*   mCloseBtnExp;
     LLLayoutStack* mVerticalStack;
     LLPanel*    mCondensedViewPanel;
-	LLPanel*    mExpandedViewPanel;
+    LLPanel*    mExpandedViewPanel;
     LLPanel*    mMainPanel;
-    //LLUUID		mID;
     std::string mTitle;
     std::string mNotificationName;
     S32 mCondensedHeight;
@@ -113,11 +113,7 @@ class LLInviteNotificationListItem
     : public LLNotificationListItem, public LLGroupMgrObserver
 {
 public:
-    //void setGroupID(const LLUUID& group_id);
-    //void setGroupIconID(const LLUUID& group_icon_id);
-    //void setGroupName(const std::string& group_name);
     static std::set<std::string> getTypes();
-
     virtual BOOL postBuild();
 
     void setGroupId(const LLUUID& value);
@@ -129,41 +125,43 @@ class LLInviteNotificationListItem
     LLInviteNotificationListItem(const LLInviteNotificationListItem &);
     LLInviteNotificationListItem & operator=(LLInviteNotificationListItem &);
 
+    void setSender(std::string sender);
+    void setGroupName(std::string name);
+
     bool updateFromCache();
 
     LLGroupIconCtrl* mGroupIcon;
     LLGroupIconCtrl* mGroupIconExp;
-    LLUUID		mGroupId;
-	LLTextBox*	mSenderBox;
-    LLTextBox*	mSenderBoxExp;
-    LLTextBox*	mGroupNameBoxExp;
+    LLUUID      mGroupId;
+    LLTextBox*  mSenderBox;
+    LLTextBox*  mSenderBoxExp;
+    LLTextBox*  mGroupNameBoxExp;
 };
 
 class LLTransactionNotificationListItem : public LLNotificationListItem
 {
 public:
     static std::set<std::string> getTypes();
-	virtual BOOL postBuild();
+    virtual BOOL postBuild();
 private:
     friend class LLNotificationListItem;
     LLTransactionNotificationListItem(const Params& p);
     LLTransactionNotificationListItem(const LLTransactionNotificationListItem &);
     LLTransactionNotificationListItem & operator=(LLTransactionNotificationListItem &);
-	LLIconCtrl* mTransactionIcon;
-    LLIconCtrl* mTransactionIconExp;
+    LLAvatarIconCtrl* mAvatarIcon;
+    LLAvatarIconCtrl* mAvatarIconExp;
 };
 
 class LLSystemNotificationListItem : public LLNotificationListItem
 {
 public:
-    static std::set<std::string> getTypes();
-	virtual BOOL postBuild();
+    virtual BOOL postBuild();
 private:
     friend class LLNotificationListItem;
     LLSystemNotificationListItem(const Params& p);
     LLSystemNotificationListItem(const LLSystemNotificationListItem &);
     LLSystemNotificationListItem & operator=(LLSystemNotificationListItem &);
-	LLIconCtrl* mSystemNotificationIcon;
+    LLIconCtrl* mSystemNotificationIcon;
     LLIconCtrl* mSystemNotificationIconExp;
 };
 
diff --git a/indra/newview/llnotificationlistview.cpp b/indra/newview/llnotificationlistview.cpp
index 8690f185e9bbdaf619c3259d63a048f317fd65ef..9dce68c9c61c5a2050c53fc329109bf89c2ab898 100644
--- a/indra/newview/llnotificationlistview.cpp
+++ b/indra/newview/llnotificationlistview.cpp
@@ -2,9 +2,9 @@
  * @file llnotificationlistview.cpp
  * @brief
  *
- * $LicenseInfo:firstyear=2009&license=viewerlgpl$
+ * $LicenseInfo:firstyear=2015&license=viewerlgpl$
  * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
+ * Copyright (C) 2015, Linden Research, Inc.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
diff --git a/indra/newview/llnotificationlistview.h b/indra/newview/llnotificationlistview.h
index 9329826faff416fef9ba556b94438b3a334241ac..307ad8778960ff1e9bd9ac564c6f5c76c3b2d9e8 100644
--- a/indra/newview/llnotificationlistview.h
+++ b/indra/newview/llnotificationlistview.h
@@ -1,10 +1,10 @@
 /** 
- * @file llflatlistview.h
- * @brief LLFlatListView base class and extension to support messages for several cases of an empty list.
+ * @file llnotificationlistview.h
+ * @brief LLNotificationListView class to support notifications list contained in enclosing floater.
  *
- * $LicenseInfo:firstyear=2009&license=viewerlgpl$
+ * $LicenseInfo:firstyear=2015&license=viewerlgpl$
  * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
+ * Copyright (C) 2015, Linden Research, Inc.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -46,4 +46,4 @@ class LLNotificationListView : public LLFlatListView
     virtual bool addNotification(LLNotificationListItem * item);
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/indra/newview/llsyswellitem.cpp b/indra/newview/llsyswellitem.cpp
index 31ff9823995826ebd1f1d15011ae6138d0b5c745..057d80457c65278d89d5914d5765d77af20b1e4f 100755
--- a/indra/newview/llsyswellitem.cpp
+++ b/indra/newview/llsyswellitem.cpp
@@ -31,7 +31,6 @@
 
 #include "llwindow.h"
 #include "v4color.h"
-#include "lltrans.h"
 #include "lluicolortable.h"
 
 //---------------------------------------------------------------------------------
@@ -89,4 +88,6 @@ void LLSysWellItem::onMouseLeave(S32 x, S32 y, MASK mask)
 	setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemUnselected" ));
 }
 
-//---------------------------------------------------------------------------------
\ No newline at end of file
+//---------------------------------------------------------------------------------
+
+
diff --git a/indra/newview/llsyswellitem.h b/indra/newview/llsyswellitem.h
index 8763caa467207c7b7fffee18ddfb13ca5fc9af5c..d961708a01dae7966ead36d7f332bf6c34df6885 100755
--- a/indra/newview/llsyswellitem.h
+++ b/indra/newview/llsyswellitem.h
@@ -32,8 +32,6 @@
 #include "llbutton.h"
 #include "lliconctrl.h"
 
-#include "llgroupmgr.h"
-
 #include <string>
 
 class LLSysWellItem : public LLPanel
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index 8babb874f82029175ee9f9a382c868c03cce1866..8f64cff47c07a2264ec91806b3b76b970814759d 100755
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -295,158 +295,6 @@ BOOL LLIMWellWindow::ObjectRowPanel::handleRightMouseDown(S32 x, S32 y, MASK mas
 	return mChiclet->handleRightMouseDown(x, y, mask);
 }
 
-/************************************************************************/
-/*         LLNotificationWellWindow implementation                      */
-/************************************************************************/
-
-//////////////////////////////////////////////////////////////////////////
-// PUBLIC METHODS
-LLNotificationWellWindow::WellNotificationChannel::WellNotificationChannel(LLNotificationWellWindow* well_window)
-:	LLNotificationChannel(LLNotificationChannel::Params().name(well_window->getPathname())),
-	mWellWindow(well_window)
-{
-	connectToChannel("Notifications");
-	connectToChannel("Group Notifications");
-	connectToChannel("Offer");
-}
-
-LLNotificationWellWindow::LLNotificationWellWindow(const LLSD& key)
-:	LLSysWellWindow(key)
-{
-	mNotificationUpdates.reset(new WellNotificationChannel(this));
-}
-
-// static
-LLNotificationWellWindow* LLNotificationWellWindow::getInstance(const LLSD& key /*= LLSD()*/)
-{
-	return LLFloaterReg::getTypedInstance<LLNotificationWellWindow>("notification_well_window", key);
-}
-
-// virtual
-BOOL LLNotificationWellWindow::postBuild()
-{
-	BOOL rv = LLSysWellWindow::postBuild();
-	setTitle(getString("title_notification_well_window"));
-	return rv;
-}
-
-// virtual
-void LLNotificationWellWindow::setVisible(BOOL visible)
-{
-	if (visible)
-	{
-		// when Notification channel is cleared, storable toasts will be added into the list.
-		clearScreenChannels();
-	}
-
-	LLSysWellWindow::setVisible(visible);
-}
-
-//---------------------------------------------------------------------------------
-void LLNotificationWellWindow::addItem(LLSysWellItem::Params p)
-{
-	LLSD value = p.notification_id;
-	// do not add clones
-	if( mMessageList->getItemByValue(value))
-		return;
-
-	LLSysWellItem* new_item = new LLSysWellItem(p);
-	if (mMessageList->addItem(new_item, value, ADD_TOP))
-	{
-		mSysWellChiclet->updateWidget(isWindowEmpty());
-		reshapeWindow();
-		new_item->setOnItemCloseCallback(boost::bind(&LLNotificationWellWindow::onItemClose, this, _1));
-		new_item->setOnItemClickCallback(boost::bind(&LLNotificationWellWindow::onItemClick, this, _1));
-	}
-	else
-	{
-		LL_WARNS() << "Unable to add Notification into the list, notification ID: " << p.notification_id
-			<< ", title: " << p.title
-			<< LL_ENDL;
-
-		new_item->die();
-	}
-}
-
-void LLNotificationWellWindow::closeAll()
-{
-	// Need to clear notification channel, to add storable toasts into the list.
-	clearScreenChannels();
-	std::vector<LLPanel*> items;
-	mMessageList->getItems(items);
-	for (std::vector<LLPanel*>::iterator
-			 iter = items.begin(),
-			 iter_end = items.end();
-		 iter != iter_end; ++iter)
-	{
-		LLSysWellItem* sys_well_item = dynamic_cast<LLSysWellItem*>(*iter);
-		if (sys_well_item)
-			onItemClose(sys_well_item);
-	}
-}
-
-//////////////////////////////////////////////////////////////////////////
-// PRIVATE METHODS
-void LLNotificationWellWindow::initChannel() 
-{
-	LLSysWellWindow::initChannel();
-	if(mChannel)
-	{
-		mChannel->addOnStoreToastCallback(boost::bind(&LLNotificationWellWindow::onStoreToast, this, _1, _2));
-	}
-}
-
-void LLNotificationWellWindow::clearScreenChannels()
-{
-	// 1 - remove StartUp toast and channel if present
-	if(!LLNotificationsUI::LLScreenChannel::getStartUpToastShown())
-	{
-		LLNotificationsUI::LLChannelManager::getInstance()->onStartUpToastClose();
-	}
-
-	// 2 - remove toasts in Notification channel
-	if(mChannel)
-	{
-		mChannel->removeAndStoreAllStorableToasts();
-	}
-}
-
-void LLNotificationWellWindow::onStoreToast(LLPanel* info_panel, LLUUID id)
-{
-	LLSysWellItem::Params p;	
-	p.notification_id = id;
-	p.title = static_cast<LLToastPanel*>(info_panel)->getTitle();
-	addItem(p);
-}
-
-void LLNotificationWellWindow::onItemClick(LLSysWellItem* item)
-{
-	LLUUID id = item->getID();
-	LLFloaterReg::showInstance("inspect_toast", id);
-}
-
-void LLNotificationWellWindow::onItemClose(LLSysWellItem* item)
-{
-	LLUUID id = item->getID();
-	
-	if(mChannel)
-	{
-		// removeItemByID() is invoked from killToastByNotificationID() and item will removed;
-		mChannel->killToastByNotificationID(id);
-	}
-	else
-	{
-		// removeItemByID() should be called one time for each item to remove it from notification well
-		removeItemByID(id);
-	}
-
-}
-
-void LLNotificationWellWindow::onAdd( LLNotificationPtr notify )
-{
-	removeItemByID(notify->getID());
-}
-
 /************************************************************************/
 /*         LLIMWellWindow  implementation                               */
 /************************************************************************/
diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h
index 71b41476f53f62fa0b54afa5b814bcd22c023ff4..d02293e6fffa2fe595b9e75ef05a5ca0a5536e29 100755
--- a/indra/newview/llsyswellwindow.h
+++ b/indra/newview/llsyswellwindow.h
@@ -95,57 +95,6 @@ class LLSysWellWindow : public LLTransientDockableFloater
 	bool mIsReshapedByUser;
 };
 
-/**
- * Class intended to manage incoming notifications.
- * 
- * It contains a list of notifications that have not been responded to.
- */
-class LLNotificationWellWindow : public LLSysWellWindow
-{
-public:
-	LLNotificationWellWindow(const LLSD& key);
-	static LLNotificationWellWindow* getInstance(const LLSD& key = LLSD());
-
-	/*virtual*/ BOOL postBuild();
-	/*virtual*/ void setVisible(BOOL visible);
-	/*virtual*/ void onAdd(LLNotificationPtr notify);
-	// Operating with items
-	void addItem(LLSysWellItem::Params p);
-
-	// Closes all notifications and removes them from the Notification Well
-	void closeAll();
-
-protected:
-	struct WellNotificationChannel : public LLNotificationChannel
-	{
-		WellNotificationChannel(LLNotificationWellWindow*);
-		void onDelete(LLNotificationPtr notify)
-		{
-			mWellWindow->removeItemByID(notify->getID());
-		} 
-
-		LLNotificationWellWindow* mWellWindow;
-	};
-
-	LLNotificationChannelPtr mNotificationUpdates;
-	/*virtual*/ const std::string& getAnchorViewName() { return NOTIFICATION_WELL_ANCHOR_NAME; }
-
-private:
-	// init Window's channel
-	void initChannel();
-	void clearScreenChannels();
-
-	void onStoreToast(LLPanel* info_panel, LLUUID id);
-
-	// Handlers
-	void onItemClick(LLSysWellItem* item);
-	void onItemClose(LLSysWellItem* item);
-
-	// ID of a toast loaded by user (by clicking notification well item)
-	LLUUID mLoadedToastId;
-
-};
-
 /**
  * Class intended to manage incoming messages in IM chats.
  * 
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index d20b8e342a054d6e32ad81a231201795c4a1c9a6..a197c1fe1ad97268e9e131033969586606db5f0f 100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -257,9 +257,7 @@ void LLViewerFloaterReg::registerFloaters()
 
 	LLFloaterReg::add("notifications_console", "floater_notifications_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationConsole>);
 	
-    LLFloaterReg::add("notification_well_window", "floater_notifications_tabbed.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationsTabbed>);
-    //LLFloaterReg::add("notification_well_window", "floater_sys_well.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNotificationWellWindow>);
-	//LLFloaterReg::add("notifications_tabbed", "floater_notifications_tabbed.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationsTabbed>);
+	LLFloaterReg::add("notification_well_window", "floater_notifications_tabbed.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationsTabbed>);
 
 	LLFloaterReg::add("object_weights", "floater_object_weights.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterObjectWeights>);
 	LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>);
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 44eb4361f178b9897baab65367c53a10c7c06598..6507794cdd434e774c17c491ea8c9a063f51b7b8 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -5622,6 +5622,7 @@ static void process_money_balance_reply_extended(LLMessageSystem* msg)
 			}
 		}
 		final_args["MESSAGE"] = message;
+		payload["dest_id"] = dest_id;
 		notification = success ? "PaymentSent" : "PaymentFailure";
 	}
 	else {
diff --git a/indra/newview/skins/default/textures/icons/Icon_Group_Large.png b/indra/newview/skins/default/textures/icons/Icon_Group_Large.png
deleted file mode 100644
index 6dc0cbda0b062692d0defa18749563e9e505dadc..0000000000000000000000000000000000000000
Binary files a/indra/newview/skins/default/textures/icons/Icon_Group_Large.png and /dev/null differ
diff --git a/indra/newview/skins/default/textures/icons/Icon_Group_Small.png b/indra/newview/skins/default/textures/icons/Icon_Group_Small.png
deleted file mode 100644
index ef2b521a1f15a86454a7dffaf7770bfc35f37666..0000000000000000000000000000000000000000
Binary files a/indra/newview/skins/default/textures/icons/Icon_Group_Small.png and /dev/null differ
diff --git a/indra/newview/skins/default/textures/icons/Incoming_Transaction_Large.png b/indra/newview/skins/default/textures/icons/Incoming_Transaction_Large.png
deleted file mode 100644
index e73dfe26956b8e068c4e1e1b1dca9aa88182c524..0000000000000000000000000000000000000000
Binary files a/indra/newview/skins/default/textures/icons/Incoming_Transaction_Large.png and /dev/null differ
diff --git a/indra/newview/skins/default/textures/icons/Incoming_Transaction_Small.png b/indra/newview/skins/default/textures/icons/Incoming_Transaction_Small.png
deleted file mode 100644
index 8b39770c63e3bc264ee9b1f36546ff7b9561f0b8..0000000000000000000000000000000000000000
Binary files a/indra/newview/skins/default/textures/icons/Incoming_Transaction_Small.png and /dev/null differ
diff --git a/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Large.png b/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Large.png
deleted file mode 100644
index 79011edd8bf37a5159572bb59c52defea80862bf..0000000000000000000000000000000000000000
Binary files a/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Large.png and /dev/null differ
diff --git a/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Small.png b/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Small.png
deleted file mode 100644
index 96c6150f3bb690cacf477343301a2d8bfa3edf7f..0000000000000000000000000000000000000000
Binary files a/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Small.png and /dev/null differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index eef7d56e753e1811f3cf41a5f48ddbaa7ff05a96..e47e0c03f149696392d0158d106c36361e31ee93 100755
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -795,17 +795,7 @@ with the same filename but different name
   <texture name="Camera_Drag_Dot" file_name="world/CameraDragDot.png"/>
   <texture name="NavBar Separator" file_name="navbar/separator.png"/>
 
-  <texture name="Notification_Condense" file_name="icons/Icon_Notification_Condense.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Notification_Expand" file_name="icons/Icon_Notification_Expand.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Icon_Group_Small" file_name="icons/Icon_Group_Small.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Icon_Group_Large" file_name="icons/Icon_Group_Large.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Icon_Attachment_Small" file_name="icons/Icon_Attachment_Small.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Icon_Attachment_Large" file_name="icons/Icon_Attachment_Large.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="System_Notification_Small" file_name="icons/System_Notification_Small.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="System_Notification_Large" file_name="icons/System_Notification_Large.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Incoming_Transaction_Small" file_name="icons/Incoming_Transaction_Small.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Incoming_Transaction_Large" file_name="icons/Incoming_Transaction_Large.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Outcoming_Transaction_Small" file_name="icons/Outcoming_Transaction_Small.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-  <texture name="Outcoming_Transaction_Large" file_name="icons/Outcoming_Transaction_Large.png"	preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" />
-
+  <texture name="Notification_Condense" file_name="icons/Icon_Notification_Condense.png" preload="true"/>
+  <texture name="Notification_Expand" file_name="icons/Icon_Notification_Expand.png" preload="true"/>
+  <texture name="System_Notification" file_name="icons/SL_Logo.png" preload="true"/>
 </textures>
diff --git a/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml b/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml
index 6162bc99b2914f142db0628f61c1626c61192c72..55ecfb637b4946ef57c1e3029ffbc0525e6480c4 100644
--- a/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml
+++ b/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml
@@ -81,7 +81,7 @@
           left="0"
           top="5"
           height="0"
-          width="330"/>
+          width="328"/>
       </panel>
       <panel
        border="true"
@@ -98,13 +98,13 @@
           left="0"
           top="5"
           height="0"
-          width="330"/>
+          width="328"/>
       </panel>
     </tab_container>
     
     <layout_stack width="336" height="26" enabled="true" orientation="horizontal"  follows="left|right" name="ButtonsStack">
       <layout_panel width="336" height="30" enabled="true" orientation="horizontal" name="CondenseAllButtonPanel">
-        <button width="93" height="21" left="2" label="Collapse all" name="CondenseAllButton">
+        <button width="93" height="21" left="2" label="Collapse all" name="collapse_all_button">
         </button>
       </layout_panel>
       <layout_panel width="336" height="30" enabled="true" orientation="horizontal" name="GapLayoutPanel">
@@ -118,48 +118,4 @@
     </layout_stack>
   </layout_panel>
   </layout_stack>
-  </floater>
-
-<!--
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater
- legacy_header_height="18"
- bevel_style="in"
- layout="topleft"
- name="notifications_tabbed_window"
- help_topic="notification_chiclet"
- save_rect="true"
- title="NOTIFICATIONS"
- width="320"
- min_width="320"
- height="23"
- can_minimize="false"
- can_tear_off="false"
- can_resize="true"
- can_drag_on_left="false"
- can_dock="true"
- save_dock_state="true"
- save_visibility="true"
- single_instance="true"
->
-  <string
-   name="title_im_well_window">
-    CONVERSATIONS
-  </string>
-  <string
-   name="title_notification_well_window">
-    NOTIFICATIONS1
-  </string>
-
-  <flat_list_view
-    color="FloaterDefaultBackgroundColor"
-    follows="all"
-    layout="topleft"
-    name="notification_list"
-    left="1"
-    top="20"
-    height="0"
-    width="318"/>
 </floater>
--->
-
diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml
index ecedb2743896e3d3b75d56f0d9fba45cb9a4e6cf..2c5176cf01367f6b967455e608f3334d3451b7fa 100755
--- a/indra/newview/skins/default/xui/en/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml
@@ -23,10 +23,6 @@
      name="title_im_well_window">
         CONVERSATIONS
     </string>
-    <string
-     name="title_notification_well_window">
-        NOTIFICATIONS
-    </string>
 
     <flat_list_view
 	    color="FloaterDefaultBackgroundColor"
diff --git a/indra/newview/skins/default/xui/en/language_settings.xml b/indra/newview/skins/default/xui/en/language_settings.xml
index 3ad0f04469bf7e1808d719d95840790a4440c0b6..51779e4bfd2658f2c149537b31519cb378c134c2 100755
--- a/indra/newview/skins/default/xui/en/language_settings.xml
+++ b/indra/newview/skins/default/xui/en/language_settings.xml
@@ -50,7 +50,7 @@
 	<string name="LTimeSec">second,datetime,local</string>
 	<string name="LTimeHour">hour,datetime,local</string>
 	<string name="LTimeMin">min,datetime,local</string>	
-	<string name="LTimeYear">year,datetime,local</string>
+	<string name="LTimeYear">year,datetime,local</string>	
 	
 	<string name="UTCTimeWeek">weekday,datetime,utc</string>
 	<string name="UTCTimeDay">day,datetime,utc</string>
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index 0d9612990d65f71679836ae963344830ec4fa4e7..e91eea04d137da0329c0f710e3881092685a7cb0 100755
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -303,7 +303,7 @@
       <menu_item_call
         label="Show Notifications Console"
         name="Show Notifications Console"
-        visible="true"
+        visible="false"
         shortcut="control|shift|5">
         <on_click
          function="Floater.Toggle"
diff --git a/indra/newview/skins/default/xui/en/panel_notification_list_item.xml b/indra/newview/skins/default/xui/en/panel_notification_list_item.xml
index 05b721000f45d18dbd4d3de5a1ca126af069dbaa..55456723a235309dd0459f646066b3ddca068168 100644
--- a/indra/newview/skins/default/xui/en/panel_notification_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification_list_item.xml
@@ -39,23 +39,21 @@
       <layout_stack top="0" left="0" width="325" height="50" orientation="horizontal" follows="left|top|right|bottom" name="horizontal_stack">
       <layout_panel width="30" height="39" orientation="horizontal" follows="left|top|right|bottom" name="layout_panel_right">
         <group_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="group_icon" tool_tip="Group" default_icon_name="Generic_Group" visible="true"/>
-        <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="system_notification_icon" tool_tip="Icon" image_name="System_Notification_Small" visible="false"/>
-        <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="incoming_transaction_icon" tool_tip="Icon" image_name="Incoming_Transaction_Small" visible="false"/>
-        <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="outcoming_transaction_icon" tool_tip="Icon" image_name="Outcoming_Transaction_Small" visible="false"/>
+        <avatar_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="avatar_icon" tool_tip="Avatar" default_icon_name="Generic_Person" visible="false"/>
+        <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="system_notification_icon" tool_tip="Icon" image_name="System_Notification" visible="false"/>
       </layout_panel>
       <layout_panel width="260" height="50" orientation="horizontal" name="layout_panel_middle">
         <panel border="false" top="0" width="260" height="38" bevel_style="none" follows="left|top|right" layout="topleft" name="main_info_panel">
           <panel border="false" top="0" left="0" width="260" height="19" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="notification_title_panel">
-            <text allow_scroll="false" font="SansSerifSmall" top="6" left="0" width="245" height="12" layout="topleft" follows="right|left" text_color="White"
+            <text allow_scroll="false" font="SansSerifSmall" top="6" left="0" width="260" height="12" layout="topleft" follows="right|left" text_color="White"
               use_ellipses="true" word_wrap="true" mouse_opaque="false" name="notification_title" >
               Group Name:Notice Title N o t i c e T i t l e N o t i c e T i t l e N o t i c e T i t l e N oticeTitle
             </text>
-            <icon top="0" left="242" width="21" height="21" image_name="Icon_Attachment_Small" follows="right" mouse_opaque="true" name="icon_attachment_small" tool_tip="Attachment"/>
           </panel>
           <panel border="false" top="23" left="0" width="260" height="15" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="sender_time_panel">
-            <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="250" height="13" layout="topleft" follows="right|left"
-              use_ellipses="true" word_wrap="true" mouse_opaque="false" name="sender_resident" visible="false">
-              Sender:Resident
+            <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="170" height="13" layout="topleft" follows="right|left"
+              use_ellipses="true" word_wrap="false" mouse_opaque="false" name="sender_resident" visible="false">
+              Sender: "Resident R e s i d e n t R e s i d e n t"
             </text>
             <text allow_scroll="false" font="SansSerifSmall" top="0" right="-5" width="95" height="13" follows="right" halign="right" layout="topleft" left_pad="5"
               name="notification_time" value="2014/12/24 23:30" />
@@ -76,19 +74,17 @@
   <layout_panel top="0" left="0" height="196" follows="left|top|right|bottom" layout="topleft" name="layout_panel_expanded_view" visible="true">
    <panel border="true" top="0" left="5" height="193" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="panel_expanded_view">
       <layout_stack top="0" left="0" width="325" height="193" orientation="horizontal" follows="left|top|right|bottom" name="horizontal_stack">
-      <layout_panel width="60" height="170" orientation="horizontal" follows="left|top|bottom" name="layout_panel_right_exp">
-        <group_icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="group_icon_exp" tool_tip="Group" default_icon_name="Generic_Group" visible="true"/>
-        <icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="system_notification_icon_exp" tool_tip="Icon" image_name="System_Notification_Large" visible="false"/>
-        <icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="incoming_transaction_icon_exp" tool_tip="Icon" image_name="Incoming_Transaction_Large" visible="false"/>
-        <icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="outcoming_transaction_icon_exp" tool_tip="Icon" image_name="Outcoming_Transaction_Large" visible="false"/>
-        <icon top="142" right="65" width="22" height="25" image_name="Icon_Attachment_Large" follows="right" mouse_opaque="true" name="icon_attachment_large" tool_tip="Attachment"/>
+      <layout_panel width="30" height="170" orientation="horizontal" follows="left|top|bottom" name="layout_panel_right_exp">
+        <group_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="group_icon_exp" tool_tip="Group" default_icon_name="Generic_Group" visible="true"/>
+        <avatar_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="avatar_icon_exp" tool_tip="Avatar" default_icon_name="Generic_Person" visible="false"/>
+        <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="system_notification_icon_exp" tool_tip="Icon" image_name="System_Notification" visible="false"/>
       </layout_panel>
       <layout_panel width="230" height="170" orientation="horizontal" follows="left|top|right|bottom" name="layout_panel_middle_exp">
         <panel border="false" top="0" width="230" height="38" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="main_info_panel_expanded">
           <panel border="false" top="0" left="0" width="230" height="30" bevel_style="none" follows="left|top|right" layout="topleft" name="notification_title_panel_exp">
             <text allow_scroll="false" font="SansSerif" top="6" left="0" width="233" height="10" layout="topleft" follows="right|left" text_color="White"
               use_ellipses="true" word_wrap="false" mouse_opaque="false" name="notification_title_exp">
-              Notice Title Notice Title N o t i c e T i t l e
+              Notice Title Notice Title N o t i c e T i t l e N o t i c e T i t l e
             </text>
             <text allow_scroll="false" font="SansSerif" left="0" width="233" height="10" layout="topleft" follows="right|left" text_color="White"
               use_ellipses="true" word_wrap="false" mouse_opaque="false" name="group_name_exp" visible="false">
@@ -96,27 +92,20 @@
             </text>
           </panel>
           <panel border="false" left="0" width="230" height="12" bevel_style="none" follows="left|top|right" layout="topleft" name="sender_time_panel_exp">
-            <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="143" height="13" layout="topleft" follows="right|left"
+            <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="145" height="13" layout="topleft" follows="right|left"
               use_ellipses="true" word_wrap="false" mouse_opaque="false" name="sender_resident_exp" visible="false">
               Sender: "Resident R e s i d e n t R e s i d e n t"
             </text>
             <text allow_scroll="false" font="SansSerifSmall" top="0" right="-1" width="95" height="13" follows="right" halign="right" layout="topleft" left_pad="5"
               name="notification_time_exp" value="2014/12/24 23:30" />
           </panel>
-          <panel border="true" left="1" width="230" height="90" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="full_notice_text_panel_exp" visible="true"
+          <panel border="true" left="1" width="230" height="115" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="full_notice_text_panel_exp" visible="true"
                    bg_visible="true">
             <text allow_scroll="false" font="SansSerifSmall" top="4" left="5" width="220" height="80" layout="topleft" follows="left|top|right|bottom"
               use_ellipses="true" word_wrap="true" mouse_opaque="false" max_length="400" name="notification_text_exp" >
               Notice text goes here b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. bla bla bla bla bla bla bla bla bla bla bla bla bla .
             </text>
           </panel>
-          <panel border="true" left="1" width="230" height="21" bevel_style="none" follows="left|bottom|right" layout="topleft" name="full_notice_attach_panel_exp" visible="true"
-                   bg_visible="true">
-            <text allow_scroll="false" font="SansSerifSmall" top="4" left="5" width="220" height="12" layout="topleft" follows="left|top|right|bottom"
-              use_ellipses="true" word_wrap="true" mouse_opaque="false" max_length="96" name="notification_full_text">
-              Attachment goes here b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla .
-            </text>
-          </panel>
         </panel>
       </layout_panel>
       <layout_panel width="18" orientation="horizontal" follows="right|top|bottom" name="layout_panel_left_exp">