diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp
index 5a2e3f73f9a46d683d7962188c5e2e6ab8b6314a..f4dc3b927ba3d3beed513011b1f6f10c6980af35 100644
--- a/indra/llcharacter/llkeyframemotion.cpp
+++ b/indra/llcharacter/llkeyframemotion.cpp
@@ -658,7 +658,12 @@ BOOL LLKeyframeMotion::onActivate()
 	// If the keyframe anim has an associated emote, trigger it. 
 	if( mJointMotionList->mEmoteName.length() > 0 )
 	{
-		mCharacter->startMotion( gAnimLibrary.stringToAnimState(mJointMotionList->mEmoteName) );
+		LLUUID emote_anim_id = gAnimLibrary.stringToAnimState(mJointMotionList->mEmoteName);
+		// don't start emote if already active to avoid recursion
+		if (!mCharacter->isMotionActive(emote_anim_id))
+		{
+			mCharacter->startMotion( emote_anim_id );
+		}
 	}
 
 	mLastLoopedTime = 0.f;
diff --git a/indra/llplugin/llplugincookiestore.cpp b/indra/llplugin/llplugincookiestore.cpp
index 85b1e70d7870d99827e163e1bee2d0b467b74a4d..da770c5f2e3b03da55e6676db77e1be70bc1163d 100644
--- a/indra/llplugin/llplugincookiestore.cpp
+++ b/indra/llplugin/llplugincookiestore.cpp
@@ -99,7 +99,7 @@ bool LLPluginCookieStore::Cookie::parse(const std::string &host)
 	std::string::size_type cookie_end = mCookie.size();
 	std::string::size_type field_start = 0;
 
-	lldebugs << "parsing cookie: " << mCookie << llendl;
+	LL_DEBUGS("CookieStoreParse") << "parsing cookie: " << mCookie << LL_ENDL;
 	while(field_start < cookie_end)
 	{
 		// Finding the start of the next field requires honoring special quoting rules
@@ -167,10 +167,10 @@ bool LLPluginCookieStore::Cookie::parse(const std::string &host)
 			++value_end;
 		}
 
-		lldebugs 
+		LL_DEBUGS("CookieStoreParse") 
 			<< "    field name: \"" << mCookie.substr(name_start, name_end - name_start) 
 			<< "\", value: \"" << mCookie.substr(value_start, value_end - value_start) << "\""
-			<< llendl;
+			<< LL_ENDL;
 				
 		// See whether this field is one we know
 		if(first_field)
@@ -195,13 +195,13 @@ bool LLPluginCookieStore::Cookie::parse(const std::string &host)
 #if 1
 				time_t date = curl_getdate(date_string.c_str(), NULL );
 				mDate.secondsSinceEpoch((F64)date);
-				lldebugs << "        expire date parsed to: " << mDate.asRFC1123() << llendl;
+				LL_DEBUGS("CookieStoreParse") << "        expire date parsed to: " << mDate.asRFC1123() << LL_ENDL;
 #else
 				// This doesn't work (rfc1123-format dates cause it to fail)
 				if(!mDate.fromString(date_string))
 				{
 					// Date failed to parse.
-					llwarns << "failed to parse cookie's expire date: " << date << llendl;
+					LL_WARNS("CookieStoreParse") << "failed to parse cookie's expire date: " << date << LL_ENDL;
 					return false;
 				}
 #endif
@@ -232,9 +232,14 @@ bool LLPluginCookieStore::Cookie::parse(const std::string &host)
 			{
 				// We don't care about the value of this field (yet)
 			}
+			else if(matchName(name_start, name_end, "httponly"))
+			{
+				// We don't care about the value of this field (yet)
+			}
 			else
 			{
 				// An unknown field is a parse failure
+				LL_WARNS("CookieStoreParse") << "unexpected field name: " << mCookie.substr(name_start, name_end - name_start) << LL_ENDL;
 				return false;
 			}
 			
@@ -270,7 +275,7 @@ bool LLPluginCookieStore::Cookie::parse(const std::string &host)
 		mCookie += host;
 		mDomainEnd = mCookie.size();
 		
-		lldebugs << "added domain (" << mDomainStart << " to " << mDomainEnd << "), new cookie is: " << mCookie << llendl;
+		LL_DEBUGS("CookieStoreParse") << "added domain (" << mDomainStart << " to " << mDomainEnd << "), new cookie is: " << mCookie << LL_ENDL;
 	}
 
 	// If the cookie doesn't have a path, add "/".
@@ -288,7 +293,7 @@ bool LLPluginCookieStore::Cookie::parse(const std::string &host)
 		mCookie += "/";
 		mPathEnd = mCookie.size();
 		
-		lldebugs << "added path (" << mPathStart << " to " << mPathEnd << "), new cookie is: " << mCookie << llendl;
+		LL_DEBUGS("CookieStoreParse") << "added path (" << mPathStart << " to " << mPathEnd << "), new cookie is: " << mCookie << LL_ENDL;
 	}
 	
 	
@@ -566,7 +571,7 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 	Cookie *cookie = Cookie::createFromString(s, cookie_start, cookie_end, host);
 	if(cookie)
 	{
-		lldebugs << "setting cookie: " << cookie->getCookie() << llendl;
+		LL_DEBUGS("CookieStoreUpdate") << "setting cookie: " << cookie->getCookie() << LL_ENDL;
 		
 		// Create a key for this cookie
 		std::string key = cookie->getKey();
@@ -579,7 +584,7 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 			{
 				// If we're marking cookies as changed, we should keep it anyway since we'll need to send it out with deltas.
 				cookie->setDead(true);
-				lldebugs << "    marking dead" << llendl;
+				LL_DEBUGS("CookieStoreUpdate") << "    marking dead" << LL_ENDL;
 			}
 			else
 			{
@@ -590,7 +595,7 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 				delete cookie;
 				cookie = NULL;
 
-				lldebugs << "    removing" << llendl;
+				LL_DEBUGS("CookieStoreUpdate") << "    removing" << LL_ENDL;
 			}
 		}
 		
@@ -607,7 +612,7 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 					delete cookie;
 					cookie = NULL;
 
-					lldebugs << "    unchanged" << llendl;
+					LL_DEBUGS("CookieStoreUpdate") << "    unchanged" << LL_ENDL;
 				}
 				else
 				{
@@ -619,7 +624,7 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 					if(mark_changed)
 						mHasChangedCookies = true;
 
-					lldebugs << "    replacing" << llendl;
+					LL_DEBUGS("CookieStoreUpdate") << "    replacing" << LL_ENDL;
 				}
 			}
 			else
@@ -631,10 +636,15 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 				if(mark_changed)
 					mHasChangedCookies = true;
 
-				lldebugs << "    adding" << llendl;
+				LL_DEBUGS("CookieStoreUpdate") << "    adding" << LL_ENDL;
 			}
 		}
 	}
+	else
+	{
+		LL_WARNS("CookieStoreUpdate") << "failed to parse cookie: " << s.substr(cookie_start, cookie_end - cookie_start) << LL_ENDL;
+	}
+
 }
 
 void LLPluginCookieStore::clearCookies()
diff --git a/indra/llplugin/tests/llplugincookiestore_test.cpp b/indra/llplugin/tests/llplugincookiestore_test.cpp
index 020d9c1977361957c37030ac6d3a4b92718027b1..c903464c6404b9e727b2a845d5a5cc5e666f5fa1 100644
--- a/indra/llplugin/tests/llplugincookiestore_test.cpp
+++ b/indra/llplugin/tests/llplugincookiestore_test.cpp
@@ -127,7 +127,7 @@ namespace tut
 		// Valid, distinct cookies:
 		
 		std::string cookie01 = "cookieA=value; domain=example.com; path=/";
-		std::string cookie02 = "cookieB=value; domain=example.com; path=/"; // different name
+		std::string cookie02 = "cookieB=value; Domain=example.com; Path=/; Max-Age=10; Secure; Version=1; Comment=foo!; HTTPOnly"; // cookie with every supported field, in different cases.
 		std::string cookie03 = "cookieA=value; domain=foo.example.com; path=/"; // different domain
 		std::string cookie04 = "cookieA=value; domain=example.com; path=/bar/"; // different path
 		std::string cookie05 = "cookieC; domain=example.com; path=/"; // empty value
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 3d8bd21609775672373e7238174a1504dec9e546..8addee606b54a68ced93db2e73bbf4acb883e6ee 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -105,9 +105,9 @@ void check_all_images()
 	}
 }
 
-void LLImageGL::checkTexSize() const
+void LLImageGL::checkTexSize(bool forced) const
 {
-	if (gDebugGL && mTarget == GL_TEXTURE_2D)
+	if ((forced || gDebugGL) && mTarget == GL_TEXTURE_2D)
 	{
 		GLint texname;
 		glGetIntegerv(GL_TEXTURE_BINDING_2D, &texname);
@@ -129,6 +129,8 @@ void LLImageGL::checkTexSize() const
 		glGetTexLevelParameteriv(mTarget, 0, GL_TEXTURE_WIDTH, (GLint*)&x);
 		glGetTexLevelParameteriv(mTarget, 0, GL_TEXTURE_HEIGHT, (GLint*)&y) ;
 		stop_glerror() ;
+		llcallstacks << "w: " << x << " h: " << y << llcallstacksendl ;
+
 		if(!x || !y)
 		{
 			return ;
@@ -138,11 +140,13 @@ void LLImageGL::checkTexSize() const
 			error = TRUE;
 			if (gDebugSession)
 			{
-				gFailLog << "wrong texture size and discard level!" << std::endl;
+				gFailLog << "wrong texture size and discard level!" << 
+					mWidth << " Height: " << mHeight << " Current Level: " << mCurrentDiscardLevel << std::endl;
 			}
 			else
 			{
-				llerrs << "wrong texture size and discard level!" << llendl ;
+				llerrs << "wrong texture size and discard level: width: " << 
+					mWidth << " Height: " << mHeight << " Current Level: " << mCurrentDiscardLevel << llendl ;
 			}
 		}
 
@@ -1044,7 +1048,9 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
 {
 	if (gGL.getTexUnit(0)->bind(this, false, true))
 	{
-		//checkTexSize() ;
+		checkTexSize(true) ;
+		llcallstacks << fb_x << " : " << fb_y << " : " << x_pos << " : " << y_pos << " : " << width << " : " << height << llcallstacksendl ;
+
 		glCopyTexSubImage2D(GL_TEXTURE_2D, 0, fb_x, fb_y, x_pos, y_pos, width, height);
 		mGLTextureCreated = true;
 		stop_glerror();
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index f0870c3fc45b2416c9ac98f8b35613a6b867fb04..41239d24c8967312b5bb00ddf5291bf54430cf21 100644
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -157,7 +157,7 @@ class LLImageGL : public LLRefCount
 	void updatePickMask(S32 width, S32 height, const U8* data_in);
 	BOOL getMask(const LLVector2 &tc);
 
-	void checkTexSize() const ;
+	void checkTexSize(bool forced = false) const ;
 	
 	// Sets the addressing mode used to sample the texture 
 	//  (such as wrapping, mirrored wrapping, and clamp)
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 0959722aa695971f2654c3397e6b8681487ac463..dfb427f293a35ea275aa2589aeab2c76f1243488 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -860,5 +860,16 @@ void LLAccordionCtrlTab::ctrlSetLeftTopAndSize(LLView* panel, S32 left, S32 top,
 	panel->reshape( width, height, 1);
 	panel->setRect(panel_rect);
 }
+BOOL LLAccordionCtrlTab::handleToolTip(S32 x, S32 y, MASK mask)
+{
+	//header may be not the first child but we need to process it first
+	if(y >= (getRect().getHeight() - HEADER_HEIGHT - HEADER_HEIGHT/2) )
+	{
+		//inside tab header
+		//fix for EXT-6619
+		return TRUE;
+	}
+	return LLUICtrl::handleToolTip(x, y, mask);
+}
 
 
diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h
index 4b8b22405ea2fc3e4e6326e6ee51508b162478a3..fb19d17e99a644a88a642e1349ed9bd6ceed1c63 100644
--- a/indra/llui/llaccordionctrltab.h
+++ b/indra/llui/llaccordionctrltab.h
@@ -148,6 +148,8 @@ class LLAccordionCtrlTab : public LLUICtrl
 	virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
 	virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent);
 
+	virtual BOOL handleToolTip(S32 x, S32 y, MASK mask);
+
 	virtual bool addChild(LLView* child, S32 tab_group);
 
 	bool isExpanded() { return mDisplayChildren; }
diff --git a/indra/llui/lldraghandle.cpp b/indra/llui/lldraghandle.cpp
index 9d4e2fa495fea2ab6e735856963da252246306a3..9f83fcca354ebc09f07b6de44a3c6b86a7480120 100644
--- a/indra/llui/lldraghandle.cpp
+++ b/indra/llui/lldraghandle.cpp
@@ -249,7 +249,7 @@ void LLDragHandleTop::reshapeTitleBox()
 	}
 	const LLFontGL* font = LLFontGL::getFontSansSerif();
 	S32 title_width = getRect().getWidth();
-	title_width -= 2 * LEFT_PAD + 2 * BORDER_PAD + getButtonsRect().getWidth();
+	title_width -= LEFT_PAD + 2 * BORDER_PAD + getButtonsRect().getWidth();
 	S32 title_height = llround(font->getLineHeight());
 	LLRect title_rect;
 	title_rect.setLeftTopAndSize( 
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index e672252a5071acdc05304fb1d7205fb8b1e9e4b4..79c47a1136646ca30e9eebddcfdfa0464277fec2 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -563,6 +563,7 @@ void LLFloater::handleVisibilityChange ( BOOL new_visibility )
 
 void LLFloater::openFloater(const LLSD& key)
 {
+	llinfos << "Opening floater " << getName() << llendl;
 	mKey = key; // in case we need to open ourselves again
 	
 	if (getSoundFlags() != SILENT 
@@ -603,6 +604,7 @@ void LLFloater::openFloater(const LLSD& key)
 
 void LLFloater::closeFloater(bool app_quitting)
 {
+	llinfos << "Closing floater " << getName() << llendl;
 	if (app_quitting)
 	{
 		LLFloater::sQuitting = true;
@@ -1786,13 +1788,16 @@ void LLFloater::updateTitleButtons()
 					llround((F32)floater_close_box_size * mButtonScale));
 			}
 
-			if(!buttons_rect.isValid())
+			// first time here, init 'buttons_rect'
+			if(1 == button_count)
 			{
 				buttons_rect = btn_rect;
 			}
 			else
 			{
-				mDragOnLeft ? buttons_rect.mRight + btn_rect.mRight : 
+				// if mDragOnLeft=true then buttons are on top-left side vertically aligned
+				// title is not displayed in this case, calculating 'buttons_rect' for future use
+				mDragOnLeft ? buttons_rect.mBottom -= btn_rect.mBottom : 
 					buttons_rect.mLeft = btn_rect.mLeft;
 			}
 			mButtons[i]->setRect(btn_rect);
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 781c111474fd94e1748d23020d7801b6956b4fc3..e67f0ec3fcc1d5ce29647313985de0bd85d1a6ad 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -1321,6 +1321,8 @@ void LLView::drawChildren()
 
 			if (viewp->getVisible() && viewp->getRect().isValid())
 			{
+				// check for bad data
+				llassert_always(viewp->getVisible() == TRUE);
 				// Only draw views that are within the root view
 				localRectToScreen(viewp->getRect(),&screenRect);
 				if ( rootRect.overlaps(screenRect)  && LLUI::sDirtyRect.overlaps(screenRect))
diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt
index 9f66a77c6426b7b555a58d65b85e798d4fab7e2e..4f183cddeb7022e40e81158ec8d24e1f817be164 100644
--- a/indra/media_plugins/webkit/CMakeLists.txt
+++ b/indra/media_plugins/webkit/CMakeLists.txt
@@ -45,12 +45,24 @@ set(media_plugin_webkit_LINK_LIBRARIES
   ${PULSEAUDIO_LIBRARIES}
 )
 
-if (LINUX)
+# Select which VolumeCatcher implementation to use
+if (LINUX AND PULSEAUDIO)
   list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp)
   list(APPEND media_plugin_webkit_LINK_LIBRARIES
        ${UI_LIBRARIES}     # for glib/GTK
        )
-endif (LINUX)
+elseif (DARWIN)
+  list(APPEND media_plugin_webkit_SOURCE_FILES mac_volume_catcher.cpp)
+  find_library(CORESERVICES_LIBRARY CoreServices)
+  find_library(AUDIOUNIT_LIBRARY AudioUnit)
+  list(APPEND media_plugin_webkit_LINK_LIBRARIES
+       ${CORESERVICES_LIBRARY}     # for Component Manager calls
+       ${AUDIOUNIT_LIBRARY}        # for AudioUnit calls
+       )
+else (LINUX AND PULSEAUDIO)
+  # All other platforms use the dummy volume catcher for now.
+  list(APPEND media_plugin_webkit_SOURCE_FILES dummy_volume_catcher.cpp)
+endif (LINUX AND PULSEAUDIO)
 
 add_library(media_plugin_webkit
     SHARED
diff --git a/indra/media_plugins/webkit/dummy_volume_catcher.cpp b/indra/media_plugins/webkit/dummy_volume_catcher.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..45b2c62eba6e226ea06d83a830df963fcf91c35c
--- /dev/null
+++ b/indra/media_plugins/webkit/dummy_volume_catcher.cpp
@@ -0,0 +1,63 @@
+/** 
+ * @file dummy_volume_catcher.cpp
+ * @brief A null implementation of the "VolumeCatcher" class for platforms where it's not implemented yet.
+ *
+ * @cond
+ * $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://secondlife.com/developers/opensource/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://secondlife.com/developers/opensource/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$
+ * @endcond
+ */
+
+#include "volume_catcher.h"
+
+
+class VolumeCatcherImpl
+{
+};
+
+/////////////////////////////////////////////////////
+
+VolumeCatcher::VolumeCatcher()
+{
+	pimpl = NULL;
+}
+
+VolumeCatcher::~VolumeCatcher()
+{
+}
+
+void VolumeCatcher::setVolume(F32 volume)
+{
+}
+
+void VolumeCatcher::setPan(F32 pan)
+{
+}
+
+void VolumeCatcher::pump()
+{
+}
+
diff --git a/indra/media_plugins/webkit/linux_volume_catcher.cpp b/indra/media_plugins/webkit/linux_volume_catcher.cpp
index 52ab766f7f1a2016c45773487fcd89469c731c57..2e7fda865e78f7d26e387b71dac309a9f33c37c5 100644
--- a/indra/media_plugins/webkit/linux_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/linux_volume_catcher.cpp
@@ -42,11 +42,9 @@
 
 #include "linden_common.h"
 
-#include "linux_volume_catcher.h"
+#include "volume_catcher.h"
 
 
-#if LL_PULSEAUDIO_ENABLED
-
 extern "C" {
 #include <glib.h>
 
@@ -161,11 +159,11 @@ extern "C" {
 }
 
 
-class LinuxVolumeCatcherImpl
+class VolumeCatcherImpl
 {
 public:
-	LinuxVolumeCatcherImpl();
-	~LinuxVolumeCatcherImpl();
+	VolumeCatcherImpl();
+	~VolumeCatcherImpl();
 
 	void setVolume(F32 volume);
 	void pump(void);
@@ -189,7 +187,7 @@ class LinuxVolumeCatcherImpl
 	bool mGotSyms;
 };
 
-LinuxVolumeCatcherImpl::LinuxVolumeCatcherImpl()
+VolumeCatcherImpl::VolumeCatcherImpl()
 	: mDesiredVolume(0.0f),
 	  mMainloop(NULL),
 	  mPAContext(NULL),
@@ -199,17 +197,17 @@ LinuxVolumeCatcherImpl::LinuxVolumeCatcherImpl()
 	init();
 }
 
-LinuxVolumeCatcherImpl::~LinuxVolumeCatcherImpl()
+VolumeCatcherImpl::~VolumeCatcherImpl()
 {
 	cleanup();
 }
 
-bool LinuxVolumeCatcherImpl::loadsyms(std::string pulse_dso_name)
+bool VolumeCatcherImpl::loadsyms(std::string pulse_dso_name)
 {
 	return grab_pa_syms(pulse_dso_name);
 }
 
-void LinuxVolumeCatcherImpl::init()
+void VolumeCatcherImpl::init()
 {
 	// try to be as defensive as possible because PA's interface is a
 	// bit fragile and (for our purposes) we'd rather simply not function
@@ -262,7 +260,7 @@ void LinuxVolumeCatcherImpl::init()
 	}
 }
 
-void LinuxVolumeCatcherImpl::cleanup()
+void VolumeCatcherImpl::cleanup()
 {
 	mConnected = false;
 
@@ -280,7 +278,7 @@ void LinuxVolumeCatcherImpl::cleanup()
 	mMainloop = NULL;
 }
 
-void LinuxVolumeCatcherImpl::setVolume(F32 volume)
+void VolumeCatcherImpl::setVolume(F32 volume)
 {
 	mDesiredVolume = volume;
 	
@@ -294,13 +292,13 @@ void LinuxVolumeCatcherImpl::setVolume(F32 volume)
 	pump();
 }
 
-void LinuxVolumeCatcherImpl::pump()
+void VolumeCatcherImpl::pump()
 {
 	gboolean may_block = FALSE;
 	g_main_context_iteration(g_main_context_default(), may_block);
 }
 
-void LinuxVolumeCatcherImpl::connected_okay()
+void VolumeCatcherImpl::connected_okay()
 {
 	pa_operation *op;
 
@@ -324,7 +322,7 @@ void LinuxVolumeCatcherImpl::connected_okay()
 	}
 }
 
-void LinuxVolumeCatcherImpl::update_all_volumes(F32 volume)
+void VolumeCatcherImpl::update_all_volumes(F32 volume)
 {
 	for (std::set<U32>::iterator it = mSinkInputIndices.begin();
 	     it != mSinkInputIndices.end(); ++it)
@@ -333,7 +331,7 @@ void LinuxVolumeCatcherImpl::update_all_volumes(F32 volume)
 	}
 }
 
-void LinuxVolumeCatcherImpl::update_index_volume(U32 index, F32 volume)
+void VolumeCatcherImpl::update_index_volume(U32 index, F32 volume)
 {
 	static pa_cvolume cvol;
 	llpa_cvolume_set(&cvol, mSinkInputNumChannels[index],
@@ -355,7 +353,7 @@ void LinuxVolumeCatcherImpl::update_index_volume(U32 index, F32 volume)
 
 void callback_discovered_sinkinput(pa_context *context, const pa_sink_input_info *sii, int eol, void *userdata)
 {
-	LinuxVolumeCatcherImpl *impl = dynamic_cast<LinuxVolumeCatcherImpl*>((LinuxVolumeCatcherImpl*)userdata);
+	VolumeCatcherImpl *impl = dynamic_cast<VolumeCatcherImpl*>((VolumeCatcherImpl*)userdata);
 	llassert(impl);
 
 	if (0 == eol)
@@ -386,7 +384,7 @@ void callback_discovered_sinkinput(pa_context *context, const pa_sink_input_info
 
 void callback_subscription_alert(pa_context *context, pa_subscription_event_type_t t, uint32_t index, void *userdata)
 {
-	LinuxVolumeCatcherImpl *impl = dynamic_cast<LinuxVolumeCatcherImpl*>((LinuxVolumeCatcherImpl*)userdata);
+	VolumeCatcherImpl *impl = dynamic_cast<VolumeCatcherImpl*>((VolumeCatcherImpl*)userdata);
 	llassert(impl);
 
 	switch (t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) {
@@ -420,7 +418,7 @@ void callback_subscription_alert(pa_context *context, pa_subscription_event_type
 
 void callback_context_state(pa_context *context, void *userdata)
 {
-	LinuxVolumeCatcherImpl *impl = dynamic_cast<LinuxVolumeCatcherImpl*>((LinuxVolumeCatcherImpl*)userdata);
+	VolumeCatcherImpl *impl = dynamic_cast<VolumeCatcherImpl*>((VolumeCatcherImpl*)userdata);
 	llassert(impl);
 	
 	switch (llpa_context_get_state(context))
@@ -441,48 +439,30 @@ void callback_context_state(pa_context *context, void *userdata)
 
 /////////////////////////////////////////////////////
 
-LinuxVolumeCatcher::LinuxVolumeCatcher()
+VolumeCatcher::VolumeCatcher()
 {
-	pimpl = new LinuxVolumeCatcherImpl();
+	pimpl = new VolumeCatcherImpl();
 }
 
-LinuxVolumeCatcher::~LinuxVolumeCatcher()
+VolumeCatcher::~VolumeCatcher()
 {
 	delete pimpl;
 	pimpl = NULL;
 }
 
-void LinuxVolumeCatcher::setVolume(F32 volume)
+void VolumeCatcher::setVolume(F32 volume)
 {
 	llassert(pimpl);
 	pimpl->setVolume(volume);
 }
 
-void LinuxVolumeCatcher::pump()
-{
-	llassert(pimpl);
-	pimpl->pump();
-}
-
-#else // !LL_PULSEAUDIO_ENABLED
-
-// stub.
-
-LinuxVolumeCatcher::LinuxVolumeCatcher()
-{
-	pimpl = NULL;
-}
-
-LinuxVolumeCatcher::~LinuxVolumeCatcher()
+void VolumeCatcher::setPan(F32 pan)
 {
+	// TODO: implement this (if possible)
 }
 
-void LinuxVolumeCatcher::setVolume(F32 volume)
-{
-}
-
-void LinuxVolumeCatcher::pump()
+void VolumeCatcher::pump()
 {
+	llassert(pimpl);
+	pimpl->pump();
 }
-
-#endif // LL_PULSEAUDIO_ENABLED
diff --git a/indra/media_plugins/webkit/mac_volume_catcher.cpp b/indra/media_plugins/webkit/mac_volume_catcher.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..03249f9e83bc2e552bd1e591a3fb053bc1ac0e3a
--- /dev/null
+++ b/indra/media_plugins/webkit/mac_volume_catcher.cpp
@@ -0,0 +1,275 @@
+/** 
+ * @file dummy_volume_catcher.cpp
+ * @brief A Mac OS X specific hack to control the volume level of all audio channels opened by a process.
+ *
+ * @cond
+ * $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://secondlife.com/developers/opensource/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://secondlife.com/developers/opensource/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$
+ * @endcond
+ */
+
+/**************************************************************************************************************
+	This code works by using CaptureComponent to capture the "Default Output" audio component
+	(kAudioUnitType_Output/kAudioUnitSubType_DefaultOutput) and delegating all calls to the original component.
+	It does this just to keep track of all instances of the default output component, so that it can set the
+	kHALOutputParam_Volume parameter on all of them to adjust the output volume.
+**************************************************************************************************************/
+
+#include "volume_catcher.h"
+
+#include <Carbon/Carbon.h>
+#include <QuickTime/QuickTime.h>
+#include <AudioUnit/AudioUnit.h>
+
+struct VolumeCatcherStorage;
+
+class VolumeCatcherImpl
+{
+public:
+
+	void setVolume(F32 volume);
+	void setPan(F32 pan);
+	void pump(void);
+	
+	void setDelegateVolume(ComponentInstance delegate);
+	
+	std::list<VolumeCatcherStorage*> mComponentInstances;
+	Component mOriginalDefaultOutput;
+	Component mVolumeAdjuster;
+	
+	static VolumeCatcherImpl *getInstance();
+private:
+	VolumeCatcherImpl();
+	~VolumeCatcherImpl();
+
+	// The component entry point needs to be able to find the instance.
+	static VolumeCatcherImpl *sInstance;
+	
+	F32 mVolume;
+	F32 mPan;
+};
+
+VolumeCatcherImpl *VolumeCatcherImpl::sInstance = NULL;;
+
+struct VolumeCatcherStorage
+{
+	ComponentInstance self;
+	ComponentInstance delegate;
+};
+
+static ComponentResult volume_catcher_component_entry(ComponentParameters *cp, Handle componentStorage);
+static ComponentResult volume_catcher_component_open(VolumeCatcherStorage *storage, ComponentInstance self);
+static ComponentResult volume_catcher_component_close(VolumeCatcherStorage *storage, ComponentInstance self);
+
+VolumeCatcherImpl *VolumeCatcherImpl::getInstance()
+{
+	if(!sInstance)
+	{
+		// The constructor will set up the instance pointer.
+		new VolumeCatcherImpl;
+	}
+	
+	return sInstance;
+}
+
+VolumeCatcherImpl::VolumeCatcherImpl()
+{
+	sInstance = this;
+	
+	mVolume = 1.0;	// default to full volume
+	mPan = 0.5;		// and center pan
+	
+	// Register a component which can delegate 
+	
+	// Capture the default audio output component.
+	ComponentDescription desc;
+	desc.componentType = kAudioUnitType_Output;
+	desc.componentSubType = kAudioUnitSubType_DefaultOutput;
+	desc.componentManufacturer = kAudioUnitManufacturer_Apple;
+	desc.componentFlags = 0;
+	desc.componentFlagsMask = 0;
+	
+	// Find the original default output component
+	mOriginalDefaultOutput = FindNextComponent(NULL, &desc);
+
+	// Register our own output component with the same parameters
+	mVolumeAdjuster = RegisterComponent(&desc, NewComponentRoutineUPP(volume_catcher_component_entry), 0, NULL, NULL, NULL);
+
+	// Capture the original component, so we always get found instead.
+	CaptureComponent(mOriginalDefaultOutput, mVolumeAdjuster);
+
+}
+
+static ComponentResult volume_catcher_component_entry(ComponentParameters *cp, Handle componentStorage)
+{
+	ComponentResult result = badComponentSelector;
+	VolumeCatcherStorage *storage = (VolumeCatcherStorage*)componentStorage;
+	
+	switch(cp->what)
+	{
+		case kComponentOpenSelect:
+//			std::cerr << "kComponentOpenSelect" << std::endl;
+			result = CallComponentFunctionWithStorageProcInfo((Handle)storage, cp, (ProcPtr)volume_catcher_component_open, uppCallComponentOpenProcInfo);
+		break;
+
+		case kComponentCloseSelect:
+//			std::cerr << "kComponentCloseSelect" << std::endl;
+			result = CallComponentFunctionWithStorageProcInfo((Handle)storage, cp, (ProcPtr)volume_catcher_component_close, uppCallComponentCloseProcInfo);
+			// CallComponentFunctionWithStorageProcInfo
+		break;
+		
+		default:
+//			std::cerr << "Delegating selector: " << cp->what << " to component instance " << storage->delegate << std::endl;
+			result = DelegateComponentCall(cp, storage->delegate);
+		break;
+	}
+	
+	return result;
+}
+
+static ComponentResult volume_catcher_component_open(VolumeCatcherStorage *storage, ComponentInstance self)
+{
+	ComponentResult result = noErr;
+	
+	storage = new VolumeCatcherStorage;
+	SetComponentInstanceStorage(self, (Handle)storage);
+
+	
+	VolumeCatcherImpl *impl = VolumeCatcherImpl::getInstance();	
+
+	impl->mComponentInstances.push_back(storage);
+	
+	storage->self = self;
+	storage->delegate = NULL;
+
+	result = OpenAComponent(impl->mOriginalDefaultOutput, &(storage->delegate));
+	
+//	std::cerr << "OpenAComponent result = " << result << ", component ref = " << storage->delegate << std::endl;
+
+	impl->setDelegateVolume(storage->delegate);
+
+	return result;
+}
+
+static ComponentResult volume_catcher_component_close(VolumeCatcherStorage *storage, ComponentInstance self)
+{
+	ComponentResult result = noErr;
+	
+	if(storage)
+	{
+		if(storage->delegate)
+		{
+			CloseComponent(storage->delegate);
+			storage->delegate = NULL;
+		}
+		
+		VolumeCatcherImpl *impl = VolumeCatcherImpl::getInstance();	
+		impl->mComponentInstances.remove(storage);
+		delete[] storage;
+	}
+		
+	return result;
+}
+
+VolumeCatcherImpl::~VolumeCatcherImpl()
+{
+	// We expect to persist until the process exits.  This should never be called.
+	abort();
+}
+
+void VolumeCatcherImpl::setVolume(F32 volume)
+{
+	VolumeCatcherImpl *impl = VolumeCatcherImpl::getInstance();	
+	impl->mVolume = volume;
+
+	std::list<VolumeCatcherStorage*>::iterator iter;
+		
+	for(iter = mComponentInstances.begin(); iter != mComponentInstances.end(); ++iter)
+	{
+		impl->setDelegateVolume((*iter)->delegate);
+	}
+}
+
+void VolumeCatcherImpl::setPan(F32 pan)
+{
+	VolumeCatcherImpl *impl = VolumeCatcherImpl::getInstance();	
+	impl->mPan = pan;
+	
+	// TODO: implement this.
+	// This will probably require adding a "panner" audio unit to the chain somehow.
+	// There's also a "3d mixer" component that we might be able to use...
+}
+
+void VolumeCatcherImpl::pump(void)
+{
+}
+
+void VolumeCatcherImpl::setDelegateVolume(ComponentInstance delegate)
+{
+//	std::cerr << "Setting volume on component instance: " << (delegate) << " to " << mVolume << std::endl;
+		
+	OSStatus err;
+	err = AudioUnitSetParameter(
+			delegate, 
+			kHALOutputParam_Volume, 
+			kAudioUnitScope_Global,
+			0, 
+			mVolume, 
+			0);
+
+	if(err)
+	{
+//		std::cerr << "    AudioUnitSetParameter returned " << err << std::endl;
+	}
+}
+
+/////////////////////////////////////////////////////
+
+VolumeCatcher::VolumeCatcher()
+{
+	pimpl = VolumeCatcherImpl::getInstance();
+}
+
+VolumeCatcher::~VolumeCatcher()
+{
+	// Let the instance persist until exit.
+}
+
+void VolumeCatcher::setVolume(F32 volume)
+{
+	VolumeCatcherImpl::getInstance()->setVolume(volume);
+}
+
+void VolumeCatcher::setPan(F32 pan)
+{
+	VolumeCatcherImpl::getInstance()->setPan(pan);
+}
+
+void VolumeCatcher::pump()
+{
+	VolumeCatcherImpl::getInstance()->pump();
+}
+
diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp
index 436e077e9b65c695035a334bf3c104859485d8de..47766a24cbd0f97ae071de530309a53bed7561b7 100644
--- a/indra/media_plugins/webkit/media_plugin_webkit.cpp
+++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp
@@ -50,9 +50,7 @@
 # define LL_QTWEBKIT_USES_PIXMAPS 0
 #endif // LL_LINUX
 
-#if LL_LINUX
-# include "linux_volume_catcher.h"
-#endif // LL_LINUX
+# include "volume_catcher.h"
 
 #if LL_WINDOWS
 # include <direct.h>
@@ -119,9 +117,7 @@ class MediaPluginWebKit :
 	F32 mBackgroundG;
 	F32 mBackgroundB;
 	
-#if LL_LINUX
-	LinuxVolumeCatcher mLinuxVolumeCatcher;
-#endif // LL_LINUX
+	VolumeCatcher mVolumeCatcher;
 
 	void setInitState(int state)
 	{
@@ -135,9 +131,7 @@ class MediaPluginWebKit :
 	{
 		LLQtWebKit::getInstance()->pump( milliseconds );
 		
-#if LL_LINUX
-		mLinuxVolumeCatcher.pump();
-#endif // LL_LINUX
+		mVolumeCatcher.pump();
 
 		checkEditState();
 		
@@ -1139,9 +1133,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
 
 void MediaPluginWebKit::setVolume(F32 volume)
 {
-#if LL_LINUX
-	mLinuxVolumeCatcher.setVolume(volume);
-#endif // LL_LINUX
+	mVolumeCatcher.setVolume(volume);
 }
 
 int init_media_plugin(LLPluginInstance::sendMessageFunction host_send_func, void *host_user_data, LLPluginInstance::sendMessageFunction *plugin_send_func, void **plugin_user_data)
diff --git a/indra/media_plugins/webkit/volume_catcher.h b/indra/media_plugins/webkit/volume_catcher.h
new file mode 100644
index 0000000000000000000000000000000000000000..77b10cfed0a490bcfd3a08ddf279c0f13ab9721d
--- /dev/null
+++ b/indra/media_plugins/webkit/volume_catcher.h
@@ -0,0 +1,59 @@
+/** 
+ * @file volume_catcher.h
+ * @brief Interface to a class with platform-specific implementations that allows control of the audio volume of all sources in the current process.
+ *
+ * @cond
+ * $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://secondlife.com/developers/opensource/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://secondlife.com/developers/opensource/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$
+ * @endcond
+ */
+
+#ifndef VOLUME_CATCHER_H
+#define VOLUME_CATCHER_H
+
+#include "linden_common.h"
+
+class VolumeCatcherImpl;
+
+class VolumeCatcher
+{
+ public:
+	VolumeCatcher();
+	~VolumeCatcher();
+
+	void setVolume(F32 volume); // 0.0 - 1.0
+	
+	// Set the left-right pan of audio sources
+	// where -1.0 = left, 0 = center, and 1.0 = right
+	void setPan(F32 pan); 
+
+	void pump(); // call this at least a few times a second if you can - it affects how quickly we can 'catch' a new audio source and adjust its volume
+	
+ private:
+	VolumeCatcherImpl *pimpl;
+};
+
+#endif // VOLUME_CATCHER_H
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/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 8b66cce8a3e8e71bb4552c8e4c7689d062257b95..3197064281d7c36ceb12739bfa705e48e02c387c 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -10600,7 +10600,7 @@
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>0</integer>
+      <integer>1</integer>
     </map>
     <key>WaterEditPresets</key>
     <map>
@@ -10646,6 +10646,28 @@
       <key>Value</key>
       <real>50.0</real>
     </map>
+    <key>WellIconFlashCount</key>
+    <map>
+      <key>Comment</key>
+      <string>Number of flashes of IM Well and Notification Well icons after which flashing buttons stay lit up. Requires restart.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>S32</string>
+      <key>Value</key>
+      <integer>3</integer>
+    </map>
+    <key>WellIconFlashPeriod</key>
+    <map>
+      <key>Comment</key>
+      <string>Period at which IM Well and Notification Well icons flash (seconds). Requires restart.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>F32</string>
+      <key>Value</key>
+      <real>0.25</real>
+    </map>
     <key>WindLightUseAtmosShaders</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index af5fa4f3889de03748bbba5536dfec1f9f291273..3ce32a05b0de4dd9e3094c516a679145b351968a 100644
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -22,17 +22,6 @@
         <key>Value</key>
             <string>|TOKEN COPY BusyModeResponse|</string>
         </map>
-    <key>InstantMessageLogFolder</key>
-        <map>
-        <key>Comment</key>
-            <string>Top level folder to your log files.</string>
-        <key>Persist</key>
-            <integer>1</integer>
-        <key>Type</key>
-            <string>String</string>
-        <key>Value</key>
-            <string />
-        </map>				
     <key>InstantMessageLogPath</key>
         <map>
         <key>Comment</key>
@@ -55,10 +44,10 @@
         <key>Value</key>
             <integer>0</integer>
         </map>
-    <key>LogChat</key>
+    <key>LogNearbyChat</key>
         <map>
         <key>Comment</key>
-            <string>Log Chat</string>
+            <string>Log Nearby Chat messages to a file. Is used instead of LogChat but with the "1" default value.</string>
         <key>Persist</key>
             <integer>1</integer>
         <key>Type</key>
@@ -110,5 +99,46 @@
         <key>Value</key>
             <integer>1</integer>
         </map>
+
+    <!-- Settings below are for back compatibility only.
+    They are not used in current viewer anymore. But they can't be removed to avoid
+    influence on previous versions of the viewer in case of settings are not used or default value
+    should be changed. See EXT-6661. -->
+
+    <!-- 1.23 settings -->
+    <key>LogChat</key>
+        <map>
+        <key>Comment</key>
+            <string>Log Chat</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>Boolean</string>
+        <key>Value</key>
+            <integer>0</integer>
+        </map>
+    <key>LogChatIM</key>
+        <map>
+        <key>Comment</key>
+            <string>Log Incoming Instant Messages with Chat</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>Boolean</string>
+        <key>Value</key>
+            <integer>0</integer>
+        </map>
+    <key>LogChatTimestamp</key>
+        <map>
+        <key>Comment</key>
+            <string>Log Timestamp of Chat</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>Boolean</string>
+        <key>Value</key>
+            <integer>0</integer>
+        </map>
+    <!-- End of back compatibility settings -->
     </map>
 </llsd>
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 7700d4de7fc3d2099e35684b9c97df29bbebc4c3..ad41a506fbe2aff78407b8c6be0713492aa37b60 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -593,6 +593,55 @@ bool LLAppearanceMgr::getBaseOutfitName(std::string& name)
 	return false;
 }
 
+const LLUUID LLAppearanceMgr::getBaseOutfitUUID()
+{
+	const LLViewerInventoryItem* outfit_link = getBaseOutfitLink();
+	if (!outfit_link || !outfit_link->getIsLinkType()) return LLUUID::null;
+
+	const LLViewerInventoryCategory* outfit_cat = outfit_link->getLinkedCategory();
+	if (!outfit_cat) return LLUUID::null;
+
+	if (outfit_cat->getPreferredType() != LLFolderType::FT_OUTFIT)
+	{
+		llwarns << "Expected outfit type:" << LLFolderType::FT_OUTFIT << " but got type:" << outfit_cat->getType() << " for folder name:" << outfit_cat->getName() << llendl;
+		return LLUUID::null;
+	}
+
+	return outfit_cat->getUUID();
+}
+
+bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_update)
+{
+	if (item_id_to_wear.isNull()) return false;
+
+	//only the item from a user's inventory is allowed
+	if (!gInventory.isObjectDescendentOf(item_id_to_wear, gInventory.getRootFolderID())) return false;
+
+	LLViewerInventoryItem* item_to_wear = gInventory.getItem(item_id_to_wear);
+	if (!item_to_wear) return false;
+
+	switch (item_to_wear->getType())
+	{
+	case LLAssetType::AT_CLOTHING:
+	case LLAssetType::AT_BODYPART:
+		// Don't wear anything until initial wearables are loaded, can
+		// destroy clothing items.
+		if (!gAgentWearables.areWearablesLoaded())
+		{
+			LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
+			return false;
+		}
+		addCOFItemLink(item_to_wear, do_update);
+		break;
+	case LLAssetType::AT_OBJECT:
+		rez_attachment(item_to_wear, NULL);
+		break;
+	default: return false;;
+	}
+
+	return true;
+}
+
 // Update appearance from outfit folder.
 void LLAppearanceMgr::changeOutfit(bool proceed, const LLUUID& category, bool append)
 {
@@ -1516,6 +1565,28 @@ void LLAppearanceMgr::onFirstFullyVisible()
 	autopopulateOutfits();
 }
 
+bool LLAppearanceMgr::updateBaseOutfit()
+{
+	const LLUUID base_outfit_id = getBaseOutfitUUID();
+	if (base_outfit_id.isNull()) return false;
+
+	// in a Base Outfit we do not remove items, only links
+	purgeCategory(base_outfit_id, false);
+
+	//COF contains only links so we copy to the Base Outfit only links
+	shallowCopyCategoryContents(getCOF(), base_outfit_id, NULL);
+
+	return true;
+}
+
+void LLAppearanceMgr::wearBaseOutfit()
+{
+	const LLUUID& base_outfit_id = getBaseOutfitUUID();
+	if (base_outfit_id.isNull()) return;
+	
+	updateCOF(base_outfit_id);
+}
+
 //#define DUMP_CAT_VERBOSE
 
 void LLAppearanceMgr::dumpCat(const LLUUID& cat_id, const std::string& msg)
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 93b3cecb6fbe8e318b5a1349b78cad43c361be5e..2e5db7aa9b07a5ad4b7e74f6232e151141cad3b8 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -75,6 +75,12 @@ class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
 	const LLViewerInventoryItem *getBaseOutfitLink();
 	bool getBaseOutfitName(std::string &name);
 
+	// find the UUID of the currently worn outfit (Base Outfit)
+	const LLUUID getBaseOutfitUUID();
+
+	// Wear/attach an item (from a user's inventory) on the agent
+	bool wearItemOnAvatar(const LLUUID& item_to_wear, bool do_update = true);
+
 	// Update the displayed outfit name in UI.
 	void updatePanelOutfitName(const std::string& name);
 
@@ -123,6 +129,12 @@ class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
 	// Create initial outfits from library.
 	void autopopulateOutfits();
 	
+	void wearBaseOutfit();
+
+	// Overrides the base outfit with the content from COF
+	// @return false if there is no base outfit
+	bool updateBaseOutfit();
+
 protected:
 	LLAppearanceMgr();
 	~LLAppearanceMgr();
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 8e959993fee627d03e3a702f3eaf2f20de9584df..78163adf4715de5dafbe0fc55fc8e6f13e11f27d 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2581,6 +2581,8 @@ void LLAppViewer::handleViewerCrash()
 {
 	llinfos << "Handle viewer crash entry." << llendl;
 
+	llinfos << "Last render pool type: " << LLPipeline::sCurRenderPoolType << llendl ;
+
 	//print out recorded call stacks if there are any.
 	LLError::LLCallStacks::print();
 
@@ -3051,7 +3053,7 @@ bool LLAppViewer::initCache()
 			gSavedSettings.getBOOL("PurgeCacheOnNextStartup"))
 		{
 			gSavedSettings.setBOOL("PurgeCacheOnNextStartup", false);
-			mPurgeCache = true;
+		mPurgeCache = true;
 		}
 	
 		// We have moved the location of the cache directory over time.
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index c85c72837c17e6b27035a712aad4da01d140df94..764d54a9879ea2f082e626073175f4e1665dbf3d 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -35,6 +35,8 @@
 
 #include "llavataractions.h"
 
+#include "boost/lambda/lambda.hpp"	// for lambda::constant
+
 #include "llsd.h"
 #include "lldarray.h"
 #include "llnotifications.h"
@@ -46,6 +48,7 @@
 #include "llappviewer.h"		// for gLastVersionChannel
 #include "llcachename.h"
 #include "llcallingcard.h"		// for LLAvatarTracker
+#include "llfloateravatarpicker.h"	// for LLFloaterAvatarPicker
 #include "llfloatergroupinvite.h"
 #include "llfloatergroups.h"
 #include "llfloaterreg.h"
@@ -54,6 +57,7 @@
 #include "llinventorymodel.h"	// for gInventory.findCategoryUUIDForType
 #include "llimview.h"			// for gIMMgr
 #include "llmutelist.h"
+#include "llnotificationsutil.h"	// for LLNotificationsUtil
 #include "llrecentpeople.h"
 #include "llsidetray.h"
 #include "lltrans.h"
@@ -425,6 +429,16 @@ void LLAvatarActions::share(const LLUUID& id)
 	}
 }
 
+//static
+void LLAvatarActions::shareWithAvatars()
+{
+	LLFloaterAvatarPicker* picker =
+		LLFloaterAvatarPicker::show(NULL, FALSE, TRUE);
+	picker->setOkBtnEnableCb(boost::lambda::constant(false));
+
+	LLNotificationsUtil::add("ShareNotification");
+}
+
 // static
 void LLAvatarActions::toggleBlock(const LLUUID& id)
 {
diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h
index 9d8b4b4e238dd315670b8f6a321f07f3d2e4dd4c..d106a83eeaf268e2cb0749d31fc5f521fc94b2c9 100644
--- a/indra/newview/llavataractions.h
+++ b/indra/newview/llavataractions.h
@@ -113,6 +113,11 @@ class LLAvatarActions
 	 */
 	static void share(const LLUUID& id);
 
+	/**
+	 * Share items with the picked avatars.
+	 */
+	static void shareWithAvatars();
+
 	/**
 	 * Block/unblock the avatar.
 	 */
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index 44f1cefafed6737d078d5537b451b9ba2bfe877d..0b58c8f476c00d814d76744367147f0bb0d73880 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -133,7 +133,7 @@ LLCallFloater::~LLCallFloater()
 
 	if(LLVoiceClient::instanceExists())
 	{
-		gVoiceClient->removeObserver(this);
+		LLVoiceClient::instance().removeObserver(this);
 	}
 	LLTransientFloaterMgr::getInstance()->removeControlView(this);
 }
@@ -189,7 +189,7 @@ void LLCallFloater::draw()
 	// Seems this is a problem somewhere in Voice Client (LLVoiceClient::participantAddedEvent)
 //	onChange();
 
-	bool is_moderator_muted = gVoiceClient->getIsModeratorMuted(gAgentID);
+	bool is_moderator_muted = LLVoiceClient::getInstance()->getIsModeratorMuted(gAgentID);
 
 	if (mIsModeratorMutedVoice != is_moderator_muted)
 	{
@@ -470,7 +470,7 @@ void LLCallFloater::updateAgentModeratorState()
 static void get_voice_participants_uuids(uuid_vec_t& speakers_uuids)
 {
 	// Get a list of participants from VoiceClient
-	LLVoiceClient::participantMap *voice_map = gVoiceClient->getParticipantList();
+	LLVoiceClient::participantMap *voice_map = LLVoiceClient::getInstance()->getParticipantList();
 	if (voice_map)
 	{
 		for (LLVoiceClient::participantMap::const_iterator iter = voice_map->begin();
@@ -601,10 +601,13 @@ void LLCallFloater::updateNotInVoiceParticipantState(LLAvatarListItem* item)
 			}
 		}
 		break;
-	case STATE_INVITED:
 	case STATE_LEFT:
 		// nothing to do. These states should not be changed.
 		break;
+	case STATE_INVITED:
+		// If avatar was invited into group chat and went offline it is still exists in mSpeakerStateMap
+		// If it goes online it will be rendered as JOINED via LAvatarListItem.
+		// Lets update its visual representation. See EXT-6660
 	case STATE_UNKNOWN:
 		// If an avatarID is not found in a speakers list from VoiceClient and
 		// a panel with this ID has an UNKNOWN status this means that this person
@@ -725,7 +728,7 @@ void LLCallFloater::connectToChannel(LLVoiceChannel* channel)
 void LLCallFloater::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state)
 {
 	// check is voice operational and if it doesn't work hide VCP (EXT-4397)
-	if(LLVoiceClient::voiceEnabled() && gVoiceClient->voiceWorking())
+	if(LLVoiceClient::voiceEnabled() && LLVoiceClient::getInstance()->voiceWorking())
 	{
 		updateState(new_state);
 	}
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 81edb55f93085c04b6c1b3192dd4150ce524bf2e..aef36b677cad0f7d00b8eff5bed1fec6e31b21f3 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -324,6 +324,8 @@ void LLNearbyChatToastPanel::draw()
 			icon->setDrawTooltip(mSourceType == CHAT_SOURCE_AGENT);
 			if(mSourceType == CHAT_SOURCE_AGENT)
 				icon->setValue(mFromID);
+			else if(mSourceType == CHAT_SOURCE_SYSTEM)
+				icon->setValue(LLSD("SL_Logo"));
 			else
 				icon->setValue(LLSD("OBJECT_Icon"));
 		}
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index e39384b7b29e4ddbc44eb3a71ef6cc332ce82f1e..05d3d70c74bf282c3a9539de7a45b9ca280eb3ee 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -131,8 +131,6 @@ LLSysWellChiclet::Params::Params()
 : button("button")
 , unread_notifications("unread_notifications")
 , max_displayed_count("max_displayed_count", 99)
-, flash_to_lit_count("flash_to_lit_count", 3)
-, flash_period("flash_period", 0.5F)
 {
 	button.name("button");
 	button.tab_stop(FALSE);
@@ -152,7 +150,13 @@ LLSysWellChiclet::LLSysWellChiclet(const Params& p)
 	mButton = LLUICtrlFactory::create<LLButton>(button_params);
 	addChild(mButton);
 
-	mFlashToLitTimer = new FlashToLitTimer(p.flash_to_lit_count, p.flash_period, boost::bind(&LLSysWellChiclet::changeLitState, this));
+	// use settings from settings.xml to be able change them via Debug settings. See EXT-5973.
+	// Due to Timer is implemented as derived class from EventTimer it is impossible to change period
+	// in runtime. So, both settings are made as required restart.
+	static S32 flash_to_lit_count = gSavedSettings.getS32("WellIconFlashCount");
+	static F32 flash_period = gSavedSettings.getF32("WellIconFlashPeriod");
+
+	mFlashToLitTimer = new FlashToLitTimer(flash_to_lit_count, flash_period, boost::bind(&LLSysWellChiclet::changeLitState, this));
 }
 
 LLSysWellChiclet::~LLSysWellChiclet()
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index ba17c5970ed1e114b3cb78e18abc1c00477f2226..97f494b817f54e34992c4bb0ebc3ffcaa4730ccd 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -800,16 +800,6 @@ class LLSysWellChiclet : public LLChiclet
 		 */
 		Optional<S32> max_displayed_count;
 
-		/**
-		 * How many time chiclet should flash before set "Lit" state. Default value is 3.
-		 */
-		Optional<S32> flash_to_lit_count;
-
-		/**
-		 * Period of flashing while setting "Lit" state, in seconds. Default value is 0.5.
-		 */
-		Optional<F32> flash_period;
-
 		Params();
 	};
 
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index c7c79401a0fa843a61588f6cf2f04d51fd7e7233..c423473740151850a13502f0907c2a97f24ddae5 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -167,6 +167,8 @@ void LLViewerDynamicTexture::postRender(BOOL success)
 			{
 				generateGLTexture() ;
 			}
+			llcallstacks << "class type: " << (S32)getType() << llcallstacksendl ;
+
 			success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight);
 		}
 	}
diff --git a/indra/newview/lldynamictexture.h b/indra/newview/lldynamictexture.h
index 2a944eaada5c9c9f403a086341dca851a19aca09..caf260351922624c5242b788ed8e2b8b8bc5d0c9 100644
--- a/indra/newview/lldynamictexture.h
+++ b/indra/newview/lldynamictexture.h
@@ -41,6 +41,19 @@
 
 class LLViewerDynamicTexture : public LLViewerTexture
 {
+public:
+	enum
+	{
+		LL_VIEWER_DYNAMIC_TEXTURE = LLViewerTexture::DYNAMIC_TEXTURE,
+		LL_TEX_LAYER_SET_BUFFER = LLViewerTexture::INVALID_TEXTURE_TYPE + 1,
+		LL_VISUAL_PARAM_HINT,
+		LL_VISUAL_PARAM_RESET,
+		LL_PREVIEW_ANIMATION,
+		LL_IMAGE_PREVIEW_SCULPTED,
+		LL_IMAGE_PREVIEW_AVATAR,
+		INVALID_DYNAMIC_TEXTURE
+	};
+
 protected:
 	/*virtual*/ ~LLViewerDynamicTexture();
 
diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp
index 434c89e8bac429749926bcafc54a1112aec6bf03..043f753e01e90764b72874c10ced321ab985e883 100644
--- a/indra/newview/llfloateranimpreview.cpp
+++ b/indra/newview/llfloateranimpreview.cpp
@@ -1068,6 +1068,12 @@ LLPreviewAnimation::~LLPreviewAnimation()
 	mDummyAvatar->markDead();
 }
 
+//virtual
+S8 LLPreviewAnimation::getType() const
+{
+	return LLViewerDynamicTexture::LL_PREVIEW_ANIMATION ;
+}
+
 //-----------------------------------------------------------------------------
 // update()
 //-----------------------------------------------------------------------------
diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h
index 3ee1f419ab26d983bdcd84bb065b4a9c03450a22..84f131a32213f92562ee4bc6420a825f3962ef57 100644
--- a/indra/newview/llfloateranimpreview.h
+++ b/indra/newview/llfloateranimpreview.h
@@ -50,6 +50,8 @@ class LLPreviewAnimation : public LLViewerDynamicTexture
 public:
 	LLPreviewAnimation(S32 width, S32 height);	
 
+	/*virtual*/ S8 getType() const ;
+
 	BOOL	render();
 	void	requestUpdate();
 	void	rotate(F32 yaw_radians, F32 pitch_radians);
diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp
index 2cb0cdf36896ad9bb1a31eacbde5012f8ce2566c..01a699506e870d358e90f8d9d1c9a396552a9d71 100644
--- a/indra/newview/llfloateravatarpicker.cpp
+++ b/indra/newview/llfloateravatarpicker.cpp
@@ -38,6 +38,8 @@
 #include "llcallingcard.h"
 #include "llfocusmgr.h"
 #include "llfloaterreg.h"
+#include "llimview.h"			// for gIMMgr
+#include "lltooldraganddrop.h"	// for LLToolDragAndDrop
 #include "llviewercontrol.h"
 #include "llworld.h"
 
@@ -370,6 +372,68 @@ void LLFloaterAvatarPicker::setAllowMultiple(BOOL allow_multiple)
 	getChild<LLScrollListCtrl>("Friends")->setAllowMultipleSelection(allow_multiple);
 }
 
+LLScrollListCtrl* LLFloaterAvatarPicker::getActiveList()
+{
+	std::string acvtive_panel_name;
+	LLScrollListCtrl* list = NULL;
+	LLPanel* active_panel = childGetVisibleTab("ResidentChooserTabs");
+	if(active_panel)
+	{
+		acvtive_panel_name = active_panel->getName();
+	}
+	if(acvtive_panel_name == "SearchPanel")
+	{
+		list = getChild<LLScrollListCtrl>("SearchResults");
+	}
+	else if(acvtive_panel_name == "NearMePanel")
+	{
+		list = getChild<LLScrollListCtrl>("NearMe");
+	}
+	else if (acvtive_panel_name == "FriendsPanel")
+	{
+		list = getChild<LLScrollListCtrl>("Friends");
+	}
+	return list;
+}
+
+BOOL LLFloaterAvatarPicker::handleDragAndDrop(S32 x, S32 y, MASK mask,
+											  BOOL drop, EDragAndDropType cargo_type,
+											  void *cargo_data, EAcceptance *accept,
+											  std::string& tooltip_msg)
+{
+	LLScrollListCtrl* list = getActiveList();
+	if(list)
+	{
+		LLRect rc_list;
+		LLRect rc_point(x,y,x,y);
+		if (localRectToOtherView(rc_point, &rc_list, list))
+		{
+			// Keep selected only one item
+			list->deselectAllItems(TRUE);
+			list->selectItemAt(rc_list.mLeft, rc_list.mBottom, mask);
+			LLScrollListItem* selection = list->getFirstSelected();
+			if (selection)
+			{
+				LLUUID session_id = LLUUID::null;
+				LLUUID dest_agent_id = selection->getUUID();
+				std::string avatar_name = selection->getColumn(0)->getValue().asString();
+				if (dest_agent_id.notNull() && dest_agent_id != gAgentID)
+				{
+					if (drop)
+					{
+						// Start up IM before give the item
+						session_id = gIMMgr->addSession(avatar_name, IM_NOTHING_SPECIAL, dest_agent_id);
+					}
+					return LLToolDragAndDrop::handleGiveDragAndDrop(dest_agent_id, session_id, drop,
+																	cargo_type, cargo_data, accept);
+				}
+			}
+		}
+	}
+	*accept = ACCEPT_NO;
+	return TRUE;
+}
+
 // static 
 void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void**)
 {
diff --git a/indra/newview/llfloateravatarpicker.h b/indra/newview/llfloateravatarpicker.h
index 860f3930ef45fb58fa79a37b3197dad33c5d234e..e69b814f9f802a782e6d8c0b043aacb71eaef518 100644
--- a/indra/newview/llfloateravatarpicker.h
+++ b/indra/newview/llfloateravatarpicker.h
@@ -37,6 +37,8 @@
 
 #include <vector>
 
+class LLScrollListCtrl;
+
 class LLFloaterAvatarPicker : public LLFloater
 {
 public:
@@ -59,6 +61,11 @@ class LLFloaterAvatarPicker : public LLFloater
 
 	static void processAvatarPickerReply(class LLMessageSystem* msg, void**);
 
+	BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
+						   BOOL drop, EDragAndDropType cargo_type,
+						   void *cargo_data, EAcceptance *accept,
+						   std::string& tooltip_msg);
+
 private:
 	void editKeystroke(class LLLineEditor* caller, void* user_data);
 
@@ -77,6 +84,7 @@ class LLFloaterAvatarPicker : public LLFloater
 
 	void find();
 	void setAllowMultiple(BOOL allow_multiple);
+	LLScrollListCtrl* getActiveList();
 
 	virtual void draw();
 	virtual BOOL handleKeyHere(KEY key, MASK mask);
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 6b754bd0653107d65508d986444dad3e29ac3cbb..ef9da30552ed1598babba5591b776a070fed7fd0 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -629,6 +629,11 @@ LLImagePreviewAvatar::~LLImagePreviewAvatar()
 	mDummyAvatar->markDead();
 }
 
+//virtual
+S8 LLImagePreviewAvatar::getType() const
+{
+	return LLViewerDynamicTexture::LL_IMAGE_PREVIEW_AVATAR ;
+}
 
 void LLImagePreviewAvatar::setPreviewTarget(const std::string& joint_name, const std::string& mesh_name, LLImageRaw* imagep, F32 distance, BOOL male) 
 { 
@@ -808,6 +813,11 @@ LLImagePreviewSculpted::~LLImagePreviewSculpted()
 {
 }
 
+//virtual
+S8 LLImagePreviewSculpted::getType() const
+{
+	return LLViewerDynamicTexture::LL_IMAGE_PREVIEW_SCULPTED ;
+}
 
 void LLImagePreviewSculpted::setPreviewTarget(LLImageRaw* imagep, F32 distance)
 { 
diff --git a/indra/newview/llfloaterimagepreview.h b/indra/newview/llfloaterimagepreview.h
index 4a12543650f27a58ccb0d5e8a93a4a7aa49755a0..466bd1d0ec34f2d1235aee63261400c403ac9d2b 100644
--- a/indra/newview/llfloaterimagepreview.h
+++ b/indra/newview/llfloaterimagepreview.h
@@ -54,6 +54,8 @@ class LLImagePreviewSculpted : public LLViewerDynamicTexture
  public:
 	LLImagePreviewSculpted(S32 width, S32 height);	
 
+	/*virtual*/ S8 getType() const ;
+
 	void setPreviewTarget(LLImageRaw *imagep, F32 distance);
 	void setTexture(U32 name) { mTextureName = name; }
 
@@ -85,6 +87,8 @@ class LLImagePreviewAvatar : public LLViewerDynamicTexture
 public:
 	LLImagePreviewAvatar(S32 width, S32 height);	
 
+	/*virtual*/ S8 getType() const ;
+
 	void setPreviewTarget(const std::string& joint_name, const std::string& mesh_name, LLImageRaw* imagep, F32 distance, BOOL male);
 	void setTexture(U32 name) { mTextureName = name; }
 	void clearPreviewTexture(const std::string& mesh_name);
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 60ce16aafb33b91d035a01f900c6b62a62f670ae..e2c5ad6d02f1f43e1806770c281f9b39fb0a85e8 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1083,10 +1083,8 @@ void LLFloaterPreference::onClickLogPath()
 	{
 		return; //Canceled!
 	}
-	std::string chat_log_dir = picker.getDirName();
-	std::string chat_log_top_folder= gDirUtilp->getBaseFileName(chat_log_dir);
-	gSavedPerAccountSettings.setString("InstantMessageLogPath",chat_log_dir);
-	gSavedPerAccountSettings.setString("InstantMessageLogFolder",chat_log_top_folder);
+
+	gSavedPerAccountSettings.setString("InstantMessageLogPath", picker.getDirName());
 }
 
 void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email)
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 03389e62d71084c9bc89f3a79ce92acf01e7da07..a6a8194685c85efd15cbcff3ff90767a13ca8c03 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -168,6 +168,8 @@ class LLSnapshotLivePreview : public LLView
 	void setSnapshotBufferType(LLViewerWindow::ESnapshotType type) { mSnapshotBufferType = type; }
 	void updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail = FALSE, F32 delay = 0.f);
 	LLFloaterPostcard* savePostcard();
+	void confirmSavingTexture(bool set_as_profile_pic = false);
+	bool onSavingTextureConfirmed(const LLSD& notification, const LLSD& response, bool set_as_profile_pic);
 	void saveTexture(bool set_as_profile_pic = false);
 	BOOL saveLocal();
 	void saveWeb(std::string url);
@@ -983,6 +985,26 @@ void profile_pic_upload_callback(const LLUUID& uuid)
 	floater->setAsProfilePic(uuid);
 }
 
+void LLSnapshotLivePreview::confirmSavingTexture(bool set_as_profile_pic)
+{
+	LLSD args;
+	args["AMOUNT"] = "10"; // *TODO: there's currently no way to avoid hardcoding the upload price
+	LLNotificationsUtil::add("UploadConfirmation", args, LLSD(),
+			boost::bind(&LLSnapshotLivePreview::onSavingTextureConfirmed, this, _1, _2, set_as_profile_pic));
+}
+
+bool LLSnapshotLivePreview::onSavingTextureConfirmed(const LLSD& notification, const LLSD& response, bool set_as_profile_pic)
+{
+	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+
+	if (option == 0)
+	{
+		saveTexture(set_as_profile_pic);
+	}
+
+	return false;
+}
+
 
 void LLSnapshotLivePreview::saveTexture(bool set_as_profile_pic)
 {
@@ -1746,7 +1768,7 @@ void LLFloaterSnapshot::Impl::onCommitProfilePic(LLFloaterSnapshot* view)
 	
 	if(previewp)
 	{
-		previewp->saveTexture(true);
+		previewp->confirmSavingTexture(true);
 	}
 }
 
@@ -1768,7 +1790,7 @@ void LLFloaterSnapshot::Impl::onCommitSnapshot(LLFloaterSnapshot* view, LLSnapsh
 		}
 		else if (type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE)
 		{
-			previewp->saveTexture();
+			previewp->confirmSavingTexture();
 		}
 		else if (type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD)
 		{
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp
index d4eecc8c48c2a61456e2095fb8e4c0e5c630e496..438159b2e68a0baeb5a211359778e89b694d5906 100644
--- a/indra/newview/llgroupactions.cpp
+++ b/indra/newview/llgroupactions.cpp
@@ -75,12 +75,13 @@ class LLGroupHandler : public LLCommandHandler
 			return false;
 		}
 
-		//*TODO by what to replace showing groups floater?
 		if (tokens[0].asString() == "list")
 		{
 			if (tokens[1].asString() == "show")
 			{
-				//LLFloaterReg::showInstance("contacts", "groups");
+				LLSD params;
+				params["people_panel_tab_name"] = "groups_panel";
+				LLSideTray::getInstance()->showPanel("panel_people", params);
 				return true;
 			}
             return false;
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index e0f155a6a9a9b51fa0458af61a36fabb3e323a42..92b994ad6720ce0c83e1ab6668d57f365c44424d 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -297,7 +297,7 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
 				LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
 				break;
 			case LLVoiceChannel::STATE_CONNECTED :
-				message = other_avatar_name + " " + joined_call;
+				message = LLTrans::getString("answered_call");
 				LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
 			default:
 				break;
@@ -1713,7 +1713,6 @@ void LLOutgoingCallDialog::show(const LLSD& key)
 			channel_name = LLTextUtil::formatPhoneNumber(channel_name);
 		}
 		childSetTextArg("nearby", "[VOICE_CHANNEL_NAME]", channel_name);
-		childSetTextArg("nearby_P2P_by_other", "[VOICE_CHANNEL_NAME]", mPayload["disconnected_channel_name"].asString());
 
 		// skipping "You will now be reconnected to nearby" in notification when call is ended by disabling voice,
 		// so no reconnection to nearby chat happens (EXT-4397)
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 87b3c2e835ef6c0d064b9cf1123472072edbb6d8..3071ef3b71e52de80093a1b5dd5d5f59378ff92e 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -672,6 +672,11 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		items.push_back(std::string("Open"));
 		items.push_back(std::string("Properties"));
 
@@ -1031,6 +1036,38 @@ bool LLInvFVBridge::isInOutfitsSidePanel() const
 	return outfit_panel->isTabPanel(my_panel);
 }
 
+bool LLInvFVBridge::canShare()
+{
+	const LLInventoryModel* model = getInventoryModel();
+	if(!model)
+	{
+		return false;
+	}
+
+	LLViewerInventoryItem *item = model->getItem(mUUID);
+	if (item)
+	{
+		bool allowed = false;
+		allowed = LLInventoryCollectFunctor::itemTransferCommonlyAllowed(item);
+		if (allowed &&
+			!item->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID()))
+		{
+			allowed = false;
+		}
+		if (allowed &&
+			!item->getPermissions().allowCopyBy(gAgent.getID()))
+		{
+			allowed = false;
+		}
+		return allowed;
+	}
+
+	LLViewerInventoryCategory* cat = model->getCategory(mUUID);
+
+	// All categories can be given.
+	return cat != NULL;
+}
+
 // +=================================================+
 // |        InventoryFVBridgeBuilder                 |
 // +=================================================+
@@ -2757,7 +2794,13 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	{
 		mDisabledItems.push_back(std::string("Delete System Folder"));
 	}
-	
+
+	mItems.push_back(std::string("Share"));
+	if (!canShare())
+	{
+		mDisabledItems.push_back(std::string("Share"));
+	}
+
 	hide_context_entries(menu, mItems, mDisabledItems);
 }
 
@@ -3176,6 +3219,9 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
 			}
 			else
 			{
+				// store dad inventory item to select added one later. See EXT-4347
+				set_dad_inventory_item(inv_item, mUUID);
+
 				LLNotification::Params params("MoveInventoryFromObject");
 				params.functor.function(boost::bind(move_task_inventory_callback, _1, _2, move_inv));
 				LLNotifications::instance().forceResponse(params, 0);
@@ -3272,6 +3318,12 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
+
 		items.push_back(std::string("Open"));
 		items.push_back(std::string("Properties"));
 
@@ -3360,6 +3412,11 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		items.push_back(std::string("Sound Open"));
 		items.push_back(std::string("Properties"));
 
@@ -3406,6 +3463,11 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		items.push_back(std::string("Landmark Open"));
 		items.push_back(std::string("Properties"));
 
@@ -3623,6 +3685,11 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		items.push_back(std::string("Open"));
 		items.push_back(std::string("Properties"));
 
@@ -3893,6 +3960,11 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		bool is_sidepanel = isInOutfitsSidePanel();
 
 		if (!is_sidepanel)
@@ -3951,6 +4023,11 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		items.push_back(std::string("Animation Open"));
 		items.push_back(std::string("Properties"));
 
@@ -4227,6 +4304,11 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 	}
 	else
 	{
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		bool is_sidepanel = isInOutfitsSidePanel();
 
 		if (!is_sidepanel)
@@ -4616,6 +4698,11 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 			can_open = FALSE;
 		}
 
+		items.push_back(std::string("Share"));
+		if (!canShare())
+		{
+			disabled_items.push_back(std::string("Share"));
+		}
 		bool is_sidepanel = isInOutfitsSidePanel();
 		
 		if (can_open && !is_sidepanel)
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index e7b3785a48b8e2019d5b79c9d1fbc4c7497276c7..f378d219f68317da4a8175f5d660db869525b8e9 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -125,6 +125,8 @@ class LLInvFVBridge : public LLFolderViewEventListener
 	// Allow context menus to be customized for side panel.
 	bool isInOutfitsSidePanel() const;
 
+	bool canShare();
+
 	//--------------------------------------------------------------------
 	// Convenience functions for adding various common menu options.
 	//--------------------------------------------------------------------
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index fb2ef01c8f84e80a6413b4b25b38f9c71de07f10..544a8158962534e263519793baa0fbc697591f22 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -485,6 +485,69 @@ void LLInventoryExistenceObserver::changed(U32 mask)
 	}
 }
 
+void LLInventoryMoveFromWorldObserver::changed(U32 mask)
+{
+	if(!(mask & LLInventoryObserver::ADD))
+	{
+		return;
+	}
+
+	// nothing is watched
+	if (mWatchedAssets.size() == 0)
+	{
+		return;
+	}
+
+	LLPointer<LLViewerInventoryItem> item = new LLViewerInventoryItem;
+	LLMessageSystem* msg = gMessageSystem;
+	S32 num_blocks = msg->getNumberOfBlocksFast(_PREHASH_InventoryData);
+	for(S32 i = 0; i < num_blocks; ++i)
+	{
+		item->unpackMessage(msg, _PREHASH_InventoryData, i);
+		const LLUUID& asset_uuid = item->getAssetUUID();
+		if (item->getUUID().notNull() && asset_uuid.notNull())
+		{
+			if (isAssetWatched(asset_uuid))
+			{
+				LL_DEBUGS("Inventory_Move") << "Found asset UUID: " << asset_uuid << LL_ENDL;
+				mAddedItems.push_back(item->getUUID());
+			}
+		}
+	}
+
+	if (mAddedItems.size() == mWatchedAssets.size())
+	{
+		done();
+		LL_DEBUGS("Inventory_Move") << "All watched items are added & processed." << LL_ENDL;
+		mAddedItems.clear();
+
+		// Unable to clean watched items here due to somebody can require to check them in current frame.
+		// set dirty state to clean them while next watch cycle.
+		mIsDirty = true;
+	}
+}
+
+void LLInventoryMoveFromWorldObserver::watchAsset(const LLUUID& asset_id)
+{
+	if(asset_id.notNull())
+	{
+		if (mIsDirty)
+		{
+			LL_DEBUGS("Inventory_Move") << "Watched items are dirty. Clean them." << LL_ENDL;
+			mWatchedAssets.clear();
+			mIsDirty = false;
+		}
+
+		mWatchedAssets.push_back(asset_id);
+		onAssetAdded(asset_id);
+	}
+}
+
+bool LLInventoryMoveFromWorldObserver::isAssetWatched( const LLUUID& asset_id )
+{
+	return std::find(mWatchedAssets.begin(), mWatchedAssets.end(), asset_id) != mWatchedAssets.end();
+}
+
 void LLInventoryAddedObserver::changed(U32 mask)
 {
 	if (!(mask & LLInventoryObserver::ADD))
diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h
index ac2eca3477d1ea70a15df8022b0698801af0a717..c48ffaa55d18a5334a7365bddc7e742e688862c9 100644
--- a/indra/newview/llinventoryobserver.h
+++ b/indra/newview/llinventoryobserver.h
@@ -172,6 +172,36 @@ class LLInventoryExistenceObserver : public LLInventoryObserver
 	uuid_vec_t mMIA;
 };
 
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLInventoryMovedObserver
+//
+// This class is used as a base class for doing something when all the
+// item for observed asset ids were added into the inventory.
+// Derive a class from this class and implement the done() method to do
+// something useful.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+class LLInventoryMoveFromWorldObserver : public LLInventoryObserver
+{
+public:
+	LLInventoryMoveFromWorldObserver() : mIsDirty(false) {}
+	virtual void changed(U32 mask);
+
+	void watchAsset(const LLUUID& asset_id);
+	bool isAssetWatched(const LLUUID& asset_id);
+
+protected:
+	virtual void onAssetAdded(const LLUUID& asset_id) {}
+	virtual void done() = 0;
+
+	typedef std::vector<LLUUID> item_ref_t;
+	item_ref_t mAddedItems;
+	item_ref_t mWatchedAssets;
+
+private:
+	bool mIsDirty;
+};
+
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 // Class LLInventoryAddedObserver
 //
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index f3ad4b6890fab31d7dd23091c6a52ff29b09f4d1..15c872a7c46e10e2e916e41cbf2e7d80ebfe53d8 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -38,6 +38,7 @@
 #include "llagent.h"
 #include "llagentwearables.h"
 #include "llappearancemgr.h"
+#include "llavataractions.h"
 #include "llfloaterinventory.h"
 #include "llfloaterreg.h"
 #include "llimfloater.h"
@@ -99,6 +100,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
 	mCommitCallbackRegistrar.add("Inventory.DoCreate", boost::bind(&LLInventoryPanel::doCreate, this, _2));
 	mCommitCallbackRegistrar.add("Inventory.AttachObject", boost::bind(&LLInventoryPanel::attachObject, this, _2));
 	mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&LLInventoryPanel::beginIMSession, this));
+	mCommitCallbackRegistrar.add("Inventory.Share",  boost::bind(&LLAvatarActions::shareWithAvatars));
 	
 	if (mStartFolderString != "")
 	{
@@ -669,7 +671,8 @@ BOOL LLInventoryPanel::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
 
 	// If folder view is empty the (x, y) point won't be in its rect
 	// so the handler must be called explicitly.
-	if (!mFolderRoot->hasVisibleChildren())
+	// but only if was not handled before. See EXT-6746.
+	if (!handled && !mFolderRoot->hasVisibleChildren())
 	{
 		handled = mFolderRoot->handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
 	}
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 24c72c65cede0f674b90b49dcd93a42354d0532e..454fd29fdc5084f1943925bc49eaefab060c4b49 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -352,20 +352,18 @@ void LLLoginInstance::updateApp(bool mandatory, const std::string& auth_msg)
 	payload["mandatory"] = mandatory;
 
 /*
- We're constructing one of the following 6 strings here:
+ We're constructing one of the following 9 strings here:
 	 "DownloadWindowsMandatory"
 	 "DownloadWindowsReleaseForDownload"
 	 "DownloadWindows"
 	 "DownloadMacMandatory"
 	 "DownloadMacReleaseForDownload"
 	 "DownloadMac"
+	 "DownloadLinuxMandatory"
+	 "DownloadLinuxReleaseForDownload"
+	 "DownloadLinux"
  
  I've called them out explicitly in this comment so that they can be grepped for.
- 
- Also, we assume that if we're not Windows we're Mac. If we ever intend to support 
- Linux with autoupdate, this should be an explicit #elif LL_DARWIN, but 
- we'd rather deliver the wrong message than no message, so until Linux is supported
- we'll leave it alone.
  */
 	std::string notification_name = "Download";
 	
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index c8d5d782b7436d35d5edc481eb93c88aa7ad3328..5d72827a7acecd152daa8c66418d319c2b9bdfc5 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -207,7 +207,7 @@ void	LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)
 		return;
 	}
 
-	if (gSavedPerAccountSettings.getBOOL("LogChat")) 
+	if (gSavedPerAccountSettings.getBOOL("LogNearbyChat"))
 	{
 		LLLogChat::saveHistory("chat", chat.mFromName, chat.mFromID, chat.mText);
 	}
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index e199f9f180e484de6ed8ab7878726c46ad7c32c6..9824517ed1fd59009d53eb2487c48f8b36d48d7c 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -56,7 +56,6 @@ LLToastPanelBase* createToastPanel()
 	return item;
 }
 
-
 class LLNearbyChatScreenChannel: public LLScreenChannelBase
 {
 public:
@@ -88,11 +87,7 @@ class LLNearbyChatScreenChannel: public LLScreenChannelBase
 	{
 		for(std::vector<LLToast*>::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
 		{
-			LLToast* toast = (*it);
-			toast->setVisible(FALSE);
-			toast->stopTimer();
-			m_toast_pool.push_back(toast);
-
+			addToToastPool((*it));
 		}
 		m_active_toasts.clear();
 	};
@@ -105,6 +100,14 @@ class LLNearbyChatScreenChannel: public LLScreenChannelBase
 	}
 
 protected:
+	void	addToToastPool(LLToast* toast)
+	{
+		toast->setVisible(FALSE);
+		toast->stopTimer();
+		toast->setIsHidden(true);
+		m_toast_pool.push_back(toast);
+	}
+
 	void	createOverflowToast(S32 bottom, F32 timer);
 
 	create_toast_panel_callback_t m_create_toast_panel_callback_t;
@@ -132,11 +135,12 @@ void LLNearbyChatScreenChannel::onToastFade(LLToast* toast)
 	//fade mean we put toast to toast pool
 	if(!toast)
 		return;
-	m_toast_pool.push_back(toast);
 
 	std::vector<LLToast*>::iterator pos = std::find(m_active_toasts.begin(),m_active_toasts.end(),toast);
 	if(pos!=m_active_toasts.end())
 		m_active_toasts.erase(pos);
+
+	addToToastPool(toast);
 	
 	arrangeToasts();
 }
@@ -228,7 +232,7 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification)
 	toast->reshapeToPanel();
 	toast->resetTimer();
 	
-	m_active_toasts.insert(m_active_toasts.begin(),toast);
+	m_active_toasts.push_back(toast);
 
 	arrangeToasts();
 }
@@ -240,7 +244,14 @@ void LLNearbyChatScreenChannel::arrangeToasts()
 
 	hideToastsFromScreen();
 
-	showToastsBottom();					
+	showToastsBottom();
+}
+
+int sort_toasts_predicate(LLToast* first,LLToast* second)
+{
+	F32 v1 = first->getTimer()->getEventTimer().getElapsedTimeF32();
+	F32 v2 = second->getTimer()->getEventTimer().getElapsedTimeF32();
+	return v1 < v2;
 }
 
 void LLNearbyChatScreenChannel::showToastsBottom()
@@ -252,39 +263,41 @@ void LLNearbyChatScreenChannel::showToastsBottom()
 	S32		bottom = getRect().mBottom;
 	S32		margin = gSavedSettings.getS32("ToastGap");
 
+	//sort active toasts
+	std::sort(m_active_toasts.begin(),m_active_toasts.end(),sort_toasts_predicate);
+
+	//calc max visible item and hide other toasts.
+
 	for(std::vector<LLToast*>::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
 	{
-		LLToast* toast = (*it);
-		S32 toast_top = bottom + toast->getRect().getHeight() + margin;
+		S32 toast_top = bottom + (*it)->getRect().getHeight() + margin;
 
 		if(toast_top > gFloaterView->getRect().getHeight())
 		{
 			while(it!=m_active_toasts.end())
 			{
-				toast->setVisible(FALSE);
-				toast->stopTimer();
-				m_toast_pool.push_back(toast);
+				addToToastPool((*it));
 				it=m_active_toasts.erase(it);
 			}
 			break;
 		}
-		bottom = toast_top - toast->getTopPad();
-	}
-
-	// use reverse order to provide correct z-order and avoid toast blinking
-	for(std::vector<LLToast*>::reverse_iterator it = m_active_toasts.rbegin(); it != m_active_toasts.rend(); ++it)
-	{
 		LLToast* toast = (*it);
-		S32 toast_top = bottom + toast->getTopPad();
 
 		toast_rect = toast->getRect();
-		toast_rect.setLeftTopAndSize(getRect().mLeft , toast_top, toast_rect.getWidth() ,toast_rect.getHeight());
+		toast_rect.setLeftTopAndSize(getRect().mLeft , bottom + toast_rect.getHeight(), toast_rect.getWidth() ,toast_rect.getHeight());
 
 		toast->setRect(toast_rect);
+		bottom += toast_rect.getHeight() + margin;
+	}
+	
+	// use reverse order to provide correct z-order and avoid toast blinking
+	
+	for(std::vector<LLToast*>::reverse_iterator it = m_active_toasts.rbegin(); it != m_active_toasts.rend(); ++it)
+	{
+		LLToast* toast = (*it);
 		toast->setIsHidden(false);
 		toast->setVisible(TRUE);
 
-		bottom = toast->getRect().mBottom - margin;
 	}
 }
 
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/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index 8d8c996374e91259672f346d6ee0d12e2dfa5186..67d40a39b119ac66e574995654dcf111cfc1c8bb 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -280,6 +280,17 @@ void LLLandmarksPanel::onShowOnMap()
 	doActionOnCurSelectedLandmark(boost::bind(&LLLandmarksPanel::doShowOnMap, this, _1));
 }
 
+//virtual
+void LLLandmarksPanel::onShowProfile()
+{
+	LLFolderViewItem* cur_item = getCurSelectedItem();
+
+	if(!cur_item)
+		return;
+
+	cur_item->getListener()->performAction(mCurrentSelectedList->getModel(),"about");
+}
+
 // virtual
 void LLLandmarksPanel::onTeleport()
 {
@@ -306,6 +317,7 @@ void LLLandmarksPanel::updateVerbs()
 	bool landmark_selected = isLandmarkSelected();
 	mTeleportBtn->setEnabled(landmark_selected && isActionEnabled("teleport"));
 	mShowOnMapBtn->setEnabled(landmark_selected && isActionEnabled("show_on_map"));
+	mShowProfile->setEnabled(landmark_selected && isActionEnabled("more_info"));
 
 	// TODO: mantipov: Uncomment when mShareBtn is supported
 	// Share button should be enabled when neither a folder nor a landmark is selected
@@ -663,6 +675,7 @@ void LLLandmarksPanel::initListCommandsHandlers()
 	trash_btn->setDragAndDropHandler(boost::bind(&LLLandmarksPanel::handleDragAndDropToTrash, this
 			,	_4 // BOOL drop
 			,	_5 // EDragAndDropType cargo_type
+			,	_6 // void* cargo_data
 			,	_7 // EAcceptance* accept
 			));
 
@@ -977,13 +990,10 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
 
 void LLLandmarksPanel::onCustomAction(const LLSD& userdata)
 {
-	LLFolderViewItem* cur_item = getCurSelectedItem();
-	if(!cur_item)
-		return;
 	std::string command_name = userdata.asString();
 	if("more_info" == command_name)
 	{
-		cur_item->getListener()->performAction(mCurrentSelectedList->getModel(),"about");
+		onShowProfile();
 	}
 	else if ("teleport" == command_name)
 	{
@@ -1100,7 +1110,7 @@ void LLLandmarksPanel::onPickPanelExit( LLPanelPickEdit* pick_panel, LLView* own
 	pick_panel = NULL;
 }
 
-bool LLLandmarksPanel::handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept)
+bool LLLandmarksPanel::handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, void* cargo_data , EAcceptance* accept)
 {
 	*accept = ACCEPT_NO;
 
@@ -1116,7 +1126,21 @@ bool LLLandmarksPanel::handleDragAndDropToTrash(BOOL drop, EDragAndDropType carg
 
 			if (is_enabled && drop)
 			{
-				onClipboardAction("delete");
+				// don't call onClipboardAction("delete")
+				// this lead to removing (N * 2 - 1) items if drag N>1 items into trash. EXT-6757
+				// So, let remove items one by one.
+				LLInventoryItem* item = static_cast<LLInventoryItem*>(cargo_data);
+				if (item)
+				{
+					LLFolderViewItem* fv_item = (mCurrentSelectedList && mCurrentSelectedList->getRootFolder()) ?
+						mCurrentSelectedList->getRootFolder()->getItemByID(item->getUUID()) : NULL;
+
+					if (fv_item)
+					{
+						// is Item Removable checked inside of remove()
+						fv_item->remove();
+					}
+				}
 			}
 		}
 		break;
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index c9217a4b2f99fbf64c50ede1e832dae9027b9866..2d1eb0f09187c6a1ffdcfedaeff8ab986ed69de7 100644
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
@@ -57,6 +57,7 @@ class LLLandmarksPanel : public LLPanelPlacesTab, LLRemoteParcelInfoObserver
 	/*virtual*/ BOOL postBuild();
 	/*virtual*/ void onSearchEdit(const std::string& string);
 	/*virtual*/ void onShowOnMap();
+	/*virtual*/ void onShowProfile();
 	/*virtual*/ void onTeleport();
 	/*virtual*/ void updateVerbs();
 
@@ -141,7 +142,7 @@ class LLLandmarksPanel : public LLPanelPlacesTab, LLRemoteParcelInfoObserver
 	/**
 	 * Processes drag-n-drop of the Landmarks and folders into trash button.
 	 */
-	bool handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept);
+	bool handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, void* cargo_data, EAcceptance* accept);
 
 	/**
 	 * Landmark actions callbacks. Fire when a landmark is loaded from the list.
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index 8be4c8402c632b3f9e9f8c618aa0a060117751c0..0ba373c51bfc8700647bbad1afcc51777d669ab5 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -34,6 +34,7 @@
 #include "llpanelmaininventory.h"
 
 #include "llagent.h"
+#include "llavataractions.h"
 #include "lldndbutton.h"
 #include "lleconomy.h"
 #include "llfilepicker.h"
@@ -116,6 +117,7 @@ LLPanelMainInventory::LLPanelMainInventory()
 	mCommitCallbackRegistrar.add("Inventory.ShowFilters", boost::bind(&LLPanelMainInventory::toggleFindOptions, this));
 	mCommitCallbackRegistrar.add("Inventory.ResetFilters", boost::bind(&LLPanelMainInventory::resetFilters, this));
 	mCommitCallbackRegistrar.add("Inventory.SetSortBy", boost::bind(&LLPanelMainInventory::setSortBy, this, _2));
+	mCommitCallbackRegistrar.add("Inventory.Share",  boost::bind(&LLAvatarActions::shareWithAvatars));
 
 	// Controls
 	// *TODO: Just use persistant settings for each of these
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index 4f2d6374cadcb305934886a81ba45086ad99a95f..93ebae334fae399ccf42012ce2e99c43df7dec42 100644
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
@@ -74,6 +74,7 @@ static const LLUUID PARCEL_AUDIO_LIST_ITEM_UUID = LLUUID("DF4B020D-8A24-4B95-AB5
 // LLPanelNearByMedia
 //
 
+
 LLPanelNearByMedia::LLPanelNearByMedia()
 :	mMediaList(NULL),
 	  mEnableAllCtrl(NULL),
@@ -87,6 +88,8 @@ LLPanelNearByMedia::LLPanelNearByMedia()
 	mParcelAudioAutoStart = gSavedSettings.getBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING) &&
 							gSavedSettings.getBOOL("MediaTentativeAutoPlay");
 
+	gSavedSettings.getControl(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING)->getSignal()->connect(boost::bind(&LLPanelNearByMedia::handleMediaAutoPlayChanged, this, _2));
+
 	mCommitCallbackRegistrar.add("MediaListCtrl.EnableAll",		boost::bind(&LLPanelNearByMedia::onClickEnableAll, this));
 	mCommitCallbackRegistrar.add("MediaListCtrl.DisableAll",		boost::bind(&LLPanelNearByMedia::onClickDisableAll, this));
 	mCommitCallbackRegistrar.add("MediaListCtrl.GoMediaPrefs", boost::bind(&LLPanelNearByMedia::onAdvancedButtonClick, this));
@@ -168,12 +171,19 @@ BOOL LLPanelNearByMedia::postBuild()
 	mLessRect = getRect();
 	mLessRect.mBottom = minimized_controls->getRect().mBottom;
 
-	getChild<LLUICtrl>("more_less_btn")->setValue(false);
+	getChild<LLUICtrl>("more_btn")->setVisible(false);
 	onMoreLess();
 	
 	return TRUE;
 }
 
+void LLPanelNearByMedia::handleMediaAutoPlayChanged(const LLSD& newvalue)
+{
+	// update mParcelAudioAutoStart if AUTO_PLAY_MEDIA_SETTING changes
+	mParcelAudioAutoStart = gSavedSettings.getBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING) &&
+							gSavedSettings.getBOOL("MediaTentativeAutoPlay");							
+}
+
 /*virtual*/
 void LLPanelNearByMedia::onMouseEnter(S32 x, S32 y, MASK mask)
 {
@@ -954,7 +964,7 @@ void LLPanelNearByMedia::onAdvancedButtonClick()
 
 void LLPanelNearByMedia::onMoreLess()
 {
-	bool is_more = getChild<LLUICtrl>("more_less_btn")->getValue();
+	bool is_more = getChild<LLUICtrl>("more_btn")->getVisible();
 	mNearbyMediaPanel->setVisible(is_more);
 
 	// enable resizing when expanded
@@ -964,6 +974,9 @@ void LLPanelNearByMedia::onMoreLess()
 	new_rect.translate(getRect().mRight - new_rect.mRight, getRect().mTop - new_rect.mTop);
 
 	setShape(new_rect);
+
+	getChild<LLUICtrl>("more_btn")->setVisible(!is_more);
+	getChild<LLUICtrl>("less_btn")->setVisible(is_more);
 }
 
 void LLPanelNearByMedia::updateControls()
diff --git a/indra/newview/llpanelnearbymedia.h b/indra/newview/llpanelnearbymedia.h
index af4659365f29828a9e6ed80ef1a62a83c262f2df..7c07867df3024f5d94d383c0ec27a8d037ed77a8 100644
--- a/indra/newview/llpanelnearbymedia.h
+++ b/indra/newview/llpanelnearbymedia.h
@@ -63,6 +63,10 @@ class LLPanelNearByMedia : public LLPanel
 	// interaction with our buttons.
 	bool getParcelAudioAutoStart();
 
+	// callback for when the auto play media preference changes
+	// to update mParcelAudioAutoStart
+	void handleMediaAutoPlayChanged(const LLSD& newvalue);
+
 	LLPanelNearByMedia();
 	virtual ~LLPanelNearByMedia();
 
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index df74c5dd470b574d1212140bcdff12a3a3d6e40c..3a82cf6f8bd5153fc661474a69f204c552a29433 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -46,6 +46,7 @@
 #include "roles_constants.h"
 
 #include "llagent.h"
+#include "llavataractions.h"
 #include "llcallbacklist.h"
 #include "llfloaterbuycurrency.h"
 #include "llfloaterreg.h"
@@ -1528,6 +1529,7 @@ LLPanelObjectInventory::LLPanelObjectInventory(const LLPanelObjectInventory::Par
 	mCommitCallbackRegistrar.add("Inventory.DoCreate", boost::bind(&do_nothing));
 	mCommitCallbackRegistrar.add("Inventory.AttachObject", boost::bind(&do_nothing));
 	mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&do_nothing));
+	mCommitCallbackRegistrar.add("Inventory.Share",  boost::bind(&LLAvatarActions::shareWithAvatars));
 }
 
 // Destroys the object
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index c3def7375382c2e9b4d9e79475b5f9581101cd06..31d00ebe174b85fb47d94be0e7628e41e09d0bbc 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -45,6 +45,7 @@
 #include "llfloaterreg.h"
 #include "llinventoryfunctions.h"
 #include "llinventorypanel.h"
+#include "llviewermenu.h"
 #include "llviewerwindow.h"
 #include "llviewerinventory.h"
 #include "llbutton.h"
@@ -54,12 +55,14 @@
 #include "llinventorybridge.h"
 #include "llinventorymodel.h"
 #include "llinventorymodelbackgroundfetch.h"
+#include "llpaneloutfitsinventory.h"
 #include "lluiconstants.h"
 #include "llscrolllistctrl.h"
 #include "lltextbox.h"
 #include "lluictrlfactory.h"
 #include "llsdutil.h"
 #include "llsidepanelappearance.h"
+#include "lltoggleablemenu.h"
 #include "llwearablelist.h"
 
 static LLRegisterPanelClassWrapper<LLPanelOutfitEdit> t_outfit_edit("panel_outfit_edit");
@@ -114,7 +117,7 @@ class LLLookFetchObserver : public LLInventoryFetchDescendentsObserver
 
 LLPanelOutfitEdit::LLPanelOutfitEdit()
 :	LLPanel(), mCurrentOutfitID(), mFetchLook(NULL), mSearchFilter(NULL),
-mLookContents(NULL), mInventoryItemsPanel(NULL), mAddToLookBtn(NULL),
+mLookContents(NULL), mInventoryItemsPanel(NULL), mAddToOutfitBtn(NULL),
 mRemoveFromLookBtn(NULL), mLookObserver(NULL)
 {
 	mSavedFolderState = new LLSaveFolderState();
@@ -172,8 +175,8 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mInventoryItemsPanel = getChild<LLInventoryPanel>("inventory_items");
 	mInventoryItemsPanel->setFilterTypes(ALL_ITEMS_MASK);
 	mInventoryItemsPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
-	// mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
-	// mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
+	mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
+	mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
 	
 	LLComboBox* type_filter = getChild<LLComboBox>("inventory_filter");
 	type_filter->setCommitCallback(boost::bind(&LLPanelOutfitEdit::onTypeFilterChanged, this, _1));
@@ -197,7 +200,8 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mAddToLookBtn->setEnabled(FALSE);
 	mAddToLookBtn->setVisible(FALSE); */
 	
-	childSetAction("add_item_btn", boost::bind(&LLPanelOutfitEdit::onAddToLookClicked, this), this);
+	childSetAction("add_to_outfit_btn", boost::bind(&LLPanelOutfitEdit::onAddToOutfitClicked, this));
+	childSetEnabled("add_to_outfit_btn", false);
 
 	mUpBtn = getChild<LLButton>("up_btn");
 	mUpBtn->setEnabled(TRUE);
@@ -228,6 +232,17 @@ BOOL LLPanelOutfitEdit::postBuild()
 
 	childSetAction("remove_item_btn", boost::bind(&LLPanelOutfitEdit::onRemoveFromLookClicked, this), this);
 	
+	childSetAction("revert_btn", boost::bind(&LLAppearanceMgr::wearBaseOutfit, LLAppearanceMgr::getInstance()));
+
+	childSetAction("save_btn", boost::bind(&LLPanelOutfitEdit::saveOutfit, this, false));
+	childSetAction("save_as_btn", boost::bind(&LLPanelOutfitEdit::saveOutfit, this, true));
+	childSetAction("save_flyout_btn", boost::bind(&LLPanelOutfitEdit::showSaveMenu, this));
+
+	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar save_registar;
+	save_registar.add("Outfit.Save.Action", boost::bind(&LLPanelOutfitEdit::saveOutfit, this, false));
+	save_registar.add("Outfit.SaveAsNew.Action", boost::bind(&LLPanelOutfitEdit::saveOutfit, this, true));
+	mSaveMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_save_outfit.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+
 	return TRUE;
 }
 
@@ -236,6 +251,31 @@ void LLPanelOutfitEdit::showAddWearablesPanel()
 	childSetVisible("add_wearables_panel", childGetValue("add_btn"));
 }
 
+void LLPanelOutfitEdit::saveOutfit(bool as_new)
+{
+	if (!as_new && LLAppearanceMgr::getInstance()->updateBaseOutfit())
+	{
+		// we don't need to ask for an outfit name, and updateBaseOutfit() successfully saved.
+		// If updateBaseOutfit fails, ask for an outfit name anyways
+		return;
+	}
+
+	LLPanelOutfitsInventory* panel_outfits_inventory = LLPanelOutfitsInventory::findInstance();
+	if (panel_outfits_inventory)
+	{
+		panel_outfits_inventory->onSave();
+	}
+}
+
+void LLPanelOutfitEdit::showSaveMenu()
+{
+	S32 x, y;
+	LLUI::getMousePositionLocal(this, &x, &y);
+
+	mSaveMenu->updateParent(LLMenuGL::sMenuContainer);
+	LLMenuGL::showPopup(this, mSaveMenu, x, y);
+}
+
 void LLPanelOutfitEdit::onTypeFilterChanged(LLUICtrl* ctrl)
 {
 	LLComboBox* type_filter = dynamic_cast<LLComboBox*>(ctrl);
@@ -298,13 +338,18 @@ void LLPanelOutfitEdit::onSearchEdit(const std::string& string)
 	mInventoryItemsPanel->setFilterSubString(mSearchString);
 }
 
-void LLPanelOutfitEdit::onAddToLookClicked(void)
+void LLPanelOutfitEdit::onAddToOutfitClicked(void)
 {
 	LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
+	if (!curr_item) return;
+
 	LLFolderViewEventListener* listenerp  = curr_item->getListener();
-	link_inventory_item(gAgent.getID(), listenerp->getUUID(), mCurrentOutfitID, listenerp->getName(),
-						LLAssetType::AT_LINK, LLPointer<LLInventoryCallback>(NULL));
-	updateLookInfo();
+	if (!listenerp) return;
+
+	if (LLAppearanceMgr::getInstance()->wearItemOnAvatar(listenerp->getUUID()))
+	{
+		updateLookInfo();
+	}
 }
 
 
@@ -405,6 +450,21 @@ void LLPanelOutfitEdit::onInventorySelectionChange(const std::deque<LLFolderView
 	{
 		return;
 	}
+
+	LLViewerInventoryItem* item = current_item->getInventoryItem();
+	if (!item) return;
+
+	switch (item->getType())
+	{
+	case LLAssetType::AT_CLOTHING:
+	case LLAssetType::AT_BODYPART:
+	case LLAssetType::AT_OBJECT:
+		childSetEnabled("add_to_outfit_btn", true);
+		break;
+	default:
+		childSetEnabled("add_to_outfit_btn", false);
+		break;
+	}
 	
 	/* Removing add to look inline button (not part of mvp for viewer 2)
 	LLRect btn_rect(current_item->getLocalRect().mRight - 50,
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index ba382d73200abd3a080235d168dc67657314ccc0..1a8d7d2bef19c42fa3d1a987ff6d441170209f87 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -52,6 +52,7 @@ class LLInventoryPanel;
 class LLSaveFolderState;
 class LLFolderViewItem;
 class LLScrollListCtrl;
+class LLToggleableMenu;
 class LLLookFetchObserver;
 class LLFilterEditor;
 
@@ -86,11 +87,13 @@ class LLPanelOutfitEdit : public LLPanel
 		// only update the location if there is none already available.
 
 	void showAddWearablesPanel();
+	void saveOutfit(bool as_new = false);
+	void showSaveMenu();
 
 	void onTypeFilterChanged(LLUICtrl* ctrl);
 	void onSearchEdit(const std::string& string);
 	void onInventorySelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
-	void onAddToLookClicked(void);
+	void onAddToOutfitClicked(void);
 	void onLookItemSelectionChange(void);
 	void onRemoveFromLookClicked(void);
 	void onEditWearableClicked(void);
@@ -113,10 +116,11 @@ class LLPanelOutfitEdit : public LLPanel
 	LLFilterEditor*		mSearchFilter;
 	LLSaveFolderState*	mSavedFolderState;
 	std::string			mSearchString;
-	LLButton*			mAddToLookBtn;
+	LLButton*			mAddToOutfitBtn;
 	LLButton*			mRemoveFromLookBtn;
 	LLButton*			mUpBtn;
 	LLButton*			mEditWearableBtn;
+	LLToggleableMenu*	mSaveMenu;
 	
 	LLLookFetchObserver*		mFetchLook;
 	LLInventoryLookObserver*	mLookObserver;
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 7d8b1dea0e2d1c1cb91b78e6ce0bb9d31627cafe..b78268da7b70bd22da3c1219bfc71c35c6828031 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -217,8 +217,13 @@ bool LLPanelOutfitsInventory::onSaveCommit(const LLSD& notification, const LLSD&
 		if( !outfit_name.empty() )
 		{
 			LLUUID outfit_folder = gAgentWearables.makeNewOutfitLinks(outfit_name);
-			LLSD key;
-			LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
+
+			LLSidepanelAppearance* panel_appearance =
+				dynamic_cast<LLSidepanelAppearance *>(LLSideTray::getInstance()->getPanel("sidepanel_appearance"));
+			if (panel_appearance)
+			{
+				panel_appearance->showOutfitsInventoryPanel();
+			}
 
 			if (mAppearanceTabs)
 			{
@@ -309,6 +314,12 @@ LLFolderView *LLPanelOutfitsInventory::getRootFolder()
 	return mActivePanel->getRootFolder();
 }
 
+//static
+LLPanelOutfitsInventory* LLPanelOutfitsInventory::findInstance()
+{
+	return dynamic_cast<LLPanelOutfitsInventory*>(LLSideTray::getInstance()->getPanel("panel_outfits_inventory"));
+}
+
 //////////////////////////////////////////////////////////////////////////////////
 // List Commands                                                                //
 
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index 41afc2f37260d4f356bd0de61e47f5b6ba3c14c9..5d0d27ee4fb1778d8f3326d88cdc6a242bbe3395 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -73,6 +73,8 @@ class LLPanelOutfitsInventory : public LLPanel
 
 	LLFolderView* getRootFolder();
 
+	static LLPanelOutfitsInventory* findInstance();
+
 protected:
 	void updateVerbs();
 	bool getIsCorrectType(const LLFolderViewEventListener *listenerp) const;
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 54455afa4f3a45aa78fa472500dbc88467540bc4..17784c31e3020c06adf704d9a3212904a865dc1a 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -252,6 +252,9 @@ BOOL LLPanelPlaces::postBuild()
 	mOverflowBtn = getChild<LLButton>("overflow_btn");
 	mOverflowBtn->setClickedCallback(boost::bind(&LLPanelPlaces::onOverflowButtonClicked, this));
 
+	mPlaceInfoBtn = getChild<LLButton>("profile_btn");
+	mPlaceInfoBtn->setClickedCallback(boost::bind(&LLPanelPlaces::onProfileButtonClicked, this));
+
 	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
 	registrar.add("Places.OverflowMenu.Action",  boost::bind(&LLPanelPlaces::onOverflowMenuItemClicked, this, _2));
 	LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
@@ -745,6 +748,14 @@ void LLPanelPlaces::onOverflowButtonClicked()
 	LLMenuGL::showPopup(this, menu, rect.mRight, rect.mTop);
 }
 
+void LLPanelPlaces::onProfileButtonClicked()
+{
+	if (!mActivePanel)
+		return;
+
+	mActivePanel->onShowProfile();
+}
+
 bool LLPanelPlaces::onOverflowMenuItemEnable(const LLSD& param)
 {
 	std::string value = param.asString();
@@ -1060,8 +1071,11 @@ void LLPanelPlaces::updateVerbs()
 	mSaveBtn->setVisible(isLandmarkEditModeOn);
 	mCancelBtn->setVisible(isLandmarkEditModeOn);
 	mCloseBtn->setVisible(is_create_landmark_visible && !isLandmarkEditModeOn);
+	mPlaceInfoBtn->setVisible(mPlaceInfoType != LANDMARK_INFO_TYPE && mPlaceInfoType != TELEPORT_HISTORY_INFO_TYPE
+			&& !is_create_landmark_visible && !isLandmarkEditModeOn);
 
 	mShowOnMapBtn->setEnabled(!is_create_landmark_visible && !isLandmarkEditModeOn && have_3d_pos);
+	mPlaceInfoBtn->setEnabled(!is_create_landmark_visible && !isLandmarkEditModeOn && have_3d_pos);
 
 	if (is_place_info_visible)
 	{
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
index 97cf43d222dd3b9b0dbce11edb83a4e655fd788e..7a77fc9300ffc36ab72e656cc6eaae7562d15c2f 100644
--- a/indra/newview/llpanelplaces.h
+++ b/indra/newview/llpanelplaces.h
@@ -98,6 +98,7 @@ class LLPanelPlaces : public LLPanel
 	bool onOverflowMenuItemEnable(const LLSD& param);
 	void onCreateLandmarkButtonClicked(const LLUUID& folder_id);
 	void onBackButtonClicked();
+	void onProfileButtonClicked();
 
 	void toggleMediaPanel();
 	void togglePickPanel(BOOL visible);
@@ -128,6 +129,7 @@ class LLPanelPlaces : public LLPanel
 	LLButton*					mCancelBtn;
 	LLButton*					mCloseBtn;
 	LLButton*					mOverflowBtn;
+	LLButton*					mPlaceInfoBtn;
 
 	LLPlacesInventoryObserver*	mInventoryObserver;
 	LLPlacesParcelObserver*		mParcelObserver;
diff --git a/indra/newview/llpanelplacestab.cpp b/indra/newview/llpanelplacestab.cpp
index 9806b8c64d55380873494b1f5863fc1e16c1bf4d..42cf3b03a311cc5d729107397b4bb0934ab943a3 100644
--- a/indra/newview/llpanelplacestab.cpp
+++ b/indra/newview/llpanelplacestab.cpp
@@ -56,6 +56,7 @@ void LLPanelPlacesTab::setPanelPlacesButtons(LLPanelPlaces* panel)
 {
 	mTeleportBtn = panel->getChild<LLButton>("teleport_btn");
 	mShowOnMapBtn = panel->getChild<LLButton>("map_btn");
+	mShowProfile = panel->getChild<LLButton>("profile_btn");
 }
 
 void LLPanelPlacesTab::onRegionResponse(const LLVector3d& landmark_global_pos,
diff --git a/indra/newview/llpanelplacestab.h b/indra/newview/llpanelplacestab.h
index ce77a422596e2c4fbc0ec47fa365088926829273..f4e93a765854d834de35bf44581c0e01ddd61de4 100644
--- a/indra/newview/llpanelplacestab.h
+++ b/indra/newview/llpanelplacestab.h
@@ -45,6 +45,7 @@ class LLPanelPlacesTab : public LLPanel
 	virtual void onSearchEdit(const std::string& string) = 0;
 	virtual void updateVerbs() = 0;		// Updates buttons at the bottom of Places panel
 	virtual void onShowOnMap() = 0;
+	virtual void onShowProfile() = 0;
 	virtual void onTeleport() = 0;
 
 	bool isTabVisible(); // Check if parent TabContainer is visible.
@@ -62,6 +63,7 @@ class LLPanelPlacesTab : public LLPanel
 protected:
 	LLButton*				mTeleportBtn;
 	LLButton*				mShowOnMapBtn;
+	LLButton*				mShowProfile;
 
 	// Search string for filtering landmarks and teleport history locations
 	static std::string		sFilterSubString;
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 0a34531eeecb8814286113ea27b9d8d4e20ed52f..c0b2244038268bf0708763bde91ab990ec32bb90 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -496,6 +496,20 @@ void LLTeleportHistoryPanel::onShowOnMap()
 	}
 }
 
+//virtual
+void LLTeleportHistoryPanel::onShowProfile()
+{
+	if (!mLastSelectedFlatlList)
+		return;
+
+	LLTeleportHistoryFlatItem* itemp = dynamic_cast<LLTeleportHistoryFlatItem *> (mLastSelectedFlatlList->getSelectedItem());
+
+	if(!itemp)
+		return;
+
+	LLTeleportHistoryFlatItem::showPlaceInfoPanel(itemp->getIndex());
+}
+
 // virtual
 void LLTeleportHistoryPanel::onTeleport()
 {
@@ -544,6 +558,7 @@ void LLTeleportHistoryPanel::updateVerbs()
 	{
 		mTeleportBtn->setEnabled(false);
 		mShowOnMapBtn->setEnabled(false);
+		mShowProfile->setEnabled(false);
 		return;
 	}
 
@@ -551,6 +566,7 @@ void LLTeleportHistoryPanel::updateVerbs()
 
 	mTeleportBtn->setEnabled(NULL != itemp);
 	mShowOnMapBtn->setEnabled(NULL != itemp);
+	mShowProfile->setEnabled(NULL != itemp);
 }
 
 void LLTeleportHistoryPanel::getNextTab(const LLDate& item_date, S32& tab_idx, LLDate& tab_date)
diff --git a/indra/newview/llpanelteleporthistory.h b/indra/newview/llpanelteleporthistory.h
index 5e2ccc0c934c5c3c64197845015a6d8547a7a3d0..a456ca506f008d40ab82a0e1cfd2f72d0b2475b3 100644
--- a/indra/newview/llpanelteleporthistory.h
+++ b/indra/newview/llpanelteleporthistory.h
@@ -73,6 +73,7 @@ class LLTeleportHistoryPanel : public LLPanelPlacesTab
 
 	/*virtual*/ void onSearchEdit(const std::string& string);
 	/*virtual*/ void onShowOnMap();
+	/*virtual*/ void onShowProfile();
 	/*virtual*/ void onTeleport();
 	///*virtual*/ void onCopySLURL();
 	/*virtual*/ void updateVerbs();
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index eb245453db62068d6cfcf9dded03b6e0121b57ea..dbb8e962bdf8df9d18a742209acaeb7c7ef1edde 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -632,7 +632,7 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD&
 	else if (item == "can_call")
 	{
 		bool not_agent = mUUIDs.front() != gAgentID;
-		bool can_call = not_agent && LLVoiceClient::voiceEnabled() && gVoiceClient->voiceWorking();
+		bool can_call = not_agent && LLVoiceClient::voiceEnabled() && LLVoiceClient::getInstance()->voiceWorking();
 		return can_call;
 	}
 
diff --git a/indra/newview/llpopupview.cpp b/indra/newview/llpopupview.cpp
index b010f4d72f927522eb268135d700c1ef88c6f5de..4523bf2ba4da32661d270ea9e5205d570851c304 100644
--- a/indra/newview/llpopupview.cpp
+++ b/indra/newview/llpopupview.cpp
@@ -104,14 +104,18 @@ BOOL LLPopupView::handleMouseEvent(boost::function<BOOL(LLView*, S32, S32)> func
 								   S32 x, S32 y,
 								   bool close_popups)
 {
-	for (popup_list_t::iterator popup_it = mPopups.begin();
-		popup_it != mPopups.end();)
+	BOOL handled = FALSE;
+
+	// make a copy of list of popups, in case list is modified during mouse event handling
+	popup_list_t popups(mPopups);
+	for (popup_list_t::iterator popup_it = popups.begin(), popup_end = popups.end();
+		popup_it != popup_end;
+		++popup_it)
 	{
 		LLView* popup = popup_it->get();
 		if (!popup 
 			|| !predicate(popup))
 		{
-			++popup_it;
 			continue;
 		}
 
@@ -121,23 +125,19 @@ BOOL LLPopupView::handleMouseEvent(boost::function<BOOL(LLView*, S32, S32)> func
 		{
 			if (func(popup, popup_x, popup_y))
 			{
-				return TRUE;
+				handled = TRUE;
+				break;
 			}
 		}
 
 		if (close_popups)
 		{
-			popup_list_t::iterator cur_popup_it = popup_it++;
-			mPopups.erase(cur_popup_it);
+			mPopups.remove(*popup_it);
 			popup->onTopLost();
 		}
-		else
-		{
-			++popup_it;
-		}
 	}
 
-	return FALSE;
+	return handled;
 }
 
 
diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp
index e9a80907b766bad2b8c656bb6e81f3418668422c..af440a36891800ec427227a44c140c0937cb7cff 100644
--- a/indra/newview/llscreenchannel.cpp
+++ b/indra/newview/llscreenchannel.cpp
@@ -47,7 +47,6 @@
 #include "llsyswellwindow.h"
 #include "llimfloater.h"
 #include "llscriptfloater.h"
-#include "llfontgl.h"
 
 #include <algorithm>
 
@@ -582,7 +581,6 @@ void LLScreenChannel::showToastsTop()
 void LLScreenChannel::createStartUpToast(S32 notif_num, F32 timer)
 {
 	LLRect toast_rect;
-	LLRect tbox_rect;
 	LLToast::Params p;
 	p.lifetime_secs = timer;
 	p.enable_hide_btn = false;
@@ -593,34 +591,26 @@ void LLScreenChannel::createStartUpToast(S32 notif_num, F32 timer)
 
 	mStartUpToastPanel->setOnFadeCallback(boost::bind(&LLScreenChannel::onStartUpToastHide, this));
 
+	LLPanel* wrapper_panel = mStartUpToastPanel->getChild<LLPanel>("wrapper_panel");
 	LLTextBox* text_box = mStartUpToastPanel->getChild<LLTextBox>("toast_text");
 
 	std::string	text = LLTrans::getString("StartUpNotifications");
 
-	tbox_rect   = text_box->getRect();
-	S32 tbox_width  = tbox_rect.getWidth();
-	S32 tbox_vpad   = text_box->getVPad();
-	S32 text_width  = text_box->getDefaultFont()->getWidth(text);
-	S32 text_height = text_box->getTextPixelHeight();
-
-	// EXT - 3703 (Startup toast message doesn't fit toast width)
-	// Calculating TextBox HEIGHT needed to include the whole string according to the given WIDTH of the TextBox.
-	S32 new_tbox_height = (text_width/tbox_width + 1) * text_height;
-	// Calculating TOP position of TextBox
-	S32 new_tbox_top = new_tbox_height + tbox_vpad + gSavedSettings.getS32("ToastGap");
-	// Calculating toast HEIGHT according to the new TextBox size
-	S32 toast_height = new_tbox_height + tbox_vpad * 2;
-
-	tbox_rect.setLeftTopAndSize(tbox_rect.mLeft, new_tbox_top, tbox_rect.getWidth(), new_tbox_height);
-	text_box->setRect(tbox_rect);
-
 	toast_rect = mStartUpToastPanel->getRect();
 	mStartUpToastPanel->reshape(getRect().getWidth(), toast_rect.getHeight(), true);
-	toast_rect.setLeftTopAndSize(0, toast_height + gSavedSettings.getS32("ToastGap"), getRect().getWidth(), toast_height);
-	mStartUpToastPanel->setRect(toast_rect);
 
 	text_box->setValue(text);
 	text_box->setVisible(TRUE);
+
+	S32 old_height = text_box->getRect().getHeight();
+	text_box->reshapeToFitText();
+	text_box->setOrigin(text_box->getRect().mLeft, (wrapper_panel->getRect().getHeight() - text_box->getRect().getHeight())/2);
+	S32 new_height = text_box->getRect().getHeight();
+	S32 height_delta = new_height - old_height;
+
+	toast_rect.setLeftTopAndSize(0, toast_rect.getHeight() + height_delta +gSavedSettings.getS32("ToastGap"), getRect().getWidth(), toast_rect.getHeight());
+	mStartUpToastPanel->setRect(toast_rect);
+
 	addChild(mStartUpToastPanel);
 	
 	mStartUpToastPanel->setVisible(TRUE);
diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp
index 7980fe19459a132566f508ed5a3a40e33db19dc0..a5518d87d446d9f9ef0c3ad6f44f19eea4a75099 100644
--- a/indra/newview/llscrollingpanelparam.cpp
+++ b/indra/newview/llscrollingpanelparam.cpp
@@ -42,17 +42,14 @@
 #include "llbutton.h"
 #include "llsliderctrl.h"
 #include "llagent.h"
+#include "llviewborder.h"
 #include "llvoavatarself.h"
 
 // Constants for LLPanelVisualParam
 const F32 LLScrollingPanelParam::PARAM_STEP_TIME_THRESHOLD = 0.25f;
 
-const S32 LLScrollingPanelParam::BTN_BORDER = 2;
 const S32 LLScrollingPanelParam::PARAM_HINT_WIDTH = 128;
 const S32 LLScrollingPanelParam::PARAM_HINT_HEIGHT = 128;
-const S32 LLScrollingPanelParam::PARAM_HINT_LABEL_HEIGHT = 16;
-const S32 LLScrollingPanelParam::PARAM_PANEL_WIDTH = 2 * (3* BTN_BORDER + PARAM_HINT_WIDTH +  LLPANEL_BORDER_WIDTH);
-const S32 LLScrollingPanelParam::PARAM_PANEL_HEIGHT = 2 * BTN_BORDER + PARAM_HINT_HEIGHT + PARAM_HINT_LABEL_HEIGHT + 4 * LLPANEL_BORDER_WIDTH; 
 
 // LLScrollingPanelParam
 //static
@@ -67,14 +64,17 @@ LLScrollingPanelParam::LLScrollingPanelParam( const LLPanel::Params& panel_param
 {
 	LLUICtrlFactory::getInstance()->buildPanel(this, "panel_scrolling_param.xml");
 
+	// *HACK To avoid hard coding texture position, lets use border's position for texture. 
+	LLViewBorder* left_border = getChild<LLViewBorder>("left_border");
+
 	static LLUICachedControl<S32> slider_ctrl_height ("UISliderctrlHeight", 0);
-	S32 pos_x = 2 * LLPANEL_BORDER_WIDTH;
-	S32 pos_y = 3 * LLPANEL_BORDER_WIDTH + slider_ctrl_height;
+	S32 pos_x = left_border->getRect().mLeft + left_border->getBorderWidth();
+	S32 pos_y = left_border->getRect().mBottom + left_border->getBorderWidth();
 	F32 min_weight = param->getMinWeight();
 	F32 max_weight = param->getMaxWeight();
 
 	mHintMin = new LLVisualParamHint( pos_x, pos_y, PARAM_HINT_WIDTH, PARAM_HINT_HEIGHT, mesh, (LLViewerVisualParam*) wearable->getVisualParam(param->getID()),  min_weight);
-	pos_x += PARAM_HINT_WIDTH + 3 * BTN_BORDER;
+	pos_x = getChild<LLViewBorder>("right_border")->getRect().mLeft + left_border->getBorderWidth();
 	mHintMax = new LLVisualParamHint( pos_x, pos_y, PARAM_HINT_WIDTH, PARAM_HINT_HEIGHT, mesh, (LLViewerVisualParam*) wearable->getVisualParam(param->getID()), max_weight );
 	
 	mHintMin->setAllowsUpdates( FALSE );
@@ -162,6 +162,10 @@ void LLScrollingPanelParam::draw()
 	childSetVisible("less", mHintMin->getVisible());
 	childSetVisible("more", mHintMax->getVisible());
 
+	// hide borders if texture has been loaded
+	childSetVisible("left_border", !mHintMin->getVisible());
+	childSetVisible("right_border", !mHintMax->getVisible());
+
 	// Draw all the children except for the labels
 	childSetVisible( "min param text", FALSE );
 	childSetVisible( "max param text", FALSE );
@@ -171,9 +175,7 @@ void LLScrollingPanelParam::draw()
 	gGL.pushUIMatrix();
 	{
 		const LLRect& r = mHintMin->getRect();
-		F32 left = (F32)(r.mLeft + BTN_BORDER);
-		F32 bot  = (F32)(r.mBottom + BTN_BORDER);
-		gGL.translateUI(left, bot, 0.f);
+		gGL.translateUI((F32)r.mLeft, (F32)r.mBottom, 0.f);
 		mHintMin->draw();
 	}
 	gGL.popUIMatrix();
@@ -181,9 +183,7 @@ void LLScrollingPanelParam::draw()
 	gGL.pushUIMatrix();
 	{
 		const LLRect& r = mHintMax->getRect();
-		F32 left = (F32)(r.mLeft + BTN_BORDER);
-		F32 bot  = (F32)(r.mBottom + BTN_BORDER);
-		gGL.translateUI(left, bot, 0.f);
+		gGL.translateUI((F32)r.mLeft, (F32)r.mBottom, 0.f);
 		mHintMax->draw();
 	}
 	gGL.popUIMatrix();
@@ -191,10 +191,10 @@ void LLScrollingPanelParam::draw()
 
 	// Draw labels on top of the buttons
 	childSetVisible( "min param text", TRUE );
-	drawChild(getChild<LLView>("min param text"), BTN_BORDER, BTN_BORDER);
+	drawChild(getChild<LLView>("min param text"));
 
 	childSetVisible( "max param text", TRUE );
-	drawChild(getChild<LLView>("max param text"), BTN_BORDER, BTN_BORDER);
+	drawChild(getChild<LLView>("max param text"));
 }
 
 // static
diff --git a/indra/newview/llscrollingpanelparam.h b/indra/newview/llscrollingpanelparam.h
index 8c5db64816dad6af6e8e9bff1a5b55324b566057..fe4ce071665c633e73c9def6e498c7935d584f42 100644
--- a/indra/newview/llscrollingpanelparam.h
+++ b/indra/newview/llscrollingpanelparam.h
@@ -75,13 +75,8 @@ class LLScrollingPanelParam : public LLScrollingPanel
 	// Constants for LLPanelVisualParam
 	const static F32 PARAM_STEP_TIME_THRESHOLD;
 	
-	const static S32 BTN_BORDER;
 	const static S32 PARAM_HINT_WIDTH;
 	const static S32 PARAM_HINT_HEIGHT;
-	const static S32 PARAM_HINT_LABEL_HEIGHT;
-	const static S32 PARAM_PANEL_WIDTH;
-	const static S32 PARAM_PANEL_HEIGHT; 
-
 
 public:
 	LLViewerVisualParam* mParam;
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index f98912b324b491cbd80ad8ca6ba0ab69ea7a2389..abef47d4be24187b3829e80ae8dd646ab90f21b0 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -137,7 +137,7 @@ BOOL LLSidepanelAppearance::postBuild()
 		LLButton* back_btn = mOutfitEdit->getChild<LLButton>("back_btn");
 		if (back_btn)
 		{
-			back_btn->setClickedCallback(boost::bind(&LLSidepanelAppearance::onBackButtonClicked, this));
+			back_btn->setClickedCallback(boost::bind(&LLSidepanelAppearance::showOutfitsInventoryPanel, this));
 		}
 
 	}
@@ -178,7 +178,7 @@ void LLSidepanelAppearance::onOpen(const LLSD& key)
 
 	if(key.size() == 0)
 		return;
-
+	
 	toggleOutfitEditPanel(TRUE);
 	updateVerbs();
 	
@@ -260,12 +260,6 @@ void LLSidepanelAppearance::onNewOutfitButtonClicked()
 	}
 }
 
-
-void LLSidepanelAppearance::onBackButtonClicked()
-{
-	toggleOutfitEditPanel(FALSE);
-}
-
 void LLSidepanelAppearance::onEditWearBackClicked()
 {
 	mEditWearable->saveChanges();
@@ -273,6 +267,30 @@ void LLSidepanelAppearance::onEditWearBackClicked()
 	toggleOutfitEditPanel(TRUE);
 }
 
+void LLSidepanelAppearance::showOutfitsInventoryPanel()
+{
+	mOutfitEdit->setVisible(FALSE);
+
+	mPanelOutfitsInventory->setVisible(TRUE);
+
+	mFilterEditor->setVisible(TRUE);
+	mEditBtn->setVisible(TRUE);
+	mNewOutfitBtn->setVisible(TRUE);
+	mCurrOutfitPanel->setVisible(TRUE);
+}
+
+void LLSidepanelAppearance::showOutfitEditPanel()
+{
+	mOutfitEdit->setVisible(TRUE);
+	
+	mPanelOutfitsInventory->setVisible(FALSE);
+
+	mFilterEditor->setVisible(FALSE);
+	mEditBtn->setVisible(FALSE);
+	mNewOutfitBtn->setVisible(FALSE);
+	mCurrOutfitPanel->setVisible(FALSE);
+}
+
 void LLSidepanelAppearance::toggleOutfitEditPanel(BOOL visible)
 {
 	if (!mOutfitEdit)
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index 1d78e92a84e755f2d2dc34aaf3f2cd8e5762e053..0a609797fb093ff5b96164e86396bc7c06141454 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -63,14 +63,18 @@ class LLSidepanelAppearance : public LLPanel
 	void updateVerbs();
 	void onNewOutfitButtonClicked();
 
+	void showOutfitsInventoryPanel();
+	void showOutfitEditPanel();
+
 private:
 	void onFilterEdit(const std::string& search_string);
 
 	void onOpenOutfitButtonClicked();
 	void onEditAppearanceButtonClicked();
 	void onEditButtonClicked();
-	void onBackButtonClicked();
 	void onEditWearBackClicked();
+
+	//@deprecated use showXXX() methods instead
 	void toggleOutfitEditPanel(BOOL visible);
 	void toggleWearableEditPanel(BOOL visible, LLWearable* wearable);
 
diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp
index 18e56a9c017b7ae5071d5427a3de155cc35010b2..fa543f137110b520a5167ce27f5315d0b1f07218 100644
--- a/indra/newview/llsidepanelinventory.cpp
+++ b/indra/newview/llsidepanelinventory.cpp
@@ -33,6 +33,7 @@
 #include "llsidepanelinventory.h"
 
 #include "llagent.h"
+#include "llavataractions.h"
 #include "llbutton.h"
 #include "llinventorybridge.h"
 #include "llinventorypanel.h"
@@ -151,6 +152,7 @@ void LLSidepanelInventory::onInfoButtonClicked()
 
 void LLSidepanelInventory::onShareButtonClicked()
 {
+	LLAvatarActions::shareWithAvatars();
 }
 
 void LLSidepanelInventory::performActionOnSelection(const std::string &action)
@@ -252,7 +254,9 @@ void LLSidepanelInventory::updateVerbs()
 	mPlayBtn->setEnabled(FALSE);
  	mTeleportBtn->setVisible(FALSE);
  	mTeleportBtn->setEnabled(FALSE);
-	
+
+	mShareBtn->setEnabled(canShare());
+
 	const LLInventoryItem *item = getSelectedItem();
 	if (!item)
 		return;
@@ -260,7 +264,6 @@ void LLSidepanelInventory::updateVerbs()
 	bool is_single_selection = getSelectedCount() == 1;
 
 	mInfoBtn->setEnabled(is_single_selection);
-	mShareBtn->setEnabled(is_single_selection);
 
 	switch(item->getInventoryType())
 	{
@@ -285,6 +288,25 @@ void LLSidepanelInventory::updateVerbs()
 	}
 }
 
+bool LLSidepanelInventory::canShare()
+{
+	LLPanelMainInventory* panel_main_inventory =
+		mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
+
+	LLFolderView* root_folder =
+		panel_main_inventory->getActivePanel()->getRootFolder();
+
+	LLFolderViewItem* current_item = root_folder->hasVisibleChildren()
+		? root_folder->getCurSelectedItem()
+		: NULL;
+
+	LLInvFVBridge* bridge = current_item
+		? dynamic_cast <LLInvFVBridge*> (current_item->getListener())
+		: NULL;
+
+	return bridge ? bridge->canShare() : false;
+}
+
 LLInventoryItem *LLSidepanelInventory::getSelectedItem()
 {
 	LLPanelMainInventory *panel_main_inventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h
index ee11fb6b5446e3ae0a09a5411a8971574d3c9489..95eab3571cb7d0e4fc3d9c5a5fed6992d119678f 100644
--- a/indra/newview/llsidepanelinventory.h
+++ b/indra/newview/llsidepanelinventory.h
@@ -60,6 +60,7 @@ class LLSidepanelInventory : public LLPanel
 	void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
 	// "wear", "teleport", etc.
 	void performActionOnSelection(const std::string &action);
+	bool canShare();
 
 	void showItemInfoPanel();
 	void showTaskInfoPanel();
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 23393df431c72a6f427b7e92e67601e920473efd..27b8ff06281f6d8cb5d4ea0928ad544c27568498 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -889,13 +889,12 @@ bool idle_startup()
 		}
 
 		//Default the path if one isn't set.
-		if (gSavedPerAccountSettings.getString("InstantMessageLogFolder").empty())
+		// *NOTE: unable to check variable differ from "InstantMessageLogPath" because it was
+		// provided in pre 2.0 viewer. See EXT-6661
+		if (gSavedPerAccountSettings.getString("InstantMessageLogPath").empty())
 		{
 			gDirUtilp->setChatLogsDir(gDirUtilp->getOSUserAppDir());
-			std::string chat_log_dir = gDirUtilp->getChatLogsDir();
-			std::string chat_log_top_folder=gDirUtilp->getBaseFileName(chat_log_dir);
-			gSavedPerAccountSettings.setString("InstantMessageLogPath",chat_log_dir);
-			gSavedPerAccountSettings.setString("InstantMessageLogFolder",chat_log_top_folder);
+			gSavedPerAccountSettings.setString("InstantMessageLogPath", gDirUtilp->getChatLogsDir());
 		}
 		else
 		{
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index e489a125130450600ac05aeaa9fbd9e111e704f9..4262264a1dc9bc22634fd43da7412804da493da6 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -98,6 +98,12 @@ LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
 	}
 }
 
+//virtual 
+S8 LLTexLayerSetBuffer::getType() const 
+{
+	return LLViewerDynamicTexture::LL_TEX_LAYER_SET_BUFFER ;
+}
+
 //virtual 
 void LLTexLayerSetBuffer::restoreGLTexture() 
 {	
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index 5be58f64a9d194898485fafea4f90bf12704f3ec..ae280dd0633d6f4348c1f58ada7f82c19a4733c8 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -325,6 +325,7 @@ class LLTexLayerSetBuffer : public LLViewerDynamicTexture
 	LLTexLayerSetBuffer(LLTexLayerSet* const owner, S32 width, S32 height);
 	virtual ~LLTexLayerSetBuffer();
 
+	/*virtual*/ S8          getType() const ;
 	virtual void			preRender(BOOL clear_depth);
 	virtual void			postRender(BOOL success);
 	virtual BOOL			render();
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index 60657d3fa7ee1eed2716da2882db8841594dcc52..911ed6ade7585f9fbabb868bb4d318bf935f2acb 100644
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
@@ -285,6 +285,12 @@ void LLToast::setVisible(BOOL show)
 		}
 		LLModalDialog::setFrontmost(FALSE);
 	}
+	else
+	{
+		//hide "hide" button in case toast was hidden without mouse_leave
+		if(mHideBtn)
+			mHideBtn->setVisible(show);
+	}
 	LLFloater::setVisible(show);
 	if(mPanel)
 	{
diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h
index 20198a9398461a69ae41e2a68dedcb60cbb018f4..bd07ff9fb14b9ebe4dd232fb3b92c4fbc5a44a18 100644
--- a/indra/newview/lltoast.h
+++ b/indra/newview/lltoast.h
@@ -63,6 +63,8 @@ class LLToastLifeTimer: public LLEventTimer
 	void start() { mEventTimer.start(); }
 	void restart() {mEventTimer.reset(); }
 	BOOL getStarted() { return mEventTimer.getStarted(); }
+
+	LLTimer&  getEventTimer() { return mEventTimer;}
 private :
 	LLToast* mToast;
 };
@@ -132,6 +134,8 @@ class LLToast : public LLModalDialog
 	//
 	void stopTimer() { mTimer->stop(); }
 	//
+	LLToastLifeTimer* getTimer() { return mTimer.get();}
+	//
 	virtual void draw();
 	//
 	virtual void setVisible(BOOL show);
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/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index 969049ee657c3403e72afa2d66109a02c9733669..22176c037f4c709b8094ef274dcca02928c6a25d 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -108,6 +108,12 @@ LLVisualParamHint::~LLVisualParamHint()
 	LLVisualParamHint::sInstances.erase( this );
 }
 
+//virtual
+S8 LLVisualParamHint::getType() const
+{
+	return LLViewerDynamicTexture::LL_VISUAL_PARAM_HINT ;
+}
+
 //-----------------------------------------------------------------------------
 // static
 // requestHintUpdates()
@@ -287,6 +293,12 @@ LLVisualParamReset::LLVisualParamReset() : LLViewerDynamicTexture(1, 1, 1, ORDER
 {	
 }
 
+//virtual
+S8 LLVisualParamReset::getType() const
+{
+	return LLViewerDynamicTexture::LL_VISUAL_PARAM_RESET ;
+}
+
 //-----------------------------------------------------------------------------
 // render()
 //-----------------------------------------------------------------------------
diff --git a/indra/newview/lltoolmorph.h b/indra/newview/lltoolmorph.h
index b7df718ba2a57477e63ee865d38abb7cd87f4c2a..c332c296bd487f9b398c2ba208beda16265fd7e0 100644
--- a/indra/newview/lltoolmorph.h
+++ b/indra/newview/lltoolmorph.h
@@ -64,6 +64,8 @@ class LLVisualParamHint : public LLViewerDynamicTexture
 		LLViewerVisualParam *param,
 		F32 param_weight);	
 
+	/*virtual*/ S8 getType() const ;
+
 	BOOL					needsRender();
 	void					preRender(BOOL clear_depth);
 	BOOL					render();
@@ -107,6 +109,7 @@ class LLVisualParamReset : public LLViewerDynamicTexture
 public:
 	LLVisualParamReset();
 	/*virtual */ BOOL render();
+	/*virtual*/ S8 getType() const ;
 
 	static BOOL sDirty;
 };
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 84c463495bddf31d557a36e97ca627502099d00f..a9bbee784da84a473d0c6f0f54d0f935822f03d3 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -181,10 +181,10 @@ BOOL LLToolPie::pickLeftMouseDownCallback()
 		parent = object->getRootEdit();
 	}
 
-
-	BOOL touchable = (object && object->flagHandleTouch()) 
-					 || (parent && parent->flagHandleTouch());
-
+	if (handleMediaClick(mPick))
+	{
+		return TRUE;
+	}
 
 	// If it's a left-click, and we have a special action, do it.
 	if (useClickAction(mask, object, parent))
@@ -286,14 +286,12 @@ BOOL LLToolPie::pickLeftMouseDownCallback()
 		}
 	}
 
-	if (handleMediaClick(mPick))
-	{
-		return TRUE;
-	}
-
 	// put focus back "in world"
 	gFocusMgr.setKeyboardFocus(NULL);
 
+	BOOL touchable = (object && object->flagHandleTouch()) 
+					 || (parent && parent->flagHandleTouch());
+
 	// Switch to grab tool if physical or triggerable
 	if (object && 
 		!object->isAvatar() && 
@@ -513,21 +511,22 @@ BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask)
 	}
 
 	LLViewerObject* click_action_object = click_action_pick.getObject();
-	if (click_action_object && useClickAction(mask, click_action_object, click_action_object->getRootEdit()))
+	if (handleMediaHover(mHoverPick))
 	{
+		// *NOTE: If you think the hover glow conflicts with the media outline, you
+		// could disable it here.
 		show_highlight = true;
-		ECursorType cursor = cursor_from_object(click_action_object);
-		gViewerWindow->setCursor(cursor);
+		// cursor set by media object
 		lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolPie (inactive)" << llendl;
 	}
-	else if (handleMediaHover(mHoverPick))
+	else if (click_action_object && useClickAction(mask, click_action_object, click_action_object->getRootEdit()))
 	{
-		// *NOTE: If you think the hover glow conflicts with the media outline, you
-		// could disable it here.
 		show_highlight = true;
-		// cursor set by media object
+		ECursorType cursor = cursor_from_object(click_action_object);
+		gViewerWindow->setCursor(cursor);
 		lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolPie (inactive)" << llendl;
 	}
+	
 	else if ((object && !object->isAvatar() && object->usePhysics()) 
 			 || (parent && !parent->isAvatar() && parent->usePhysics()))
 	{
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 6f037177fabccf8f5c8aa2249540237b2b89c4e3..874995a09eddc16f094ef620ed8c6b8c130cb4d5 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -413,7 +413,6 @@ bool handleHighResSnapshotChanged(const LLSD& newvalue)
 
 bool handleVoiceClientPrefsChanged(const LLSD& newvalue)
 {
-	if(LLVoiceClient::getInstance())
 	LLVoiceClient::getInstance()->updateSettings();
 	return true;
 }
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 7981de0c2088e293a652407bbcf83d596d0aea6d..9542bebde56f9b2e42df938bd86b123718878879 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -71,7 +71,6 @@
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
 #include "llpanelgrouplandmoney.h"
-#include "llpanelplaces.h"
 #include "llrecentpeople.h"
 #include "llscriptfloater.h"
 #include "llselectmgr.h"
@@ -692,6 +691,52 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
 
 	return false;
 }
+
+static void highlight_inventory_items_in_panel(const std::vector<LLUUID>& items, LLInventoryPanel *inventory_panel)
+{
+	if (NULL == inventory_panel) return;
+
+	for (std::vector<LLUUID>::const_iterator item_iter = items.begin();
+		item_iter != items.end();
+		++item_iter)
+	{
+		const LLUUID& item_id = (*item_iter);
+		if(!highlight_offered_item(item_id))
+		{
+			continue;
+		}
+
+		LLInventoryItem* item = gInventory.getItem(item_id);
+		llassert(item);
+		if (!item) {
+			continue;
+		}
+
+		LL_DEBUGS("Inventory_Move") << "Highlighting inventory item: " << item->getName() << ", " << item_id  << LL_ENDL;
+		LLFolderView* fv = inventory_panel->getRootFolder();
+		if (fv)
+		{
+			LLFolderViewItem* fv_item = fv->getItemByID(item_id);
+			if (fv_item)
+			{
+				LLFolderViewItem* fv_folder = fv_item->getParentFolder();
+				if (fv_folder)
+				{
+					// Parent folders can be different in case of 2 consecutive drag and drop
+					// operations when the second one is started before the first one completes.
+					LL_DEBUGS("Inventory_Move") << "Open folder: " << fv_folder->getName() << LL_ENDL;
+					fv_folder->setOpen(TRUE);
+					if (fv_folder->isSelected())
+					{
+						fv->changeSelection(fv_folder, FALSE);
+					}
+				}
+				fv->changeSelection(fv_item, TRUE);
+			}
+		}
+	}
+}
+
 static LLNotificationFunctorRegistration jgr_1("JoinGroup", join_group_response);
 static LLNotificationFunctorRegistration jgr_2("JoinedTooManyGroupsMember", join_group_response);
 static LLNotificationFunctorRegistration jgr_3("JoinGroupCanAfford", join_group_response);
@@ -717,6 +762,108 @@ class LLOpenAgentOffer : public LLInventoryFetchItemsObserver
 	std::string mFromName;
 };
 
+/**
+ * Class to observe adding of new items moved from the world to user's inventory to select them in inventory.
+ *
+ * We can't create it each time items are moved because "drop" event is sent separately for each
+ * element even while multi-dragging. We have to have the only instance of the observer. See EXT-4347.
+ */
+class LLViewerInventoryMoveFromWorldObserver : public LLInventoryMoveFromWorldObserver
+{
+public:
+	LLViewerInventoryMoveFromWorldObserver()
+		: LLInventoryMoveFromWorldObserver()
+		, mActivePanel(NULL)
+	{
+
+	}
+
+	void setMoveIntoFolderID(const LLUUID& into_folder_uuid) {mMoveIntoFolderID = into_folder_uuid; }
+
+private:
+	/*virtual */void onAssetAdded(const LLUUID& asset_id)
+	{
+		// Store active Inventory panel.
+		mActivePanel = LLInventoryPanel::getActiveInventoryPanel();
+
+		// Store selected items (without destination folder)
+		mSelectedItems.clear();
+		mActivePanel->getRootFolder()->getSelectionList(mSelectedItems);
+		mSelectedItems.erase(mMoveIntoFolderID);
+	}
+
+	/**
+	 * Selects added inventory items watched by their Asset UUIDs if selection was not changed since
+	 * all items were started to watch (dropped into a folder).
+	 */
+	void done()
+	{
+		// if selection is not changed since watch started lets hightlight new items.
+		if (mActivePanel && !isSelectionChanged())
+		{
+			LL_DEBUGS("Inventory_Move") << "Selecting new items..." << LL_ENDL;
+			mActivePanel->clearSelection();
+			highlight_inventory_items_in_panel(mAddedItems, mActivePanel);
+		}
+	}
+
+	/**
+	 * Returns true if selected inventory items were changed since moved inventory items were started to watch.
+	 */
+	bool isSelectionChanged()
+	{
+		const LLInventoryPanel * const current_active_panel = LLInventoryPanel::getActiveInventoryPanel();
+
+		if (NULL == mActivePanel || current_active_panel != mActivePanel)
+		{
+			return true;
+		}
+
+		// get selected items (without destination folder)
+		selected_items_t selected_items;
+		mActivePanel->getRootFolder()->getSelectionList(selected_items);
+		selected_items.erase(mMoveIntoFolderID);
+
+		// compare stored & current sets of selected items
+		selected_items_t different_items;
+		std::set_symmetric_difference(mSelectedItems.begin(), mSelectedItems.end(),
+			selected_items.begin(), selected_items.end(), std::inserter(different_items, different_items.begin()));
+
+		LL_DEBUGS("Inventory_Move") << "Selected firstly: " << mSelectedItems.size()
+			<< ", now: " << selected_items.size() << ", difference: " << different_items.size() << LL_ENDL;
+
+		return different_items.size() > 0;
+	}
+
+	LLInventoryPanel *mActivePanel;
+	typedef std::set<LLUUID> selected_items_t;
+	selected_items_t mSelectedItems;
+
+	/**
+	 * UUID of FolderViewFolder into which watched items are moved.
+	 *
+	 * Destination FolderViewFolder becomes selected while mouse hovering (when dragged items are dropped).
+	 * 
+	 * If mouse is moved out it set unselected and number of selected items is changed 
+	 * even if selected items in Inventory stay the same.
+	 * So, it is used to update stored selection list.
+	 *
+	 * @see onAssetAdded()
+	 * @see isSelectionChanged()
+	 */
+	LLUUID mMoveIntoFolderID;
+};
+
+LLViewerInventoryMoveFromWorldObserver* gInventoryMoveObserver = NULL;
+
+void set_dad_inventory_item(LLInventoryItem* inv_item, const LLUUID& into_folder_uuid)
+{
+	start_new_inventory_observer();
+
+	gInventoryMoveObserver->setMoveIntoFolderID(into_folder_uuid);
+	gInventoryMoveObserver->watchAsset(inv_item->getAssetUUID());
+}
+
 //unlike the FetchObserver for AgentOffer, we only make one 
 //instance of the AddedObserver for TaskOffers
 //and it never dies.  We do this because we don't know the UUID of 
@@ -727,6 +874,33 @@ class LLOpenTaskOffer : public LLInventoryAddedObserver
 protected:
 	/*virtual*/ void done()
 	{
+		for (uuid_vec_t::iterator it = mAdded.begin(); it != mAdded.end();)
+		{
+			const LLUUID& item_uuid = *it;
+			bool was_moved = false;
+			LLInventoryObject* added_object = gInventory.getObject(item_uuid);
+			if (added_object)
+			{
+				// cast to item to get Asset UUID
+				LLInventoryItem* added_item = dynamic_cast<LLInventoryItem*>(added_object);
+				if (added_item)
+				{
+					const LLUUID& asset_uuid = added_item->getAssetUUID();
+					if (gInventoryMoveObserver->isAssetWatched(asset_uuid))
+					{
+						LL_DEBUGS("Inventory_Move") << "Found asset UUID: " << asset_uuid << LL_ENDL;
+						was_moved = true;
+					}
+				}
+			}
+
+			if (was_moved)
+			{
+				it = mAdded.erase(it);
+			}
+			else ++it;
+		}
+
 		open_inventory_offer(mAdded, "");
 		mAdded.clear();
 	}
@@ -755,6 +929,13 @@ void start_new_inventory_observer()
 		gNewInventoryObserver = new LLOpenTaskOffer;
 		gInventory.addObserver(gNewInventoryObserver);
 	}
+
+	if (!gInventoryMoveObserver) //inventory move from the world observer 
+	{
+		// Observer is deleted by gInventory
+		gInventoryMoveObserver = new LLViewerInventoryMoveFromWorldObserver;
+		gInventory.addObserver(gInventoryMoveObserver);
+	}
 }
 
 class LLDiscardAgentOffer : public LLInventoryFetchItemsObserver
@@ -920,9 +1101,12 @@ void open_inventory_offer(const uuid_vec_t& items, const std::string& from_name)
 					}
 					else if("group_offer" == from_name)
 					{
-						// do not open inventory when we open group notice attachment because 
-						// we already opened landmark info panel
 						// "group_offer" is passed by LLOpenTaskGroupOffer
+						// Notification about added landmark will be generated under the "from_name.empty()" called from LLOpenTaskOffer::done().
+						LLSD args;
+						args["type"] = "landmark";
+						args["id"] = item_id;
+						LLSideTray::getInstance()->showPanel("panel_places", args);
 
 						continue;
 					}
@@ -933,28 +1117,6 @@ void open_inventory_offer(const uuid_vec_t& items, const std::string& from_name)
 						args["LANDMARK_NAME"] = item->getName();
 						args["FOLDER_NAME"] = std::string(parent_folder ? parent_folder->getName() : "unknown");
 						LLNotificationsUtil::add("LandmarkCreated", args);
-						// Created landmark is passed to Places panel to allow its editing. In fact panel should be already displayed.
-						// If the panel is closed we don't reopen it until created landmark is loaded.
-						//TODO*:: dserduk(7/12/09) remove LLPanelPlaces dependency from here
-						LLPanelPlaces *places_panel = dynamic_cast<LLPanelPlaces*>(LLSideTray::getInstance()->getPanel("panel_places"));
-						if (places_panel)
-						{
-							// Landmark creation handling is moved to LLPanelPlaces::showAddedLandmarkInfo()
-							// TODO* LLPanelPlaces dependency is going to be removed. See EXT-4347.
-							//if("create_landmark" == places_panel->getPlaceInfoType() && !places_panel->getItem())
-							//{
-							//	places_panel->setItem(item);
-							//}
-							//else
-							// we are opening a group notice attachment
-							if("create_landmark" != places_panel->getPlaceInfoType())
-							{
-								LLSD args;
-								args["type"] = "landmark";
-								args["id"] = item_id;
-								LLSideTray::getInstance()->showPanel("panel_places", args);
-							}
-						}
 					}
 				}
 				break;
@@ -2224,10 +2386,13 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
 				chat.mFromID = from_id ^ gAgent.getSessionID();
 			}
 
+			chat.mSourceType = CHAT_SOURCE_OBJECT;
+
 			if(SYSTEM_FROM == name)
 			{
 				// System's UUID is NULL (fixes EXT-4766)
 				chat.mFromID = LLUUID::null;
+				chat.mSourceType = CHAT_SOURCE_SYSTEM;
 			}
 
 			LLSD query_string;
@@ -2244,7 +2409,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
 
 			chat.mURL = link.str();
 			chat.mText = message;
-			chat.mSourceType = CHAT_SOURCE_OBJECT;
 
 			// Note: lie to Nearby Chat, pretending that this is NOT an IM, because
 			// IMs from obejcts don't open IM sessions.
@@ -4548,11 +4712,12 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
 				if(boost::regex_match(desc, matches, expr))
 				{
 					// Name of full localizable notification string
-					// there are three types of this string- with name of receiver and reason of payment,
-					// without name and without reason (but not simultaneously)
+					// there are four types of this string- with name of receiver and reason of payment,
+					// without name and without reason (both may also be absent simultaneously).
 					// example of string without name - You paid L$100 to create a group.
 					// example of string without reason - You paid Smdby Linden L$100.
 					// example of string with reason and name - You paid Smbdy Linden L$100 for a land access pass.
+					// example of string with no info - You paid L$50.
 					std::string line = "you_paid_ldollars_no_name";
 
 					// arguments of string which will be in notification
@@ -4573,7 +4738,7 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
 					std::string reason = std::string(matches[3]);
 					if (reason.empty())
 					{
-						line = "you_paid_ldollars_no_reason";
+						line = name.empty() ? "you_paid_ldollars_no_info" : "you_paid_ldollars_no_reason";
 					}
 					else
 					{
@@ -4617,6 +4782,10 @@ bool handle_special_notification_callback(const LLSD& notification, const LLSD&
 		gSavedSettings.setU32("PreferredMaturity", preferredMaturity);
 		gAgent.sendMaturityPreferenceToServer(preferredMaturity);
 
+		// notify user that the maturity preference has been changed
+		LLSD args;
+		args["RATING"] = LLViewerRegion::accessToString(preferredMaturity);
+		LLNotificationsUtil::add("PreferredMaturityChanged", args);
 	}
 	
 	return false;
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index 4015cca77b664cb059b796ead7ad7036ff293f3c..7c021dc05f246d834bdc6287695ab70eb0efa8da 100644
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
@@ -208,6 +208,8 @@ void open_inventory_offer(const uuid_vec_t& items, const std::string& from_name)
 // Returns false if item is not found.
 bool highlight_offered_item(const LLUUID& item_id);
 
+void set_dad_inventory_item(LLInventoryItem* inv_item, const LLUUID& into_folder_uuid);
+
 struct LLOfferInfo
 {
         LLOfferInfo()
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 1f6bbcbae86144f4f245a51dba7f21d28cf8b8f9..a591cc1e143ababb2a23e3afe691887bde92d3a7 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -2185,7 +2185,8 @@ bool LLViewerParcelMgr::canAgentBuyParcel(LLParcel* parcel, bool forGroup) const
 		return true;	// change this if want to make it gods only
 	}
 	
-	LLViewerRegion* regionp = LLViewerParcelMgr::getInstance()->getSelectionRegion();
+	LLVector3 parcel_coord = parcel->getCenterpoint();
+	LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromPosAgent(parcel_coord);
 	if (regionp)
 	{
 		U8 sim_access = regionp->getSimAccess();
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index af0dcd8e355ccfc97a7ca2a2c4ef899d91efc881..a5adb11c537fac59c94fd43766807c0a9d3768af 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1426,15 +1426,15 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
 //virtual
 void LLViewerFetchedTexture::setKnownDrawSize(S32 width, S32 height)
 {
-	if(mKnownDrawWidth != width || mKnownDrawHeight != height)
+	if(mKnownDrawWidth < width || mKnownDrawHeight < height)
 	{
-		mKnownDrawWidth = width;
-		mKnownDrawHeight = height;
+		mKnownDrawWidth = llmax(mKnownDrawWidth, width) ;
+		mKnownDrawHeight = llmax(mKnownDrawHeight, height) ;
 
 		mKnownDrawSizeChanged = TRUE ;
 		mFullyLoaded = FALSE ;
 	}
-	addTextureStats((F32)(width * height));
+	addTextureStats((F32)(mKnownDrawWidth * mKnownDrawHeight));
 }
 
 //virtual
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 81033485eed267398f6ec25c6f0cb09c320fe3fd..a96a6bf1b3e8895416c49938b3b2927ddd5d02af 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -857,7 +857,11 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
 					if (obj && !obj->getRegion()->getCapability("ObjectMedia").empty())
 					{
 						LLTextureEntry *te = obj->getTE(object_face);
-						if (te)
+
+						// can modify URL if we can modify the object or we have navigate permissions
+						bool allow_modify_url = obj->permModify() || obj->hasMediaPermission( te->getMediaData(), LLVOVolume::MEDIA_PERM_INTERACT );
+
+						if (te && allow_modify_url )
 						{
 							if (drop)
 							{
@@ -888,29 +892,24 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
 									// URL passes the whitelist
 									if (te->getMediaData()->checkCandidateUrl( url ) )
 									{
-										// we are allowed to modify the object or we have navigate permissions
-										// NOTE: Design states you you can change the URL if you have media 
-										//       navigate permissions even if you do not have prim modify rights
-										if ( obj->permModify() || obj->hasMediaPermission( te->getMediaData(), LLVOVolume::MEDIA_PERM_INTERACT ) )
+										// just navigate to the URL
+										if (obj->getMediaImpl(object_face))
 										{
-											// just navigate to the URL
-											if (obj->getMediaImpl(object_face))
-											{
-												obj->getMediaImpl(object_face)->navigateTo(url);
-											}
-											else 
-											{
-												// This is very strange.  Navigation should
-												// happen via the Impl, but we don't have one.
-												// This sends it to the server, which /should/
-												// trigger us getting it.  Hopefully.
-												LLSD media_data;
-												media_data[LLMediaEntry::CURRENT_URL_KEY] = url;
-												obj->syncMediaData(object_face, media_data, true, true);
-												obj->sendMediaDataUpdate();
-											}
-											result = LLWindowCallbacks::DND_LINK;
+											obj->getMediaImpl(object_face)->navigateTo(url);
 										}
+										else 
+										{
+											// This is very strange.  Navigation should
+											// happen via the Impl, but we don't have one.
+											// This sends it to the server, which /should/
+											// trigger us getting it.  Hopefully.
+											LLSD media_data;
+											media_data[LLMediaEntry::CURRENT_URL_KEY] = url;
+											obj->syncMediaData(object_face, media_data, true, true);
+											obj->sendMediaDataUpdate();
+										}
+										result = LLWindowCallbacks::DND_LINK;
+										
 									}
 								}
 								LLSelectMgr::getInstance()->unhighlightObjectOnly(mDragHoveredObject);
@@ -930,6 +929,7 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
 										LLSelectMgr::getInstance()->highlightObjectOnly(mDragHoveredObject);
 									}
 									result = (! te->hasMedia()) ? LLWindowCallbacks::DND_COPY : LLWindowCallbacks::DND_LINK;
+
 								}
 							}
 						}
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index fac7fa6a18564923ce11f2f4907f88ffed1e38a2..7bb1006e93504c726a1d8415d2a52303ca4e8383 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -139,13 +139,10 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const std::string& sess
 
 LLVoiceChannel::~LLVoiceChannel()
 {
-	// Don't use LLVoiceClient::getInstance() here -- this can get called during atexit() time and that singleton MAY have already been destroyed.
-	// Using call of instanceExists() instead of gVoiceClient in check to avoid crash in LLVoiceClient::removeObserver() 
-	// when quitting viewer by closing console window before login (though in case of such quit crash will occur 
-	// later in other destructors anyway). EXT-5524
+	// Must check instance exists here, the singleton MAY have already been destroyed.
 	if(LLVoiceClient::instanceExists())
 	{
-		gVoiceClient->removeObserver(this);
+		LLVoiceClient::instance().removeObserver(this);
 	}
 	
 	sVoiceChannelMap.erase(mSessionID);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 4ca251af3e22bfc5cdf7737f63df30c23f311780..36daca174b75c1b7a631170ee0a954c87c162c43 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -2958,8 +2958,12 @@ void LLPipeline::renderHighlights()
 	}
 }
 
+//debug use
+U32 LLPipeline::sCurRenderPoolType = 0 ;
+
 void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
 {
+	llpushcallstacks ;
 	LLMemType mt(LLMemType::MTYPE_PIPELINE_RENDER_GEOM);
 	LLFastTimer t(FTM_RENDER_GEOMETRY);
 
@@ -3067,6 +3071,9 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
 			
 			cur_type = poolp->getType();
 
+			//debug use
+			sCurRenderPoolType = cur_type ;
+
 			if (occlude && cur_type >= LLDrawPool::POOL_GRASS)
 			{
 				occlude = FALSE;
@@ -7096,6 +7103,7 @@ inline float sgn(float a)
 
 void LLPipeline::generateWaterReflection(LLCamera& camera_in)
 {
+	llpushcallstacks ;
 	if (LLPipeline::sWaterReflections && assertInitialized() && LLDrawPoolWater::sNeedsReflectionUpdate)
 	{
 		BOOL skip_avatar_update = FALSE;
@@ -7831,7 +7839,7 @@ void LLPipeline::renderHighlight(const LLViewerObject* obj, F32 fade)
 void LLPipeline::generateHighlight(LLCamera& camera)
 {
 	//render highlighted object as white into offscreen render target
-	
+	llpushcallstacks ;
 	if (mHighlightObject.notNull())
 	{
 		mHighlightSet.insert(HighlightItem(mHighlightObject));
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 6aecc23aac7ad9cfc5902c14e6a9693f5eed3e12..60e0b0ae8c07bf53960c18dffae8faf72eba0096 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -686,6 +686,9 @@ class LLPipeline
 public:
 	static BOOL				sRenderBeacons;
 	static BOOL				sRenderHighlight;
+
+	//debug use
+	static U32              sCurRenderPoolType ;
 };
 
 void render_bbox(const LLVector3 &min, const LLVector3 &max);
diff --git a/indra/newview/skins/default/textures/arrow_down.tga b/indra/newview/skins/default/textures/arrow_down.tga
new file mode 100644
index 0000000000000000000000000000000000000000..81dc9d3b6c28e4d476dfdb0bdc60e12b6a3f98e5
Binary files /dev/null and b/indra/newview/skins/default/textures/arrow_down.tga differ
diff --git a/indra/newview/skins/default/xui/da/panel_login.xml b/indra/newview/skins/default/xui/da/panel_login.xml
index 9276ff3a0968d261f3972916df78bdfc4e4d47e8..1e6017490903c404511db36f68ad3535326e0529 100644
--- a/indra/newview/skins/default/xui/da/panel_login.xml
+++ b/indra/newview/skins/default/xui/da/panel_login.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel name="panel_login">
+	<panel.string name="create_account_url">
+		http://join.secondlife.com/
+	</panel.string>
 	<panel.string name="real_url">
 		http://secondlife.com/app/login/
 	</panel.string>
@@ -12,20 +15,31 @@
 				Fornavn:
 			</text>
 			<line_editor label="Fornavn" name="first_name_edit" tool_tip="[SECOND_LIFE] First Name"/>
+			<text name="last_name_text">
+				Efternavn:
+			</text>
 			<line_editor label="Efternavn" name="last_name_edit" tool_tip="[SECOND_LIFE] Last Name"/>
+			<text name="password_text">
+				Password:
+			</text>
 			<check_box label="Husk password" name="remember_check"/>
+			<button label="Log på" name="connect_btn"/>
 			<text name="start_location_text">
 				Start ved:
 			</text>
 			<combo_box name="start_location_combo">
+				<combo_box.item label="Min sidste lokation" name="MyLastLocation"/>
 				<combo_box.item label="Hjem" name="MyHome"/>
+				<combo_box.item label="&lt;Indtast regionnavn&gt;" name="Typeregionname"/>
 			</combo_box>
-			<button label="Log på" name="connect_btn"/>
 		</layout_panel>
 		<layout_panel name="links">
 			<text name="create_new_account_text">
 				Opret bruger
 			</text>
+			<text name="forgot_password_text">
+				Glemt navn eller password?
+			</text>
 			<text name="login_help">
 				Hjælp til login
 			</text>
diff --git a/indra/newview/skins/default/xui/en/floater_animation_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_preview.xml
index 9dff4abe2cb290732f36c99a1b880858721172cf..cb6b2f6ebcd73fb546cdc275f1784d2cb4578f33 100644
--- a/indra/newview/skins/default/xui/en/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_animation_preview.xml
@@ -333,66 +333,86 @@ Maximum animation length is [MAX_LENGTH] seconds.
      left_pad="20"
      name="emote_combo"
      tool_tip="Controls what face does during animation">
-        <combo_box.item
-         label="(None)"
-         name="[None]" />
-        <combo_box.item
-         label="Aaaaah"
-         name="Aaaaah" />
-        <combo_box.item
-         label="Afraid"
-         name="Afraid" />
-        <combo_box.item
-         label="Angry"
-         name="Angry" />
-        <combo_box.item
-         label="Big Smile"
-         name="BigSmile" />
-        <combo_box.item
-         label="Bored"
-         name="Bored" />
-        <combo_box.item
-         label="Cry"
-         name="Cry" />
-        <combo_box.item
-         label="Disdain"
-         name="Disdain" />
-        <combo_box.item
-         label="Embarrassed"
-         name="Embarrassed" />
-        <combo_box.item
-         label="Frown"
-         name="Frown" />
-        <combo_box.item
-         label="Kiss"
-         name="Kiss" />
-        <combo_box.item
-         label="Laugh"
-         name="Laugh" />
-        <combo_box.item
-         label="Plllppt"
-         name="Plllppt" />
-        <combo_box.item
-         label="Repulsed"
-         name="Repulsed" />
-        <combo_box.item
-         label="Sad"
-         name="Sad" />
-        <combo_box.item
-         label="Shrug"
-         name="Shrug" />
-        <combo_box.item
-         label="Smile"
-         name="Smile" />
-        <combo_box.item
-         label="Surprise"
-         name="Surprise" />
-        <combo_box.item
-         label="Wink"
-         name="Wink" />
-        <combo_box.item
-         label="Worry"
-         name="Worry" />
+      <item
+       label="(None)"
+       value=""
+       name="[None]" />
+      <item
+       label="Aaaaah"
+       value="Aaaaah"
+       name="Aaaaah" />
+      <item
+       label="Afraid"
+       value="Afraid"
+       name="Afraid" />
+      <item
+       label="Angry"
+       value="Angry"
+       name="Angry" />
+      <item
+       label="Big Smile"
+       value="Big Smile"
+       name="BigSmile" />
+      <item
+       label="Bored"
+       value="Bored"
+       name="Bored" />
+      <item
+       label="Cry"
+       value="Cry"
+       name="Cry" />
+      <item
+       label="Disdain"
+       value="Disdain"
+       name="Disdain" />
+      <item
+       label="Embarrassed"
+       value="Embarrassed"
+       name="Embarrassed" />
+      <item
+       label="Frown"
+       value="Frown"
+       name="Frown" />
+      <item
+       label="Kiss"
+       value="Kiss"
+       name="Kiss" />
+      <item
+       label="Laugh"
+       value="Laugh"
+       name="Laugh" />
+      <item
+       label="Plllppt"
+       value="Plllppt"
+       name="Plllppt" />
+      <item
+       label="Repulsed"
+       value="Repulsed"
+       name="Repulsed" />
+      <item
+       label="Sad"
+       value="Sad"
+       name="Sad" />
+      <item
+       label="Shrug"
+       value="Shrug"
+       name="Shrug" />
+      <item
+       label="Smile"
+       value="Smile" 
+       name="Smile" />
+      <item
+       label="Surprise"
+       value="Surprise" 
+       name="Surprise" />
+      <item
+       label="Wink"
+       value="Wink"
+       name="Wink" />
+      <item
+       label="Worry"
+       value="Worry"
+       name="Worry" />
     </combo_box>
     <text
      type="string"
@@ -414,17 +434,21 @@ Maximum animation length is [MAX_LENGTH] seconds.
      left_pad="20"
      name="preview_base_anim"
      tool_tip="Use this to test your animation behavior while your avatar performs common actions.">
-        <combo_box.item
+        <item
          label="Standing"
+         value="Standing"
          name="Standing" />
-        <combo_box.item
+        <item
          label="Walking"
+         value="Walking"
          name="Walking" />
-        <combo_box.item
+        <item
          label="Sitting"
+         value="Sitting"
          name="Sitting" />
-        <combo_box.item
+        <item
          label="Flying"
+         value="Flying"
          name="Flying" />
     </combo_box>
     <spinner
diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml
index 6f2b0fc3ea51b68038551e2d057ab26ccccfef88..32460e937d13901a3920eda46ee830af0ceb1e3d 100644
--- a/indra/newview/skins/default/xui/en/floater_customize.xml
+++ b/indra/newview/skins/default/xui/en/floater_customize.xml
@@ -3365,7 +3365,7 @@
      layout="topleft"
      name="make_outfit_btn"
      right="-218"
-     width="100" />
+     width="120" />
     <button
      bottom="574"
      follows="right|bottom"
diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
index 8c5af2283dce2cccd4a8ee776e88961f8859b032..2c0c8d45b3b349079623f1d2bcbee352ffd48d4d 100644
--- a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
@@ -334,7 +334,7 @@
              left="20"
              name="WLCurKeyFrameText"
              top="104"
-             width="150">
+             width="235">
                 Key Frame Settings:
             </text>
             <text
@@ -392,7 +392,7 @@
              left="30"
              name="WLCurKeyTimeText2"
              top="169"
-             width="120">
+             width="185">
                 Key Preset:
             </text>
             <combo_box
diff --git a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
index 1e2440580e1bc02327d48beebe8d8ea11337286c..27f8b4bb397503b701395d84c5a7c772947c8e90 100644
--- a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
@@ -6,7 +6,7 @@
  name="Hardware Settings Floater"
  help_topic="hardware_settings_floater"
  title="HARDWARE SETTINGS"
- width="500">
+ width="615">
     <text
      type="string"
      length="1"
@@ -16,7 +16,7 @@
      left="10"
      name="Filtering:"
      top="20"
-     width="128">
+     width="188">
         Filtering:
     </text>
     <check_box
@@ -37,7 +37,7 @@
      left="10"
      name="Antialiasing:"
      top_pad="7"
-     width="128">
+     width="188">
         Antialiasing:
     </text>
     <combo_box
@@ -79,13 +79,13 @@
      increment="0.01"
      initial_value="1"
      label="Gamma:"
-     label_width="138"
+     label_width="198"
      layout="topleft"
      left="10"
      max_val="2"
      name="gamma"
      top_pad="7"
-     width="202" />
+     width="262" />
     <text
      type="string"
      length="1"
@@ -95,7 +95,7 @@
      left_pad="10"
      name="(brightness, lower is brighter)"
      top_delta="2"
-     width="315">
+     width="385">
         (0 = default brightness, lower = brighter)
     </text>
     <text
@@ -107,7 +107,7 @@
      left="10"
      name="Enable VBO:"
      top_pad="10"
-     width="128">
+     width="188">
         Enable VBO:
     </text>
     <check_box
@@ -128,14 +128,14 @@
      increment="16"
      initial_value="32"
      label="Texture Memory (MB):"
-     label_width="135"
+     label_width="195"
      layout="topleft"
      left="10"
      max_val="4096"
      name="GraphicsCardTextureMemory"
      tool_tip="Amount of memory to allocate for textures. Defaults to video card memory. Reducing this may improve performance but may also make textures blurry."
      top_pad="10"
-     width="300" />
+     width="360" />
     <spinner
      control_name="RenderFogRatio"
      decimal_digits="1"
@@ -143,14 +143,14 @@
      height="22"
      initial_value="4"
      label="Fog Distance Ratio:"
-     label_width="138"
+     label_width="198"
      layout="topleft"
      left_delta="0"
      max_val="10"
      min_val="0.5"
      name="fog"
      top_pad="7"
-     width="202" />
+     width="262" />
     <button
      follows="right|bottom"
      height="22"
diff --git a/indra/newview/skins/default/xui/en/floater_image_preview.xml b/indra/newview/skins/default/xui/en/floater_image_preview.xml
index 6f8f2721281f41845a44307a9fdc15686621cc04..86232de1a4711d88783cf07120802a1139e97ee2 100644
--- a/indra/newview/skins/default/xui/en/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_image_preview.xml
@@ -64,35 +64,45 @@
      name="clothing_type_combo"
      top_delta="3"
      width="160">
-        <combo_box.item
+        <item
          label="Image"
+         value="Image"
          name="Image" />
-        <combo_box.item
+        <item
          label="Hair"
+         value="Hair"
          name="Hair" />
-        <combo_box.item
+        <item
          label="Female Head"
+         value="Female Head"
          name="FemaleHead" />
-        <combo_box.item
+        <item
          label="Female Upper Body"
+         value="Female Upper Body"
          name="FemaleUpperBody" />
-        <combo_box.item
+        <item
          label="Female Lower Body"
+         value="Female Lower Body"
          name="FemaleLowerBody" />
-        <combo_box.item
+        <item
          label="Male Head"
+         value="Male Head"
          name="MaleHead" />
-        <combo_box.item
+        <item
          label="Male Upper Body"
+         value="Male Upper Body"
          name="MaleUpperBody" />
-        <combo_box.item
+        <item
          label="Male Lower Body"
+         value="Male Lower Body"
          name="MaleLowerBody" />
-        <combo_box.item
+        <item
          label="Skirt"
+         value="Skirt"
          name="Skirt" />
-        <combo_box.item
+        <item
          label="Sculpted Prim"
+         value="Sculpted Prim"
          name="SculptedPrim" />
     </combo_box>
     <text
diff --git a/indra/newview/skins/default/xui/en/floater_joystick.xml b/indra/newview/skins/default/xui/en/floater_joystick.xml
index 4d67e4c343cf390db4359b4d69acd5b4b460e53c..b8156a174d1905a2e52859d6444923d2c86d4ac8 100644
--- a/indra/newview/skins/default/xui/en/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/en/floater_joystick.xml
@@ -819,7 +819,7 @@
      layout="topleft"
      left="20"
      name="ZoomDeadZone"
-     width="94">
+     width="96">
         Zoom Dead Zone
     </text>
     <spinner
diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
index 2bafd1bdef191a2acc900c173c9c5e4bef139f51..5ea207675be399035dcc06a092bb2c1d16dbd5ae 100644
--- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
@@ -100,7 +100,7 @@ No Answer.  Please try again later.
    top="27"
    width="315"
    word_wrap="true">
-    [VOICE_CHANNEL_NAME] has ended the call.  [RECONNECT_NEARBY]
+    Your call has ended.  [RECONNECT_NEARBY]
   </text>
   <text
    font="SansSerifLarge"
diff --git a/indra/newview/skins/default/xui/en/floater_windlight_options.xml b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
index d09a41978dc902de71548b783ae44535391cdab0..85a5be369c45b0d5aac1657bf4dfb42dc663ec2f 100644
--- a/indra/newview/skins/default/xui/en/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
@@ -1132,7 +1132,7 @@
              layout="topleft"
              left_delta="0"
              name="BHText8"
-             top_pad="5"
+             top_pad="8"
              width="10">
                 X
             </text>
@@ -1145,7 +1145,7 @@
              initial_value="0.5"
              layout="topleft"
              left_pad="3"
-             top_pad="6"
+             top_pad="8"
              name="WLCloudDetailX"
              width="200" />
             <text
diff --git a/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml b/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml
index 39fb54d513441c641dedc545907567d191eeadaa..a7ecc39ed85d84d77c43e6835960afdaf96e6a65 100644
--- a/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/inspector_info_ctrl.xml
@@ -1,8 +1,8 @@
 <button
  chrome="true"
- image_selected="Info_Small"
- image_unselected="Info_Small"
- image_pressed="Info_Small"
+ image_selected="Info_Over"
+ image_unselected="Info_Over"
+ image_pressed="Info_Over"
  height="12"
  name="inspector_info_ctrl"
  width="12" />
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 2874151df51f67d5eb4b2fe1f09abfd6b5d04bf4..5e1f6b58e8db78f5e0799473b2148ec15fc8a682 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -4,6 +4,14 @@
  layout="topleft"
  name="Popup"
  visible="false">
+    <menu_item_call
+     label="Share"
+     layout="topleft"
+     name="Share"
+     visible="true">
+        <menu_item_call.on_click
+         function="Inventory.Share" />
+    </menu_item_call>
     <menu_item_call
      label="Buy"
      layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index 4655fa8c4607895eac9b066c8cfe0945bd76089e..e95300a4b356cad70c0fa17f86241c37e948727c 100644
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <menu_bar
- follows="left|top|right"
+ follows="left|top"
  height="18"
  layout="topleft"
  left_delta="0"
diff --git a/indra/newview/skins/default/xui/en/menu_save_outfit.xml b/indra/newview/skins/default/xui/en/menu_save_outfit.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a8778df7f61a32c7cab1e02f252108d2a3776942
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_save_outfit.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<toggleable_menu
+ height="201"
+ layout="topleft"
+ mouse_opaque="false"
+ name="save_outfit_menu"
+ width="120">
+    <menu_item_call 
+     name="save_outfit" 
+     label="Save">
+        <menu_item_call.on_click 
+         function="Outfit.Save.Action"
+         userdata=""/>
+        </menu_item_call>
+    <menu_item_call 
+     name="save_as_new_outfit" 
+     label="Save As New">
+        <menu_item_call.on_click 
+         function="Outfit.SaveAsNew.Action"
+         userdata="" />
+    </menu_item_call>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index e8ba8c683df497d40fa8fe6da605586382c7faf0..9ee4e13f3c792364359026d1e7704cac75632c35 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -3379,6 +3379,13 @@ You can click &apos;Change Preference&apos; to raise your maturity Rating prefer
     </form>
   </notification>
 
+  <notification
+   icon="notifytip.tga"
+   name="PreferredMaturityChanged"
+   type="notifytip">
+Your maturity rating preference is now [RATING].
+  </notification>
+
   <notification
    icon="alertmodal.tga"
    name="LandClaimAccessBlocked"
@@ -4375,6 +4382,18 @@ Uploading in-world and web site snapshots...
 (Takes about 5 minutes.)
   </notification>
 
+  <notification
+   icon="alertmodal.tga"
+   name="UploadConfirmation"
+   type="alertmodal">
+Uploading costs L$[AMOUNT].
+Do you wish to proceed?
+    <usetemplate
+     name="okcancelbuttons"
+     notext="Cancel"
+     yestext="Upload"/>
+  </notification>
+
   <notification
    icon="notify.tga"
    name="UploadPayment"
@@ -5942,6 +5961,13 @@ Selected button can not be shown right now.
 The button will be shown when there is enough space for it.
   </notification>
 
+  <notification
+   icon="notifytip.tga"
+   name="ShareNotification"
+   type="notifytip">
+Drag items from inventory onto a person in the resident picker
+  </notification>
+
 
   <global name="UnsupportedCPU">
 - Your CPU speed does not meet the minimum requirements.
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index c34a367c32fad52c0268f88ab303d7c174492046..e412c491fdc81940c133a529d684c734c0db52c4 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -127,6 +127,8 @@
              <gesture_combo_list.combo_button
               pad_right="10"
               use_ellipses="true" />
+             <gesture_combo_list.combo_list
+              page_lines="17" />
          </gesture_combo_list>
         </layout_panel>
 		 <icon
@@ -344,7 +346,6 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
          user_resize="false">
             <chiclet_im_well
              max_displayed_count="99"
-             flash_period="0.3"
              follows="right"
              height="28"
              layout="topleft"
@@ -393,7 +394,6 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well
          min_width="37"
          user_resize="false">
             <chiclet_notification
-             flash_period="0.25"
              follows="right"
              height="23"
              layout="topleft"
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_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 1b04d01abf4fa51b06c09520440c18fc53d77bbf..27d66945d99f7d98c0b3722ed8e1b5d5755d61b8 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
  background_visible="true"
+ default_tab_group="1"
  follows="all"
  height="408"
  label="Things"
@@ -61,6 +62,7 @@
      left="7"
      name="inventory filter tabs"
      tab_height="30"
+     tab_group="1"
      tab_position="top"
      tab_min_width="100"
      top_pad="10"
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index a314cedc217ef906ed568cb7d6f08f39873e49b2..7ec1ca2e2e87f16f6a31aecd4720e6f327548a2b 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -66,6 +66,7 @@
 	    <button
 	     follows="left|top"
 	     height="23"
+	     image_bottom_pad="1"
 	     image_overlay="Home_Off"
 	     layout="topleft"
 	     left_pad="7"
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
index 53dda1927a7c649271b29fa181beed2ca18a62a3..ff2aae645ba2e52e67059c4ab4242ee74b78366c 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
@@ -64,19 +64,31 @@
 		  function="MediaListCtrl.GoMediaPrefs" />
 	</button>
 	<button
-		name="more_less_btn"
+		name="more_btn"
 		follows="right"
 		tool_tip="Advanced Controls"
 		top_delta="0"
 		right="-8"
 		width="66"
 		height="22"
-		toggle="true"
 		label="More &gt;&gt;"
 		label_selected="Less &lt;&lt;">
 	  <button.commit_callback
 		  function="MediaListCtrl.MoreLess" />
 	</button>
+  <button
+		name="less_btn"
+		follows="right"
+		tool_tip="Advanced Controls"
+		top_delta="0"
+		right="-8"
+		width="66"
+		height="22"
+		label="More &gt;&gt;"
+		label_selected="Less &lt;&lt;">
+      <button.commit_callback
+        function="MediaListCtrl.MoreLess" />
+  </button>
   </panel>
   <panel
 	  name="nearby_media_panel"
diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
index c1800384a38a6e53b402aed89b24a7dc34291718..a5e6506463dfd6b8e861fa2bd208118804b4c633 100644
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
@@ -257,7 +257,7 @@
              text_pad_left="25" />
 
             <inventory_panel
-             allow_multi_select="true"
+             allow_multi_select="false"
              border="false"
              follows="left|top|right|bottom"
              height="176"
@@ -317,6 +317,19 @@
                  name="list_view_btn"
                  top="1"
                  width="31" />
+                <button
+                 follows="bottom|left"
+                 height="25"
+                 image_hover_unselected="Toolbar_Middle_Over"
+                 image_overlay="AddItem_Off"
+                 image_selected="Toolbar_Middle_Selected"
+                 image_unselected="Toolbar_Middle_Off"
+                 label=""
+                 layout="topleft"
+                 left_pad="1"
+                 name="add_to_outfit_btn"
+                 top="1"
+                 width="31" />
             </panel>
         </layout_panel>
     </layout_stack>
@@ -337,6 +350,19 @@
          layout="topleft"
          name="save_btn"
          width="145" />
+        <button
+         follows="bottom|right"
+         height="23"
+         name="save_flyout_btn"
+         label=""
+         left_pad="-20"
+         tab_stop="false"
+         image_selected="SegmentedBtn_Right_Selected_Press"
+         image_unselected="SegmentedBtn_Right_Off"
+         image_pressed="SegmentedBtn_Right_Press"
+         image_pressed_selected="SegmentedBtn_Right_Selected_Press"
+         image_overlay="Arrow_Small_Up"
+         width="20"/>
         <button
          follows="bottom|left|right"
          height="23"
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 6152dd1587f31dd736930f2d7cad03d3129151e8..233137a76be481cd8c2e69588f26c477aa1fb22a 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <!-- Side tray panel -->
 <panel
+ default_tab_group="1"
  follows="all"
  height="449"
  label="People"
@@ -56,6 +57,7 @@
      layout="topleft"
      left="5"
      name="tabs"
+     tab_group="1"
      tab_min_width="70"
      tab_height="30"
      tab_position="top"
@@ -475,7 +477,7 @@ If you're looking for people to hang out with, [secondlife:///app/worldmap try t
          label="Share"
          layout="topleft"
          name="share_btn"
-         width="62" />
+         width="85" />
         <button
          follows="bottom|left"
          left_pad="3"
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
index c61007a9e1a3fa2a150044074f6f12c5b56c0443..a7a0efcdb3bc1a3a9d467e3106334643915dd257 100644
--- a/indra/newview/skins/default/xui/en/panel_places.xml
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
 background_visible="true"
+ default_tab_group="1"
  follows="all"
  height="570"
  label="Places"
@@ -37,6 +38,7 @@ background_visible="true"
      name="Places Tabs"
      tab_min_width="80"
      tab_height="30"
+     tab_group="1"
      tab_position="top"
      top_pad="10"
      width="315" />
@@ -132,5 +134,14 @@ background_visible="true"
          right="-10"
          top="1"
          width="60" />
+        <button
+         follows="bottom|left"
+         height="23"
+         label="Profile"
+         layout="topleft"
+         name="profile_btn"
+         right="-1"
+         top="1"
+         width="111" />
     </panel>
 </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index 44c44f5f59cbc2913db57a3208fd430931d6eac4..7ab74855a5be1d91a8970cb3073cbaffc75667de 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -287,7 +287,7 @@
 		left_delta="2"
 		name="AvatarRenderingText"
 		top_pad="5"
-		width="128">
+		width="158">
 			Avatar rendering:
 		</text>
 		<check_box
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
index 3d7f3924046808f3c23e7ead09c5dfed52068924..fca9b4bca157861e6e54f55b1ab3d8ed3d034f23 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
@@ -84,7 +84,7 @@
     </text>
     <check_box
 	 enabled="false"
-     control_name="LogChat"
+     control_name="LogNearbyChat"
      height="16"
      label="Save nearby chat logs on my computer"
      layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml
index c5b2512fba9e400de6ae8efe741bb0156fb3068d..9186efc431e9a618a07182d5d015e177a2e40287 100644
--- a/indra/newview/skins/default/xui/en/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml
@@ -33,7 +33,7 @@
      left_delta="0"
      name="estate_text"
      top_pad="2"
-     width="80">
+     width="140">
         Estate:
     </text>
     <text
@@ -59,7 +59,7 @@
      left_delta="0"
      name="owner_text"
      top_pad="2"
-     width="80">
+     width="150">
         Estate owner:
     </text>
     <text
@@ -191,19 +191,19 @@
      height="23"
      label="Send Message To Estate..."
      layout="topleft"
-     left="50"
+     left="20"
      name="message_estate_btn"
      top_pad="20"
-     width="160" />
+     width="220" />
     <button
      follows="left|top"
      height="23"
      label="Kick Resident from Estate..."
      layout="topleft"
-     left="50"
+     left="20"
      name="kick_user_from_estate_btn"
      top_pad="5"
-     width="160" />
+     width="220" />
 
     <text
      type="string"
diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
index f9c86fc75b739de40a411e9a70ccc1f32fd35523..80425639006667ec27d272997a69609064f65187 100644
--- a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
- height="152"
+ height="157"
  layout="topleft"
  left="0"
  name="LLScrollingPanelParam"
@@ -10,25 +10,25 @@
      follows="left|top"
      height="16"
      layout="topleft"
-     left="4"
+     left="12"
      name="min param text"
-     top="116"
-     width="128" />
+     top="120"
+     width="120" />
     <text
      follows="left|top"
      height="16"
      layout="topleft"
-     left_pad="6"
+     left="155"
      name="max param text"
      top_delta="0"
-     width="128" />
+     width="120" />
     <text
      type="string"
      length="1"
      follows="left|top"
      height="16"
      layout="topleft"
-     left="8"
+     left="12"
      name="Loading..."
      top="11"
      width="128">
@@ -40,7 +40,7 @@
      follows="left|top"
      height="16"
      layout="topleft"
-     left_pad="6"
+     left="155"
      name="Loading...2"
      top_delta="0"
      width="128">
@@ -49,30 +49,30 @@
     <view_border 
      layout="topleft"
      follows="left|top"
-     left="2"
-     top="0"
+     left="7"
+     top="5"
      width="132"
      height="132"
      thickness="2"
-     shadow_light_color="LtGray_50"
-     highlight_light_color="LtGray_50"
-     highlight_dark_color="LtGray_50"
-     shadow_dark_color="LtGray_50"
+     shadow_light_color="0.3 0.3 0.3 1"
+     highlight_light_color="0.3 0.3 0.3 1"
+     highlight_dark_color="0.3 0.3 0.3 1"
+     shadow_dark_color="0.3 0.3 0.3 1"
      bevel_style="in"
      name="left_border"
     />
     <view_border 
      layout="topleft"
      follows="left|top"
-     left_pad="2"
+     left_pad="10"
      top_delta="0"
      width="132"
      height="132"
      thickness="2"
-     shadow_light_color="LtGray_50"
-     highlight_light_color="LtGray_50"
-     highlight_dark_color="LtGray_50"
-     shadow_dark_color="LtGray_50"
+     shadow_light_color="0.3 0.3 0.3 1"
+     highlight_light_color="0.3 0.3 0.3 1"
+     highlight_dark_color="0.3 0.3 0.3 1"
+     shadow_dark_color="0.3 0.3 0.3 1"
      bevel_style="in"
      name="right_border"
     />
@@ -84,10 +84,10 @@
      image_selected="PushButton_Selected"
      image_unselected="PushButton_Off"
      layout="topleft"
-     left="2"
+     left="7"
      name="less"
      tab_stop="false"
-     top="0"
+     top="5"
      width="132" />
     <button
      enabled="false"
@@ -97,7 +97,7 @@
      image_selected="PushButton_Selected"
      image_unselected="PushButton_Off"
      layout="topleft"
-     left_pad="2"
+     left_pad="10"
      name="more"
      tab_stop="false"
      top_delta="0"
@@ -111,10 +111,11 @@
      initial_value="0"
      label="[DESC]"
      label_width="100"
-     layout="topleft"
+     layout="bottom|left"
      left="6"
      max_val="100"
      name="param slider"
-     top="134"
-     width="258" />
+     bottom="1"
+     width="274" 
+     slider_label.font.style="BOLD" />
 </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml
index 11069b3ac337edd88b3ab242b99a0f413ce70895..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"
@@ -64,7 +64,6 @@
    text_color="white"
    top="5"
    translate="false"
-   v_pad="5" 
    use_ellipses="true"
    width="260">
     Toast text;
diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
index c5efa2e22188aa8f64ffbee7962a7dfdfe72905a..73650a19dc370133ea9acaec49462426868a89ad 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
 background_visible="true"
+default_tab_group="1"
 follows="all"
 height="570"
 label="Outfits"
@@ -90,6 +91,7 @@ width="333">
    min_height="410"
    width="320"
    left="0"
+   tab_group="1"
    top_pad="6"
    follows="all" />
   <!--   <button
diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
index a233d425686bf2301859f73e9718ec01a8e6806a..812d94c55fb5a73bcf959b9b1e231df314678d5a 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
@@ -46,17 +46,27 @@
 				 left="0"
 				 name="info_btn"
 				 top="0"
-				 width="153" />
+				 width="102" />
+			<button
+				 enabled="true"
+				 follows="bottom|left"
+				 height="23"
+				 label="Share"
+				 layout="topleft"
+				 left="105"
+				 name="share_btn"
+				 top="0"
+				 width="102" />
 			<button
 				 enabled="false"
 				 follows="bottom|left"
 				 height="23"
 				 label="Wear"
 				 layout="topleft"
-				 left="156"
+				 left="210"
 				 name="wear_btn"
 				 top="0"
-				 width="152" />
+				 width="102" />
 			<button
 				 enabled="false"
 				 follows="bottom|left"
@@ -64,19 +74,19 @@
 				 label="Play"
 				 layout="topleft"
 				 name="play_btn"
-				 left="156"
+				 left="210"
 				 top="0"
-				 width="152" />
+				 width="102" />
 			<button
 				 enabled="false"
 				 follows="bottom|left"
 				 height="23"
 				 label="Teleport"
 				 layout="topleft"
-				 left="156"
+				 left="210"
 				 name="teleport_btn"
 				 top="0"
-				 width="152" />
+				 width="102" />
 		</panel>
 	</panel>
 
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 0c73b8d7692eef339fb731053adee4e7e10e170c..b0bf51c21485d322272cdfed9379a43a0baa9584 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2940,6 +2940,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
 	<string name="IM_moderator_label">(Moderator)</string>
 
 	<!-- voice calls -->
+	<string name="answered_call">Your call has been answered</string>
 	<string name="started_call">Started a voice call</string>
 	<string name="joined_call">Joined the voice call</string>
 
@@ -3056,6 +3057,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
   <!-- Financial operations strings -->
   <string name="paid_you_ldollars">[NAME] paid you L$[AMOUNT]</string>
   <string name="you_paid_ldollars">You paid [NAME] L$[AMOUNT] [REASON].</string>
+  <string name="you_paid_ldollars_no_info">You paid L$[AMOUNT].</string>
   <string name="you_paid_ldollars_no_reason">You paid [NAME] L$[AMOUNT].</string>
   <string name="you_paid_ldollars_no_name">You paid L$[AMOUNT] [REASON].</string>
   <string name="for a parcel of land">for a parcel of land</string>
diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml
index c453d415b49919131d3fd0f2e24961a1b6db357c..49bf2a744249effc20096ed3d61c2ec0ca7d9aca 100644
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -264,7 +264,7 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
 				[COUNT]
 			</text>
 			<text left="4" name="Autoreturn" width="412">
-				Devolución automática de objetos de otros Residentes (minutos, 0 para desactivarla):
+				Devolución automática de objetos de otros (en min., 0 para desactivarla):
 			</text>
 			<line_editor name="clean other time" right="-20"/>
 			<text name="Object Owners:" width="150">
diff --git a/indra/newview/skins/default/xui/es/floater_buy_land.xml b/indra/newview/skins/default/xui/es/floater_buy_land.xml
index 9a0a566a55b5bc802474c819f0c31028aff33eed..a40f65d5d0f710eb92b4a3fe746c3acf4408be12 100644
--- a/indra/newview/skins/default/xui/es/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_land.xml
@@ -13,17 +13,17 @@
 		No puede unirse ni dividirse.
 	</floater.string>
 	<floater.string name="cant_buy_for_group">
-		No tiene permiso de comprar terreno para el grupo que tiene activado.
+		No tienes permiso de comprar terreno para el grupo que tienes activado.
 	</floater.string>
 	<floater.string name="no_land_selected">
 		No se ha seleccionado terreno.
 	</floater.string>
 	<floater.string name="multiple_parcels_selected">
 		Se han seleccionado varias parcelas diferentes. 
-Inténtelo seleccionando un área más pequeña.
+Inténtalo seleccionando un área más pequeña.
 	</floater.string>
 	<floater.string name="no_permission">
-		No tiene permiso de comprar terreno para el grupo que tiene activado.
+		No tienes permiso de comprar terreno para el grupo que tienes activado.
 	</floater.string>
 	<floater.string name="parcel_not_for_sale">
 		La parcela seleccionada no está en venta.
@@ -32,20 +32,20 @@ Inténtelo seleccionando un área más pequeña.
 		El grupo ya es propietario de la parcela.
 	</floater.string>
 	<floater.string name="you_already_own">
-		Usted ya es propietario de la parcela.
+		Ya eres propietario de la parcela.
 	</floater.string>
 	<floater.string name="set_to_sell_to_other">
-		La parcela seleccionada está marcada para ser vendida a otro
+		La parcela seleccionada está marcada para ser vendida a otro.
 	</floater.string>
 	<floater.string name="no_public_land">
 		El área seleccionada no tiene terreno público.
 	</floater.string>
 	<floater.string name="not_owned_by_you">
-		Está seleccionado un terreno propiedad de otro Residente. 
+		Estás seleccionado un terreno propiedad de otro Residente. 
 Prueba a seleccionar un área más pequeña.
 	</floater.string>
 	<floater.string name="processing">
-		Procesando su compra...
+		Procesando tu compra...
  
 (Llevará uno o dos minutos).
 	</floater.string>
@@ -68,10 +68,10 @@ Prueba a seleccionar un área más pequeña.
 		no necesita
 	</floater.string>
 	<floater.string name="must_upgrade">
-		Para poseer terreno, su cuenta debe ascender de categoría.
+		Para poseer terreno, tu cuenta debe ascender de categoría.
 	</floater.string>
 	<floater.string name="cant_own_land">
-		Su cuenta puede poseer terreno.
+		Tu cuenta puede poseer terreno.
 	</floater.string>
 	<floater.string name="land_holdings">
 		Tienes [BUYER] m² de terreno.
@@ -112,16 +112,16 @@ los suficientes créditos de uso en contribución de terreno
 para cubrir esta parcela.
 	</floater.string>
 	<floater.string name="have_enough_lindens">
-		Tiene [AMOUNT] L$, cantidad suficiente para comprar este terreno.
+		Tienes [AMOUNT] L$, cantidad suficiente para comprar este terreno.
 	</floater.string>
 	<floater.string name="not_enough_lindens">
-		Sólo tiene [AMOUNT] L$. Necesitaría [AMOUNT2] L$ más.
+		Sólo tienes [AMOUNT] L$. Necesitarías [AMOUNT2] L$ más.
 	</floater.string>
 	<floater.string name="balance_left">
-		Tras la compra, aún tendrá [AMOUNT] L$.
+		Tras la compra, aún tendrás [AMOUNT] L$.
 	</floater.string>
 	<floater.string name="balance_needed">
-		Para costearse este terreno, deberá comprar, al menos, [AMOUNT] L$.
+		Para costearte este terreno, deberás comprar, al menos, [AMOUNT] L$.
 	</floater.string>
 	<floater.string name="no_parcel_selected">
 		(No se ha seleccionado una parcela)
@@ -163,7 +163,7 @@ para cubrir esta parcela.
 		Podrá o no unirse o dividirse.
 	</text>
 	<text name="covenant_text">
-		Deve aceptar el Contrato del Estado:
+		Debes aceptar el Contrato del Estado:
 	</text>
 	<text left="470" name="covenant_timestamp_text"/>
 	<text_editor name="covenant_editor">
@@ -198,7 +198,7 @@ se vende con los objetos
 	</text>
 	<button label="Ir al sitio web" name="error_web"/>
 	<text name="account_action">
-		Ascienda a la categoría de miembro premium.
+		Asciende a la categoría de miembro premium.
 	</text>
 	<text name="account_reason">
 		Sólo pueden ser propietarios de terreno los miembros premium.
@@ -209,7 +209,7 @@ se vende con los objetos
 		<combo_box.item label="6.00 US$/mes, facturados anualmente" name="US$6.00/month,billedannually"/>
 	</combo_box>
 	<text name="land_use_action">
-		Aumenta su cuota mensual por uso de terreno a 40 US$/mes.
+		Aumenta tu cuota mensual por uso de terreno a 40 US$/mes.
 	</text>
 	<text name="land_use_reason">
 		Tienes 1309 m² de terreno.
@@ -219,7 +219,7 @@ Esta parcela es de 512 m².
 		Pagar al residente Joe 4.000 L$ por el terreno
 	</text>
 	<text name="currency_reason">
-		Tiene 2.100 L$.
+		Tienes 2.100 L$.
 	</text>
 	<text name="currency_action">
 		Comprar más L$
@@ -231,7 +231,7 @@ Esta parcela es de 512 m².
 		por, aprox., [LOCAL_AMOUNT]
 	</text>
 	<text name="currency_balance">
-		Tiene 2.100 L$.
+		Tienes 2.100 L$.
 	</text>
 	<check_box label="Quitar [AMOUNT] m² de las contribuciones de grupo." name="remove_contribution"/>
 	<button label="Comprar" name="buy_btn"/>
diff --git a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
index fc2b12d1e460d40e140614bbf2837c89312712f9..47ad16b2775430d0ca645637d24da7a97a4424c5 100644
--- a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
@@ -59,7 +59,7 @@
 			</text>
 			<button font="SansSerifSmall" width="96" left="546" label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/>
 			<button font="SansSerifSmall" width="96" left="546" label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/>
-			<text font="SansSerifSmall" name="WLCurKeyFrameText" width="190">
+			<text name="WLCurKeyFrameText">
 				Configuración del fotograma clave:
 			</text>
 			<text name="WLCurKeyTimeText">
diff --git a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml
index 36e7e40e5957020709f406a19c2804275a495435..c9d639d8cf630fa33124b26049afa94097aefbd7 100644
--- a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml
@@ -11,9 +11,9 @@
 	<check_box label="Sonidos" name="check_sound"/>
 	<check_box label="Texturas" name="check_texture"/>
 	<check_box label="Fotos" name="check_snapshot"/>
-	<button label="Todos" label_selected="Todo" name="All" width="70"/>
-	<button label="Ninguno" label_selected="Nada" name="None" width="70" bottom_delta="0" left="83"/>
-	<check_box label="Mostrar siempre las&#10;carpetas" name="check_show_empty"/>
+	<button label="Todos" label_selected="Todo" name="All"/>
+	<button label="Ninguno" label_selected="Nada" name="None"/>
+	<check_box label="Mostrar siempre las carpetas" name="check_show_empty"/>
 	<check_box label="Desde el fin de sesión" name="check_since_logoff" bottom_delta="-36"/>
 	<text name="- OR -">
 		- o -
diff --git a/indra/newview/skins/default/xui/es/floater_windlight_options.xml b/indra/newview/skins/default/xui/es/floater_windlight_options.xml
index 9bc37509513cd0d5c2416091129acd74b9e5262a..585a42e4293cf8fbe7ba7824daa6b61032146952 100644
--- a/indra/newview/skins/default/xui/es/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/es/floater_windlight_options.xml
@@ -157,8 +157,7 @@
 			</text>
 			<button label="?" name="WLCloudScaleHelp"/>
 			<text font="SansSerifSmall" name="WLCloudDetailText">
-				Detalle de las nubes
-(Posición/Densidad)
+				Detalle de las nubes (Posición/Densidad)
 			</text>
 			<button label="?" name="WLCloudDetailHelp"/>
 			<text bottom="-113" name="BHText8">
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 9cb3b7026019662faa2ea49e88c2606d65f63290..082841af311b342a23ef9cd0fc1d3eab01af16ae 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -86,19 +86,19 @@ Asegúrate de que tu conexión a Internet está funcionando adecuadamente.
 		<usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="No guardarlos" yestext="Guardarlos"/>
 	</notification>
 	<notification name="CompileQueueSaveText">
-		Hubo un problema al subir el texto de un script por la siguiente razón: [REASON]. Por favor, inténtelo más tarde.
+		Hubo un problema al subir el texto de un script por la siguiente razón: [REASON]. Por favor, inténtalo más tarde.
 	</notification>
 	<notification name="CompileQueueSaveBytecode">
-		Hubo un problema al subir el script compilado por la siguiente razón: [REASON]. Por favor, inténtelo más tarde.
+		Hubo un problema al subir el script compilado por la siguiente razón: [REASON]. Por favor, inténtalo más tarde.
 	</notification>
 	<notification name="WriteAnimationFail">
-		Hubo un problema al escribir los datos de la animación. Por favor, inténtelo más tarde.
+		Hubo un problema al escribir los datos de la animación. Por favor, inténtalo más tarde.
 	</notification>
 	<notification name="UploadAuctionSnapshotFail">
 		Hubo un problema al subir la foto de la subasta por la siguiente razón: [REASON]
 	</notification>
 	<notification name="UnableToViewContentsMoreThanOne">
-		No se puede ver a la vez los contenidos de más de un ítem. Por favor, elija un solo objeto y vuelva a intentarlo.
+		No se puede ver a la vez los contenidos de más de un ítem. Por favor, elige un solo objeto y vuelve a intentarlo.
 	</notification>
 	<notification name="SaveClothingBodyChanges">
 		¿Guardar todos los cambios en la ropa y partes del cuerpo?
@@ -119,11 +119,11 @@ Asegúrate de que tu conexión a Internet está funcionando adecuadamente.
 		<usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
 	</notification>
 	<notification name="RevokeModifyRights">
-		¿Quiere revocar los derechos de modificación a [FIRST_NAME] [LAST_NAME]?
+		¿Quieres revocar los derechos de modificación a [FIRST_NAME] [LAST_NAME]?
 		<usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
 	</notification>
 	<notification name="RevokeModifyRightsMultiple">
-		¿Quiere revocar los derechos de modificación a los residentes seleccionados?
+		¿Quieres revocar los derechos de modificación a los residentes seleccionados?
 		<usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
 	</notification>
 	<notification name="UnableToCreateGroup">
@@ -188,7 +188,7 @@ Por favor, invita a miembros en las próximas 48 horas.
 		<usetemplate canceltext="Cancelar" name="okcancelbuttons" notext="Cancelar" yestext="Crear un grupo por 100 L$"/>
 	</notification>
 	<notification name="LandBuyPass">
-		Por [COST] L$ puede entrar a este terreno (&apos;[PARCEL_NAME]&apos;) durante [TIME] horas. ¿Comprar un pase?
+		Por [COST] L$ puedes entrar a este terreno (&apos;[PARCEL_NAME]&apos;) durante [TIME] horas. ¿Comprar un pase?
 		<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
 	</notification>
 	<notification name="SalePriceRestriction">
@@ -208,7 +208,7 @@ El precio de venta será de [SALE_PRICE] L$ y se autoriza la compra a [NAME].
 		<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
 	</notification>
 	<notification name="ReturnObjectsDeededToGroup">
-		¿Estás seguros de que quieres devolver todos los objetos de esta parcela que estén compartidos con el grupo &apos;[NAME]&apos; al inventario de su propietario anterior?
+		¿Estás seguro de que quieres devolver todos los objetos de esta parcela que estén compartidos con el grupo &apos;[NAME]&apos; al inventario de su propietario anterior?
 
 *ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
 
@@ -304,7 +304,7 @@ debes estar dentro de ella.
 La carpeta del vestuario contiene partes del cuerpo, u objetos a anexar o que no son ropa.
 	</notification>
 	<notification name="CannotWearTrash">
-		No puede vestirte ropas o partes del cuerpo que estén en la Papelera
+		No puedes vestirte ropas o partes del cuerpo que estén en la Papelera
 	</notification>
 	<notification name="MaxAttachmentsOnOutfit">
 		No se puede anexar el objeto.
@@ -426,7 +426,7 @@ El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&
 		Al guardar un script compilado, hubo un problema por: [REASON]. Por favor, vuelve a intentar guardarlo más tarde..
 	</notification>
 	<notification name="StartRegionEmpty">
-		Perdon, no está definida tu Posición inicial.
+		Perdón, no está definida tu Posición inicial.
 Por favor, escribe el nombre de la región en el cajetín de Posición inicial, o elige para esa posición Mi Base o Mi última posición.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
@@ -639,22 +639,22 @@ Por favor, inténtalo más tarde.
 	</notification>
 	<notification name="CannotRecompileSelectObjectsNoScripts">
 		No se pudo &apos;recompilar&apos;.
-Seleccione un objeto con script.
+Selecciona un objeto con script.
 	</notification>
 	<notification name="CannotRecompileSelectObjectsNoPermission">
 		No se pudo &apos;recompilar&apos;.
 
-Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
+Selecciona objetos con scripts en los que tengas permiso para modificarlos.
 	</notification>
 	<notification name="CannotResetSelectObjectsNoScripts">
 		No se pudo &apos;reiniciar&apos;.
 
-Seleccione objetos con scripts.
+Selecciona objetos con scripts.
 	</notification>
 	<notification name="CannotResetSelectObjectsNoPermission">
 		No se pudo &apos;reiniciar&apos;.
 
-Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
+Selecciona objetos con scripts en los que tengas permiso para modificarlos.
 	</notification>
 	<notification name="CannotOpenScriptObjectNoMod">
 		Imposible abrir el script del objeto sin modificar los permisos.
@@ -662,7 +662,7 @@ Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
 	<notification name="CannotSetRunningSelectObjectsNoScripts">
 		No se puede configurar ningún script como &apos;ejecutándose&apos;.
 
-Seleccione objetos con scripts.
+Selecciona objetos con scripts.
 	</notification>
 	<notification name="CannotSetRunningNotSelectObjectsNoScripts">
 		No se puede configurar ningún script como &apos;no ejecutándose&apos;.
@@ -770,7 +770,7 @@ no se ha seleccionado una parcela.
 	</notification>
 	<notification name="CannotDeedLandNoGroup">
 		No se ha podido transferir el terreno:
-no ha seleccionado un grupo.
+no has seleccionado un grupo.
 	</notification>
 	<notification name="CannotDeedLandNoRegion">
 		No se ha podido transferir el terreno:
@@ -800,7 +800,7 @@ Vuelve a intentarlo en unos segundos.
 	</notification>
 	<notification name="CannotReleaseLandSelected">
 		No se ha podido abandonar el terreno:
-no es propietario de todas las parcelas seleccionadas.
+no eres propietario de todas las parcelas seleccionadas.
 
 Por favor, selecciona una sola parcela.
 	</notification>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
index 46d8984889e7aa55deb6dff9ab1aaa97abfb118c..7a65eb32bc2c2482847ee47f65ce05619109457c 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
@@ -49,7 +49,7 @@
 		Mostrar los MI en: 
 	</text>
 	<text name="requires_restart_label">
-		(requiere reiniciar)
+		 (requiere reiniciar)
 	</text>
 	<radio_group name="chat_window" tool_tip="Muestra tus mensajes instantáneos en varias ventanas flotantes o en una sola con varias pestañas (requiere que reinicies)">
 		<radio_item label="Varias ventanas" name="radio" value="0"/>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
index 87e7dc1e8abc8773848fc44331481d93b9dcd606..56d473e87222e99f20a5d46806ed25154f628e87 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
@@ -52,7 +52,7 @@
 			m
 		</text>
 		<slider label="Núm. máx. de partículas:" name="MaxParticleCount"/>
-		<slider label="Calidad de procesamiento:" label_width="142" name="RenderPostProcess"/>
+		<slider label="Calidad de procesamiento:" name="RenderPostProcess"/>
 		<text name="MeshDetailText">
 			Detalle de la malla:
 		</text>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 0f2af7aaefee3db0e043fd6b0b17d7157b927260..4cee677420d6af5f26f86a77f1eaa5a1bb83a002 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -1543,10 +1543,10 @@
 		No se ha aportado un contrato para este estado. El terreno de este estado lo vende el propietario del estado, no Linden Lab.  Por favor, contacta con ese propietario para informarte sobre la venta.
 	</string>
 	<string name="covenant_last_modified">
-		Última modificación:
+		Última modificación: 
 	</string>
 	<string name="none_text" value="(no hay)"/>
-	<string name="never_text" value="(nunca)"/>
+	<string name="never_text" value=" (nunca)"/>
 	<string name="GroupOwned">
 		Propiedad del grupo
 	</string>
diff --git a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
index a381f64cd92ae30541b65046d6b79dd63d015097..e8122108a814fbaf49ffa04a11bcfe79ea194877 100644
--- a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
@@ -57,8 +57,8 @@
 			<text name="WL12amHash2">
 				|
 			</text>
-			<button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey" width="89" bottom="-45" />
-			<button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey" width="89" bottom="-70" />
+			<button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey"/>
+			<button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey" width="89"/>
 			<text name="WLCurKeyFrameText" width="170">
 				Réglages des images-clés :
 			</text>
@@ -81,10 +81,10 @@
 			<spinner label="Heure" name="WLLengthOfDayHour" label_width="80" width="74" />
 			<spinner label="Min" name="WLLengthOfDayMin" />
 			<spinner label="S" name="WLLengthOfDaySec" label_width="10" width="50" left_delta="95"/>
-			<text name="DayCycleText3" left="280" width="200">
+			<text name="DayCycleText3">
 				Prévisualiser :
 			</text>
-			<button label="Lire" label_selected="Lire" name="WLAnimSky" left_delta="90"/>
+			<button label="Lire" label_selected="Lire" name="WLAnimSky"/>
 			<button label="Stop !" label_selected="Stop" name="WLStopAnimSky" />
 			<button label="Utiliser heure domaine" label_selected="Aller heure domaine"
 			     name="WLUseLindenTime" />
diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
index 6cd886d4b9d4e8f3c2c3c10067dea43daba48264..1ee85a77ce686d50782c5b24adaae0d2f982753c 100644
--- a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
@@ -11,14 +11,14 @@
 	<check_box label="Sons" name="check_sound"/>
 	<check_box label="Textures" name="check_texture"/>
 	<check_box label="Photos" name="check_snapshot"/>
-	<button label="Tout" label_selected="Tout" name="All" width="70"/>
-	<button bottom_delta="0" label="Aucun" label_selected="Aucun" left="83" name="None" width="70"/>
-	<check_box bottom_delta="-20" label="Toujours montrer les dossiers" name="check_show_empty"/>
-	<check_box bottom_delta="-36" label="Depuis la déconnexion" name="check_since_logoff"/>
+	<button label="Tout" label_selected="Tout" name="All"/>
+	<button bottom_delta="0" label="Aucun" label_selected="Aucun" name="None"/>
+	<check_box label="Toujours montrer les dossiers" name="check_show_empty"/>
+	<check_box label="Depuis la déconnexion" name="check_since_logoff"/>
 	<text name="- OR -">
 		Ou il y a...
 	</text>
 	<spinner label="Heures" name="spin_hours_ago"/>
 	<spinner label="Jours" name="spin_days_ago"/>
-	<button bottom_delta="-30" label="Fermer" label_selected="Fermer" name="Close"/>
+	<button label="Fermer" label_selected="Fermer" name="Close"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
index 7d50e322c04b5b3f01ebd28c6729384de8a46f58..808c758bb6f3e5d8235f59afc4526f421eebb492 100644
--- a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
@@ -59,7 +59,7 @@
 			</text>
 			<button font="SansSerifSmall" width="96" left="546" label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/>
 			<button font="SansSerifSmall" width="96" left="546" label="Cancella voce" label_selected="Cancella voce" name="WLDeleteKey"/>
-			<text name="WLCurKeyFrameText" width="210" left="17">
+			<text name="WLCurKeyFrameText">
 				Impostazioni del fotogramma chiave:
 			</text>
 			<text name="WLCurKeyTimeText">
diff --git a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
index b5a17b2fc1793a12b16044b4e43aa04b0341bd75..49130285f2adc5340e09c59ef95e9659fcb5e4dd 100644
--- a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Inventory Finder" title="INVENTARIO_COSE_RECENTI" width="165">
+<floater name="Inventory Finder" title="INVENTARIO_COSE_RECENTI">
 	<check_box label="Animazioni" name="check_animation"/>
 	<check_box label="Biglietti da visita" name="check_calling_card"/>
 	<check_box label="Abiti" name="check_clothing"/>
diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml
index 8d3f096c4bbec0f6db83628a3fdcb56d35fbdfaf..61e3f310243ef748bbe6c8bda3ad19ee652dbf78 100644
--- a/indra/newview/skins/default/xui/it/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml
@@ -3,7 +3,7 @@
 	<text name="estate_help_text">
 		Le modifiche apportate in questa scheda saranno valide per tutte le regioni in questa proprietà.
 	</text>
-	<text name="estate_text" width="140">
+	<text name="estate_text">
 		Proprietà immobiliari:
 	</text>
 	<text name="estate_name">
diff --git a/indra/newview/skins/default/xui/nl/floater_about.xml b/indra/newview/skins/default/xui/nl/floater_about.xml
index 10c30eb361f0704dbe4a4e777f458a1630bfaedc..f71f935c24856b24fd94ece6f8ac2097a23c89b9 100644
--- a/indra/newview/skins/default/xui/nl/floater_about.xml
+++ b/indra/newview/skins/default/xui/nl/floater_about.xml
@@ -1,20 +1,60 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="floater_about" title="OVER [CAPITALIZED_APP_NAME]">
-<tab_container name="about_tab">
-	<panel name="credits_panel">
-	<text_editor name="credits_editor">
-		Second Life wordt u aangeboden door Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl and many others.
+	<floater.string name="AboutHeader">
+		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+	</floater.string>
+	<floater.string name="AboutCompiler">
+		Gemaakt met [COMPILER] versie [COMPILER_VERSION]
+	</floater.string>
+	<floater.string name="AboutPosition">
+		U bent op [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] gelegen op [HOSTNAME] ([HOSTIP])
+[SERVER_VERSION]
+[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]]
+	</floater.string>
+	<floater.string name="AboutSystem">
+		CPU: [CPU]
+Geheugen: [MEMORY_MB] MB
+OS Versie: [OS_VERSION]
+Grafische Kaard Vendor: [GRAPHICS_CARD_VENDOR]
+Grafische Kaard: [GRAPHICS_CARD]
+	</floater.string>
+	<floater.string name="AboutDriver">
+		Windows Grafische Driver Versie: [GRAPHICS_DRIVER_VERSION]
+	</floater.string>
+	<floater.string name="AboutLibs">
+		OpenGL Versie: [OPENGL_VERSION]
+
+libcurl Versie: [LIBCURL_VERSION]
+J2C Decoder Versie: [J2C_VERSION]
+Audio Driver Versie: [AUDIO_DRIVER_VERSION]
+Qt Webkit Versie: [QT_WEBKIT_VERSION]
+Vivox Versie: [VIVOX_VERSION]
+	</floater.string>
+	<floater.string name="none">
+		(none)
+	</floater.string>
+	<floater.string name="AboutTraffic">
+		Pakketten Verloren: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+	</floater.string>
+	<tab_container name="about_tab">
+		<panel label="Info" name="support_panel">
+			<button label="Kopiëren naar Klembord" name="copy_btn"/>
+		</panel>
+		<panel label="Credits" name="credits_panel">
+			<text_editor name="credits_editor">
+				Second Life wordt u aangeboden door Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl and many others.
 
 Een &apos;Dank u&apos; voor de volgende bewoners voor het helpen zorgdragen dat dit de beste versie tot nu toe is: able whitman, Adeon Writer, adonaira aabye, Aeron Kohime, Agathos Frascati, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Aminom Marvin, Angela Talamasca, Aralara Rajal, Armin Weatherwax, Ashrilyn Hayashida, Athanasius Skytower, Aura Dirval, Barney Boomslang, Biancaluce Robbiani, Biker Offcourse, Borg Capalini, Bulli Schumann, catherine pfeffer, Chalice Yao, Corre Porta, Court Goodman, Cummere Mayo, Dale Innis, Darien Caldwell, Darjeeling Schoonhoven, Daten Thielt, dimentox travanti, Dirk Talamasca, Drew Dwi, Duckless Vandyke, Elanthius Flagstaff, Electro Burnstein, emiley tomsen, Escort DeFarge, Eva Rau, Ezian Ecksol, Fire Centaur, Fluf Fredriksson, Francisco Koolhoven, Frontera Thor, Frungi Stastny, Gally Young, gearsawe stonecutter, Gigs Taggart, Gordon Wendt, Gudmund Shepherd, Gypsy Paz, Harleen Gretzky, Henri Beauchamp, Inma Rau, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Jessicka Graves, Joeseph Albanese, Joshua Philgarlic, Khyota Wulluf, kirstenlee Cinquetti, Latif Khalifa, Lex Neva, Lilibeth Andree, Lisa Lowe, Lunita Savira, Loosey Demonia, lum pfohl, Marcos Fonzarelli, MartinRJ Fayray, Marusame Arai, Matthew Dowd, Maya Remblai, McCabe Maxsted, Meghan Dench, Melchoir Tokhes, Menos Short, Michelle2 Zenovka, Mimika Oh, Minerva Memel, Mm Alder, Ochi Wolfe, Omei Turnbull, Pesho Replacement, Phantom Ninetails, phoenixflames kukulcan, Polo Gufler, prez pessoa, princess niven, Prokofy Neva, Qie Niangao, Rem Beattie, RodneyLee Jessop, Saijanai Kuhn, Seg Baphomet, Sergen Davies, Shirley Marquez, SignpostMarv Martin, Sindy Tsure, Sira Arbizu, Skips Jigsaw, Sougent Harrop, Spritely Pixel, Squirrel Wood, StarSong Bright, Subversive Writer, Sugarcult Dagger, Sylumm Grigorovich, Tammy Nowotny, Tanooki Darkes, Tayra Dagostino, Theoretical Chemistry, Thickbrick Sleaford, valerie rosewood, Vex Streeter, Vixen Heron, Whoops Babii, Winter Ventura, Xiki Luik, Yann Dufaux, Yina Yao, Yukinoroh Kamachi, Zolute Infinity, Zwagoth Klaar
 
 
 
 To be a success in business, be daring, be first, be different. --Henry Marchant
-	</text_editor>
-	</panel>
-	<panel name="licenses_panel">
-	<text_editor name="credits_editor">
-3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
+			</text_editor>
+		</panel>
+		<panel label="Licenties" name="licenses_panel">
+			<text_editor name="credits_editor">
+				3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
 APR Copyright (C) 2000-2004 The Apache Software Foundation
 cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
 DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004
@@ -35,10 +75,7 @@ google-perftools Copyright (c) 2005, Google Inc.
 All rights reserved. See licenses.txt for details.
 
 Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
-	</text_editor>
-	</panel>
-</tab_container>
-	<string name="you_are_at">
-		U bent op [POSITION]
-	</string>
+			</text_editor>
+		</panel>
+	</tab_container>
 </floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_mute_object.xml b/indra/newview/skins/default/xui/nl/floater_mute_object.xml
index 7a34be1bd7c71370b36e4496302ef775f0ab677b..edea63b42c6584e29f0a0e34ff4d896eb996da7a 100644
--- a/indra/newview/skins/default/xui/nl/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/nl/floater_mute_object.xml
@@ -1,13 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="mute by name" title="NEGEER OBJECT OP NAAM">
-	<text name="message" bottom_delta="-40">
-		Negeer op naam heeft alleen invloed op object chat
-en IM, niet op geluiden. U dient de naam van het object 
-exact te typen.
+<floater name="mute by name" title="BLOKKEER VOORWERP BIJ NAAM">
+	<text bottom_delta="-40" name="message">
+		Blokkeer een Voorwerp:
 	</text>
-	<line_editor name="object_name" bottom_delta="-58">
+	<line_editor bottom_delta="-58" name="object_name">
 		Object naam
 	</line_editor>
+	<text name="note">
+		* Blokkeerd alleen object tekst, niet de geluiden
+	</text>
 	<button label="Ok" name="OK"/>
 	<button label="Annuleren" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_report_abuse.xml b/indra/newview/skins/default/xui/nl/floater_report_abuse.xml
index 19b11ede0a963a5fd4fc2b948029347852a90067..a50773c2b3ad141cbef095663c59e1a8b58ed4b7 100644
--- a/indra/newview/skins/default/xui/nl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/nl/floater_report_abuse.xml
@@ -1,30 +1,33 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="floater_report_abuse" title="MISBRUIK RAPPORTEREN">
-	<check_box label="Voeg schermafbeelding toe" name="screen_check"/>
+	<floater.string name="Screenshot">
+		Schermafbeelding
+	</floater.string>
+	<check_box label="Gebruik deze schermafbeelding" name="screen_check"/>
 	<text name="reporter_title" width="110">
 		Rapporteur:
 	</text>
-	<text name="reporter_field" left_delta="70">
-		Loremipsum Dolorsitamut
+	<text left_delta="70" name="reporter_field">
+		Loremipsum Dolorsitamut Longnamez
 	</text>
 	<text name="sim_title">
 		Regio:
 	</text>
-	<text name="sim_field" left_delta="70">
+	<text left_delta="70" name="sim_field">
 		Regionaam
 	</text>
 	<text name="pos_title">
 		Positie:
 	</text>
-	<text name="pos_field" left_delta="70">
+	<text left_delta="70" name="pos_field">
 		{128.1, 128.1, 15.4}
 	</text>
 	<text name="select_object_label">
-		Klik de knop, daarna het object:
+		Klik de knop, vervolgens het misbruik voorwerp:
 	</text>
 	<button label="" label_selected="" name="pick_btn" tool_tip="Objectkiezer - Identificeer een object als het onderwerp van dit rapport"/>
 	<text name="object_name_label">
-		Naam:
+		voorwerp:
 	</text>
 	<text name="object_name" width="120">
 		Consetetur Sadipscing
@@ -33,54 +36,53 @@
 		Eigenaar:
 	</text>
 	<text name="owner_name">
-		Hendrerit Vulputate
+		Hendrerit Vulputate Kamawashi Longname
 	</text>
 	<combo_box name="category_combo" tool_tip="Categorie -- selecteer de categorie die dit rapport het best beschrijft">
-		<combo_box.item name="Select_category" label="Selecteer categorie"/>
-		<combo_box.item name="Age__Age_play" label="Leeftijd &gt; Leeftijd spelen"/>
-		<combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Leeftijd &gt; Volwassen inwoner in Teen Second Life"/>
-		<combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Leeftijd &gt; Minderjarige inwoner buiten Teen Second Life"/>
-		<combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Aanval &gt; Gevechtszandbak / onveilig gebied"/>
-		<combo_box.item name="Assault__Safe_area" label="Aanval &gt; Veilig gebied"/>
-		<combo_box.item name="Assault__Weapons_testing_sandbox" label="Aanval &gt; Zandbak voor het testen van wapens"/>
-		<combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Handel &gt; Product of dienst is niet geleverd"/>
-		<combo_box.item name="Disclosure__Real_world_information" label="Openbaring &gt; Echte wereld informatie"/>
-		<combo_box.item name="Disclosure__Remotely_monitoring chat" label="Openbaring &gt; Op afstand chat afluisteren"/>
-		<combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Openbaring &gt; Second Life informatie/chat/IMs"/>
-		<combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Vredebreuk &gt; Oneerlijk gebruik van regiomiddelen"/>
-		<combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Vredebreuk &gt; Excessieve gescripte objecten"/>
-		<combo_box.item name="Disturbing_the_peace__Object_littering" label="Vredebreuk &gt; Objecten laten rondslingeren"/>
-		<combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Vredebreuk &gt; Herhaalde spam"/>
-		<combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Vredebreuk &gt; Ongewenste reclame-spam"/>
-		<combo_box.item name="Fraud__L$" label="Fraude &gt; L$"/>
-		<combo_box.item name="Fraud__Land" label="Fraude &gt; Land"/>
-		<combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Fraude &gt; Piramideschema of kettingbrief"/>
-		<combo_box.item name="Fraud__US$" label="Fraude &gt; US$"/>
-		<combo_box.item name="Harassment__Advert_farms___visual_spam" label="Intimidatie &gt; Reclameverzamelingen / visuele spam"/>
-		<combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Intimidatie &gt; Individuen of groepen in diskrediet brengen"/>
-		<combo_box.item name="Harassment__Impeding_movement" label="Intimidatie &gt; Beweging verhinderen"/>
-		<combo_box.item name="Harassment__Sexual_harassment" label="Intimidatie &gt; Seksuele intimidatie"/>
-		<combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Intimidatie &gt; Anderen uitnodigen/aanzetten tot het schenden van de ToS"/>
-		<combo_box.item name="Harassment__Verbal_abuse" label="Intimidatie &gt; Verbaal misbruik"/>
-		<combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Onfatsoenlijkheid &gt; Globaal beledigende inhoud of gedrag"/>
-		<combo_box.item name="Indecency__Inappropriate_avatar_name" label="Onfatsoenlijkheid &gt; Ongepaste avatar naam"/>
-		<combo_box.item name="Indecency__Mature_content_in_PG_region" label="Onfatsoenlijkheid &gt; Ongepaste inhoud of gedrag in een PG regio"/>
-		<combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Onfatsoenlijkheid &gt; Ongepaste inhoud of gedrag in een Mature regio"/>
-		<combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Inbreuk op intellectueel eigendom &gt; Verwijderen van inhoud"/>
-		<combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Inbreuk op intellectueel eigendom &gt; CopyBot of misbruik van permissies"/>
-		<combo_box.item name="Intolerance" label="Intolerantie"/>
-		<combo_box.item name="Land__Abuse_of_sandbox_resources" label="Land &gt; Misbruik van zandbakmiddelen"/>
-		<combo_box.item name="Land__Encroachment__Objects_textures" label="Land &gt; Indringing &gt; Objecten/texturen"/>
-		<combo_box.item name="Land__Encroachment__Particles" label="Land &gt; Indringing &gt; Particles"/>
-		<combo_box.item name="Land__Encroachment__Trees_plants" label="Land &gt; Indringing &gt; Bomen/planten"/>
-		<combo_box.item name="Wagering_gambling" label="Weddenschappen/gokken"/>
-		<combo_box.item name="Other" label="Anders"/>
+		<combo_box.item label="Selecteer categorie" name="Select_category"/>
+		<combo_box.item label="Leeftijd &gt; Leeftijd spelen" name="Age__Age_play"/>
+		<combo_box.item label="Leeftijd &gt; Volwassen inwoner in Teen Second Life" name="Age__Adult_resident_on_Teen_Second_Life"/>
+		<combo_box.item label="Leeftijd &gt; Minderjarige inwoner buiten Teen Second Life" name="Age__Underage_resident_outside_of_Teen_Second_Life"/>
+		<combo_box.item label="Aanval &gt; Gevechtszandbak / onveilig gebied" name="Assault__Combat_sandbox___unsafe_area"/>
+		<combo_box.item label="Aanval &gt; Veilig gebied" name="Assault__Safe_area"/>
+		<combo_box.item label="Aanval &gt; Zandbak voor het testen van wapens" name="Assault__Weapons_testing_sandbox"/>
+		<combo_box.item label="Handel &gt; Product of dienst is niet geleverd" name="Commerce__Failure_to_deliver_product_or_service"/>
+		<combo_box.item label="Openbaring &gt; Echte wereld informatie" name="Disclosure__Real_world_information"/>
+		<combo_box.item label="Openbaring &gt; Op afstand chat afluisteren" name="Disclosure__Remotely_monitoring chat"/>
+		<combo_box.item label="Openbaring &gt; Second Life informatie/chat/IMs" name="Disclosure__Second_Life_information_chat_IMs"/>
+		<combo_box.item label="Vredebreuk &gt; Oneerlijk gebruik van regiomiddelen" name="Disturbing_the_peace__Unfair_use_of_region_resources"/>
+		<combo_box.item label="Vredebreuk &gt; Excessieve gescripte objecten" name="Disturbing_the_peace__Excessive_scripted_objects"/>
+		<combo_box.item label="Vredebreuk &gt; Objecten laten rondslingeren" name="Disturbing_the_peace__Object_littering"/>
+		<combo_box.item label="Vredebreuk &gt; Herhaalde spam" name="Disturbing_the_peace__Repetitive_spam"/>
+		<combo_box.item label="Vredebreuk &gt; Ongewenste reclame-spam" name="Disturbing_the_peace__Unwanted_advert_spam"/>
+		<combo_box.item label="Fraude &gt; L$" name="Fraud__L$"/>
+		<combo_box.item label="Fraude &gt; Land" name="Fraud__Land"/>
+		<combo_box.item label="Fraude &gt; Piramideschema of kettingbrief" name="Fraud__Pyramid_scheme_or_chain_letter"/>
+		<combo_box.item label="Fraude &gt; US$" name="Fraud__US$"/>
+		<combo_box.item label="Intimidatie &gt; Reclameverzamelingen / visuele spam" name="Harassment__Advert_farms___visual_spam"/>
+		<combo_box.item label="Intimidatie &gt; Individuen of groepen in diskrediet brengen" name="Harassment__Defaming_individuals_or_groups"/>
+		<combo_box.item label="Intimidatie &gt; Beweging verhinderen" name="Harassment__Impeding_movement"/>
+		<combo_box.item label="Intimidatie &gt; Seksuele intimidatie" name="Harassment__Sexual_harassment"/>
+		<combo_box.item label="Intimidatie &gt; Anderen uitnodigen/aanzetten tot het schenden van de ToS" name="Harassment__Solicting_inciting_others_to_violate_ToS"/>
+		<combo_box.item label="Intimidatie &gt; Verbaal misbruik" name="Harassment__Verbal_abuse"/>
+		<combo_box.item label="Onfatsoenlijkheid &gt; Globaal beledigende inhoud of gedrag" name="Indecency__Broadly_offensive_content_or_conduct"/>
+		<combo_box.item label="Onfatsoenlijkheid &gt; Ongepaste avatar naam" name="Indecency__Inappropriate_avatar_name"/>
+		<combo_box.item label="Onfatsoenlijkheid &gt; Ongepaste inhoud of gedrag in een PG regio" name="Indecency__Mature_content_in_PG_region"/>
+		<combo_box.item label="Onfatsoenlijkheid &gt; Ongepaste inhoud of gedrag in een Mature regio" name="Indecency__Inappropriate_content_in_Mature_region"/>
+		<combo_box.item label="Inbreuk op intellectueel eigendom &gt; Verwijderen van inhoud" name="Intellectual_property_infringement_Content_Removal"/>
+		<combo_box.item label="Inbreuk op intellectueel eigendom &gt; CopyBot of misbruik van permissies" name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"/>
+		<combo_box.item label="Intolerantie" name="Intolerance"/>
+		<combo_box.item label="Land &gt; Misbruik van zandbakmiddelen" name="Land__Abuse_of_sandbox_resources"/>
+		<combo_box.item label="Land &gt; Indringing &gt; Objecten/texturen" name="Land__Encroachment__Objects_textures"/>
+		<combo_box.item label="Land &gt; Indringing &gt; Particles" name="Land__Encroachment__Particles"/>
+		<combo_box.item label="Land &gt; Indringing &gt; Bomen/planten" name="Land__Encroachment__Trees_plants"/>
+		<combo_box.item label="Weddenschappen/gokken" name="Wagering_gambling"/>
+		<combo_box.item label="Anders" name="Other"/>
 	</combo_box>
 	<text name="abuser_name_title">
 		Misbruikernaam:
 	</text>
 	<button label="Kies inwoner" label_selected="" name="select_abuser" tool_tip="Selecteer de naam van de misbruiker uit een lijst"/>
-	<check_box label="Naam van misbruiker onbekend" name="omit_abuser_name" tool_tip="Vink dit aan wanneer u niet in staat bent de naam van de misbruiker te geven"/>
 	<text name="abuser_name_title2">
 		Locatie van misbruik:
 	</text>
@@ -91,13 +93,11 @@
 		Details:
 	</text>
 	<text name="bug_aviso">
-		Wees alstublieft zo specifiek mogelijk m.b.t. datum, locatie, 
-aard van het misbruik, relevante chat/IM tekst, en selecteer 
-het object indien mogelijk.
+		Wees zo specifiek mogelijk
 	</text>
 	<text name="incomplete_title">
-		Let op: onvolledige rapporten zullen niet worden onderzocht.
+		Let Op: Onvolledige verslagen zullen niet worden onderzocht
 	</text>
-	<button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
 	<button label="Misbruik rapporteren" label_selected="Misbruik rapporteren" name="send_btn"/>
+	<button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_stats.xml b/indra/newview/skins/default/xui/nl/floater_stats.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0db3f76735a3938413ea440d30bc85486e8bf942
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_stats.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Statistics" title="STATISTIEKEN">
+	<scroll_container name="statistics_scroll">
+		<container_view name="statistics_view">
+			<stat_view label="Basis" name="basic">
+				<stat_bar label="FPS" name="fps"/>
+				<stat_bar label="Bandbreedte" name="bandwidth"/>
+				<stat_bar label="Pakket Verlies" name="packet_loss"/>
+				<stat_bar label="Ping Sim" name="ping"/>
+			</stat_view>
+			<stat_view label="Geavanceerd" name="advanced">
+				<stat_view label="Weergeven" name="render">
+					<stat_bar label="KTris Tekenen" name="ktrisframe"/>
+					<stat_bar label="KTris Tekenen" name="ktrissec"/>
+					<stat_bar label="Totaal Voorwerpen" name="objs"/>
+					<stat_bar label="Nieuwe Voorwerpen" name="newobjs"/>
+				</stat_view>
+				<stat_view label="Textuur" name="texture">
+					<stat_bar label="Count" name="numimagesstat"/>
+					<stat_bar label="Raw Count" name="numrawimagesstat"/>
+					<stat_bar label="GL Mem" name="gltexmemstat"/>
+					<stat_bar label="Formatted Mem" name="formattedmemstat"/>
+					<stat_bar label="Raw Mem" name="rawmemstat"/>
+					<stat_bar label="Bound Mem" name="glboundmemstat"/>
+				</stat_view>
+				<stat_view label="Netwerk" name="network">
+					<stat_bar label="Pakketten In" name="packetsinstat"/>
+					<stat_bar label="Pakketten Uit" name="packetsoutstat"/>
+					<stat_bar label="Voorwerpen" name="objectkbitstat"/>
+					<stat_bar label="Textuur" name="texturekbitstat"/>
+					<stat_bar label="Bezit" name="assetkbitstat"/>
+					<stat_bar label="Lagen" name="layerskbitstat"/>
+					<stat_bar label="Daadwerkelijk In" name="actualinkbitstat"/>
+					<stat_bar label="Daadwerkelijk Out" name="actualoutkbitstat"/>
+					<stat_bar label="VFS Pending Ops" name="vfspendingoperations"/>
+				</stat_view>
+			</stat_view>
+			<stat_view label="Simulator" name="sim">
+				<stat_bar label="Tijd Dilatatie" name="simtimedilation"/>
+				<stat_bar label="Sim FPS" name="simfps"/>
+				<stat_bar label="Physics FPS" name="simphysicsfps"/>
+				<stat_view label="Physics Details" name="physicsdetail">
+					<stat_bar label="Pinned Objects" name="physicspinnedtasks"/>
+					<stat_bar label="Low LOD Objects" name="physicslodtasks"/>
+					<stat_bar label="Memory Allocated" name="physicsmemoryallocated"/>
+					<stat_bar label="Agent Updates/Sec" name="simagentups"/>
+					<stat_bar label="Main Agents" name="simmainagents"/>
+					<stat_bar label="Child Agents" name="simchildagents"/>
+					<stat_bar label="Voorwerpen" name="simobjects"/>
+					<stat_bar label="Actieve Voorwerpen" name="simactiveobjects"/>
+					<stat_bar label="Actieve Scripts" name="simactivescripts"/>
+					<stat_bar label="Actieve Evenementen" name="simscripteps"/>
+					<stat_bar label="Pakketten In" name="siminpps"/>
+					<stat_bar label="Pakketten Uit" name="simoutpps"/>
+					<stat_bar label="Wachtende Downloads" name="simpendingdownloads"/>
+					<stat_bar label="Wachtende Uploads" name="simpendinguploads"/>
+					<stat_bar label="Total Unacked Bytes" name="simtotalunackedbytes"/>
+				</stat_view>
+				<stat_view label="Tijd (ms)" name="simperf">
+					<stat_bar label="Totale Frame Tijd" name="simframemsec"/>
+					<stat_bar label="Net Time" name="simnetmsec"/>
+					<stat_bar label="Physics Time" name="simsimphysicsmsec"/>
+					<stat_bar label="Simulatie Tijd" name="simsimothermsec"/>
+					<stat_bar label="Agent Tijd" name="simagentmsec"/>
+					<stat_bar label="Plaatjes Tijd" name="simimagesmsec"/>
+					<stat_bar label="Script Tijd" name="simscriptmsec"/>
+				</stat_view>
+			</stat_view>
+		</container_view>
+	</scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/menu_inventory.xml b/indra/newview/skins/default/xui/nl/menu_inventory.xml
index 6a514422b944ff1586bbb6dd2a7990e67a1f459a..c3b47cbddb90e9ec0634a37d942c4df433e5d0c7 100644
--- a/indra/newview/skins/default/xui/nl/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/nl/menu_inventory.xml
@@ -12,7 +12,7 @@
 	<menu_item_call label="Nieuw script" name="New Script"/>
 	<menu_item_call label="Nieuwe notitie" name="New Note"/>
 	<menu_item_call label="Nieuw gebaar" name="New Gesture"/>
-	<menu name="New Clothes" label="Nieuwe Kleding">
+	<menu label="Nieuwe Kleding" name="New Clothes">
 		<menu_item_call label="Nieuw shirt" name="New Shirt"/>
 		<menu_item_call label="Nieuwe broek" name="New Pants"/>
 		<menu_item_call label="Nieuwe schoenen" name="New Shoes"/>
@@ -22,31 +22,47 @@
 		<menu_item_call label="Nieuwe handschoenen" name="New Gloves"/>
 		<menu_item_call label="Nieuw onderhemd" name="New Undershirt"/>
 		<menu_item_call label="Nieuwe onderbroek" name="New Underpants"/>
+		<menu_item_call label="Nieuw Alpha Masker" name="New Alpha Mask"/>
+		<menu_item_call label="Nieuwe Tattoo" name="New Tattoo"/>
 	</menu>
-	<menu name="New Body Parts" label="Nieuwe Lichaamsdelen">
+	<menu label="Nieuwe Lichaamsdelen" name="New Body Parts">
 		<menu_item_call label="Nieuwe postuur" name="New Shape"/>
 		<menu_item_call label="Nieuwe huid" name="New Skin"/>
 		<menu_item_call label="Nieuw haar" name="New Hair"/>
 		<menu_item_call label="Nieuwe ogen" name="New Eyes"/>
 	</menu>
+	<menu label="Change Type" name="Change Type">
+		<menu_item_call label="Standaard" name="Default"/>
+		<menu_item_call label="Handschoenen" name="Gloves"/>
+		<menu_item_call label="Jas" name="Jacket"/>
+		<menu_item_call label="Broek" name="Pants"/>
+		<menu_item_call label="Vorm" name="Shape"/>
+		<menu_item_call label="Schoenen" name="Shoes"/>
+		<menu_item_call label="Overhemd" name="Shirt"/>
+		<menu_item_call label="Rok" name="Skirt"/>
+		<menu_item_call label="Onderbroek" name="Underpants"/>
+		<menu_item_call label="Onderhemd" name="Undershirt"/>
+	</menu>
 	<menu_item_call label="Teleport" name="Landmark Open"/>
 	<menu_item_call label="Open" name="Animation Open"/>
 	<menu_item_call label="Open" name="Sound Open"/>
 	<menu_item_call label="Verwijderen item" name="Purge Item"/>
 	<menu_item_call label="Herstellen item" name="Restore Item"/>
+	<menu_item_call label="Ga Naar Link" name="Goto Link"/>
 	<menu_item_call label="Open" name="Open"/>
 	<menu_item_call label="Eigenschappen" name="Properties"/>
 	<menu_item_call label="Hernoemen" name="Rename"/>
 	<menu_item_call label="Kopieer asset UUID" name="Copy Asset UUID"/>
 	<menu_item_call label="Kopiëren" name="Copy"/>
 	<menu_item_call label="Plakken" name="Paste"/>
+	<menu_item_call label="Plak Als Link" name="Paste As Link"/>
 	<menu_item_call label="Verwijderen" name="Delete"/>
 	<menu_item_call label="Items uitdoen" name="Take Off Items"/>
 	<menu_item_call label="Voeg toe aan kleding" name="Add To Outfit"/>
 	<menu_item_call label="Vervang kleding" name="Replace Outfit"/>
 	<menu_item_call label="Start conferentie chat" name="Conference Chat Folder"/>
 	<menu_item_call label="Afspelen" name="Sound Play"/>
-	<menu_item_call label="Over landmarkering" name="Teleport To Landmark"/>
+	<menu_item_call label="Over Landmark" name="About Landmark"/>
 	<menu_item_call label="In wereld afspelen" name="Animation Play"/>
 	<menu_item_call label="Lokaal afspelen" name="Animation Audition"/>
 	<menu_item_call label="Stuur instant message" name="Send Instant Message"/>
@@ -54,8 +70,8 @@
 	<menu_item_call label="Start conferentie chat" name="Conference Chat"/>
 	<menu_item_call label="Activeren" name="Activate"/>
 	<menu_item_call label="Deactiveren" name="Deactivate"/>
+	<menu_item_call label="Opslaan Als" name="Save As"/>
 	<menu_item_call label="Losmaken van jezelf" name="Detach From Yourself"/>
-	<menu_item_call label="Herstellen naar laatste positie" name="Restore to Last Position"/>
 	<menu_item_call label="Dragen" name="Object Wear"/>
 	<menu label="Bevestigen aan" name="Attach To"/>
 	<menu label="Bevestigen aan HUD" name="Attach To HUD"/>
diff --git a/indra/newview/skins/default/xui/nl/menu_inventory_add.xml b/indra/newview/skins/default/xui/nl/menu_inventory_add.xml
new file mode 100644
index 0000000000000000000000000000000000000000..09330b9597a281d3c958fbcb440bc0984a45e2dd
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/menu_inventory_add.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_inventory_add">
+	<menu label="Upload" name="upload">
+		<menu_item_call label="Plaatje (L$[COST])..." name="Upload Image"/>
+		<menu_item_call label="Geluid (L$[COST])..." name="Upload Sound"/>
+		<menu_item_call label="Animatie (L$[COST])..." name="Upload Animation"/>
+		<menu_item_call label="Bulk (L$[COST] per bestand)..." name="Bulk Upload"/>
+	</menu>
+	<menu_item_call label="Nieuwe Map" name="New Folder"/>
+	<menu_item_call label="Nieuw Script" name="New Script"/>
+	<menu_item_call label="Nieuw Notitie" name="New Note"/>
+	<menu_item_call label="Nieuw Gebaar" name="New Gesture"/>
+	<menu label="Nieuwe Kleding" name="New Clothes">
+		<menu_item_call label="Nieuw Overhemd" name="New Shirt"/>
+		<menu_item_call label="Nieuwe Broek" name="New Pants"/>
+		<menu_item_call label="Nieuwe Schoenen" name="New Shoes"/>
+		<menu_item_call label="Nieuwe Sokken" name="New Socks"/>
+		<menu_item_call label="Nieuw Jas" name="New Jacket"/>
+		<menu_item_call label="Nieuw Rok" name="New Skirt"/>
+		<menu_item_call label="Nieuwe Handschoenen" name="New Gloves"/>
+		<menu_item_call label="Nieuw Hemd" name="New Undershirt"/>
+		<menu_item_call label="Nieuwe Onderbroek" name="New Underpants"/>
+		<menu_item_call label="Nieuwe Alpha" name="New Alpha"/>
+		<menu_item_call label="Nieuwe Tattoo" name="New Tattoo"/>
+	</menu>
+	<menu label="Nieuwe Lichaamsdelen" name="New Body Parts">
+		<menu_item_call label="Nieuwe Vorm" name="New Shape"/>
+		<menu_item_call label="Nieuwe Huid" name="New Skin"/>
+		<menu_item_call label="Nieuw Haar" name="New Hair"/>
+		<menu_item_call label="Nieuwe Ogen" name="New Eyes"/>
+	</menu>
+</menu>
diff --git a/indra/newview/skins/default/xui/nl/menu_picks.xml b/indra/newview/skins/default/xui/nl/menu_picks.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2e53dbda589bdb1c908cff35bf78805ce502a519
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/menu_picks.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Picks">
+	<menu_item_call label="Info" name="pick_info"/>
+	<menu_item_call label="Bewerken" name="pick_edit"/>
+	<menu_item_call label="Teleport" name="pick_teleport"/>
+	<menu_item_call label="Kaart" name="pick_map"/>
+	<menu_item_call label="Verweideren" name="pick_delete"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_roles.xml b/indra/newview/skins/default/xui/nl/panel_group_roles.xml
index ffaaa8137a9a8d6143994d438bc7a7b5e3ed7763..507906c0d7c601a63ef561908c5d47903431ec18 100644
--- a/indra/newview/skins/default/xui/nl/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/nl/panel_group_roles.xml
@@ -1,92 +1,50 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel label="Leden &amp; Rollen" name="roles_tab">
-	<string name="default_needs_apply_text">
-		Er zijn niet toegepaste wijzigingen op de huidige sub-tab.
-	</string>
-	<string name="want_apply_text">
-		Wilt u deze wijzigingen toepassen?
-	</string>
-	<button label="?" name="help_button"/>
-	<panel name="members_header">
-		<text name="static">
-			Leden &amp; Rollen
-		</text>
-		<text name="static2">
-			Groepsleden krijgen Rollen met Mogelijkheden toegekend. Deze instellingen
-kunnen eenvoudig aangepast worden, zodat meer organisatie en flexibiliteit
-mogelijk is.
-		</text>
-	</panel>
-	<panel name="roles_header">
-		<text name="static">
-			Rollen
-		</text>
-		<text name="role_properties_modifiable">
-			Selecteer een Rol hieronder. U kunt zijn Naam, Omschrijving en
-Lid Titel wijzigen.
-		</text>
-		<text name="role_properties_not_modifiable">
-			Selecteer een Rol hieronder om zijn eigenschappen, Leden en
-toegestane Mogelijkheden te bekijken.
-		</text>
-		<text bottom_delta="-28" name="role_actions_modifiable">
-			U kunt ook Mogelijkheden aan de Rol toekennen.
-		</text>
-		<text name="role_actions_not_modifiable">
-			U kunt de toegekende Mogelijkheden bekijken, maar niet wijzigen.
-		</text>
-	</panel>
-	<panel name="actions_header">
-		<text name="static">
-			Mogelijkheden
-		</text>
-		<text name="static2">
-			U kunt de Omschrijving van een Mogelijkheid bekijken en welke Rollen en
-Leden de Mogelijkheid kunnen uitvoeren.
-		</text>
-	</panel>
+	<panel.string name="default_needs_apply_text">
+		Er zijn niet opgeslagen veranderingen op de huidige tab
+	</panel.string>
+	<panel.string name="want_apply_text">
+		Wilt u deze wijzigingen opslaan?
+	</panel.string>
 	<tab_container height="164" name="roles_tab_container">
-		<panel height="148" label="Leden" name="members_sub_tab" tool_tip="Leden">
-			<line_editor bottom="127" name="search_text"/>
-			<button label="Zoeken" name="search_button"/>
-			<button label="Alles Tonen" name="show_all_button"/>
-			<name_list  bottom_delta="-105" height="104" name="member_list">
-				<column label="Lid Naam" name="name"/>
-				<column label="Gedoneerde Tier" name="donated"/>
-				<column label="Laatste Login" name="online"/>
-			</name_list>
-			<button label="Nieuw Lid Uitnodigen..." name="member_invite"/>
-			<button label="Uitwerpen uit de Groep" name="member_eject"/>
-			<string name="help_text">
+		<panel height="148" label="LEDEN" name="members_sub_tab" tool_tip="Leden">
+			<panel.string name="help_text">
 				U kunt Rollen aan Leden toewijzen of van Leden afnemen. Selecteer meerdere Leden door de Ctrl toets ingedrukt te houden en op hun namen te klikken.
-			</string>
+			</panel.string>
+			<filter_editor label="Filter Leden" name="filter_input"/>
+			<name_list bottom_delta="-105" height="104" name="member_list">
+				<name_list.columns label="Lid Naam" name="name"/>
+				<name_list.columns label="Donaties" name="donated"/>
+				<name_list.columns label="Laatste Login" name="online"/>
+			</name_list>
+			<button label="Uitnodigen" name="member_invite"/>
+			<button label="Uitwerpen" name="member_eject"/>
 		</panel>
-		<panel height="148" label="Rollen" name="roles_sub_tab">
-			<line_editor bottom="127" name="search_text"/>
-			<button label="Zoeken" name="search_button"/>
-			<button label="Alles Tonen" name="show_all_button"/>
+		<panel height="148" label="ROLLEN" name="roles_sub_tab">
+			<panel.string name="help_text">
+				Rollen hebben een titel en een toegestane lijst met Vaardigheden die Leden kunnen uitvoeren. Leden kunnen tot 1 of meer Rollen behoren. Een groep kan tot 10 Rollen bevatten, inclusief de Iedereen en Eigenaren Rollen.
+			</panel.string>
+			<panel.string name="cant_delete_role">
+				De &apos;Iedereen&apos; en &apos;Eigenaren&apos; Rollen zijn speciaal en kunnen niet verwijderd worden.
+			</panel.string>
+			<panel.string name="power_folder_icon">
+				Inv_FolderClosed
+			</panel.string>
+			<filter_editor label="Filter Rollen" name="filter_input"/>
 			<scroll_list bottom_delta="-104" height="104" name="role_list">
-				<column label="Rol Naam" name="name"/>
-				<column label="Titel" name="title"/>
-				<column label="Leden" name="members"/>
+				<scroll_list.columns label="Rol" name="name"/>
+				<scroll_list.columns label="Titel" name="title"/>
+				<scroll_list.columns label="Leden" name="members"/>
 			</scroll_list>
-			<button label="Nieuwe Rol Maken..." name="role_create"/>
+			<button label="Nieuwe Rol..." name="role_create"/>
 			<button label="Rol Verwijderen" name="role_delete"/>
-			<string name="help_text">
-				Rollen hebben een titel en een toegestane lijst met Mogelijkheden die Leden kunnen uitvoeren. Leden kunnen tot 1 of meer Rollen behoren. Een groep kan tot 10 Rollen bevatten, inclusief de Iedereen en Eigenaren Rollen.
-			</string>
-			<string name="cant_delete_role">
-				De &apos;Iedereen&apos; en &apos;Eigenaren&apos; Rollen zijn speciaal en kunnen niet verwijderd worden.
-			</string>
 		</panel>
-		<panel height="148" label="Mogelijkheden" name="actions_sub_tab">
-			<line_editor bottom="127" name="search_text"/>
-			<button label="Zoeken" name="search_button"/>
-			<button label="Alles Tonen" name="show_all_button"/>
-			<scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Selecteer een Mogelijkheid om meer details te bekijken."/>
-			<string name="help_text">
+		<panel height="148" label="VAARDIGHEDEN" name="actions_sub_tab" tool_tip="Je kan een vaardigheid&apos;s beschrijving en welke Rollen en Leden kunnen uitvoeren van de Vaardigheid.">
+			<panel.string name="help_text">
 				Mogelijkheden stellen leden in staat om specifieke dingen in een groep te doen. Er is een brede variëteit aan Mogelijkheden.
-			</string>
+			</panel.string>
+			<filter_editor label="Filter Vaardigheden" name="filter_input"/>
+			<scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Selecteer een Vaardigheid om meer details te bekijken"/>
 		</panel>
 	</tab_container>
 	<panel name="members_footer">
@@ -96,15 +54,12 @@ Leden de Mogelijkheid kunnen uitvoeren.
 		<text name="static2">
 			Toegestane Mogelijkheden
 		</text>
-		<scroll_list name="member_allowed_actions" tool_tip="Kijk voor details van elke Toegestane Mogelijkheid in de Mogelijkheden tab."/>
+		<scroll_list name="member_allowed_actions" tool_tip="Voor details van elke Toegestane Vaardigheid in de Mogelijkheden tab"/>
 	</panel>
 	<panel name="roles_footer">
 		<text name="static">
 			Naam
 		</text>
-		<text name="static2">
-			Omschrijving
-		</text>
 		<line_editor name="role_name">
 			Werknemers
 		</line_editor>
@@ -114,30 +69,33 @@ Leden de Mogelijkheid kunnen uitvoeren.
 		<line_editor name="role_title">
 			(wachten)
 		</line_editor>
+		<text name="static2">
+			Omschrijving
+		</text>
 		<text_editor name="role_description">
 			(wachten)
 		</text_editor>
 		<text name="static4">
-			Toegewezen Leden
+			Toegewezen Rollen
 		</text>
+		<check_box label="Leden Onthullen" name="role_visible_in_list" tool_tip="Bepaalt of leden van deze rol zichtbaar zijn in de Algemeen tab voor mensen buiten de groep."/>
 		<text name="static5" tool_tip="Een lijst met Mogelijkheden die de geselecteerd rol kan uitvoeren.">
 			Toegestane Mogelijkheden
 		</text>
-		<check_box label="Leden zijn zichtbaar" name="role_visible_in_list" tool_tip="Bepaalt of leden van deze rol zichtbaar zijn in de Algemeen tab voor mensen buiten de groep."/>
-		<scroll_list name="role_allowed_actions" tool_tip="Kijk voor details van elke Toegestane Mogelijkheid in de Mogelijkheden tab."/>
+		<scroll_list name="role_allowed_actions" tool_tip="For details of each allowed ability see the abilities tab"/>
 	</panel>
 	<panel name="actions_footer">
 		<text name="static">
-			Omschrijving
+			Vaardigheid omschrijving
 		</text>
 		<text_editor name="action_description">
 			Dit is de Mogelijkheid &apos;Werp Leden uit deze Groep&apos;. Alleen een Eigenaar kan een andere Eigenaar uitwerpen.
 		</text_editor>
 		<text name="static2">
-			Rollen met Mogelijkheid
+			Rollen met deze vaardigheid
 		</text>
 		<text name="static3">
-			Leden met Mogelijkheid
+			Leden met deze vaardigheid
 		</text>
 	</panel>
 </panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_login.xml b/indra/newview/skins/default/xui/nl/panel_login.xml
index 235e15e7fbc0be23fdf501f4a29067cdc9dbc15e..bcc888061f9de9ef697b7d1ac7e7369bae7aa1aa 100644
--- a/indra/newview/skins/default/xui/nl/panel_login.xml
+++ b/indra/newview/skins/default/xui/nl/panel_login.xml
@@ -6,34 +6,36 @@
 	<panel.string name="forgot_password_url">
 		http://secondlife.com/account/request.php?lang=nl-NL
 	</panel.string>
-<panel name="login_widgets">
-	<text name="first_name_text">
-		Voornaam:
-	</text>
-	<text name="last_name_text">
-		Achternaam:
-	</text>
-	<text name="password_text">
-		Wachtwoord:
-	</text>
-	<text name="start_location_text">
-		Startlocatie:
-	</text>
-	<combo_box name="start_location_combo">
-		<combo_box.item name="MyHome" label="Mijn Thuis"/>
-		<combo_box.item name="MyLastLocation" label="Mijn Laatste Locatie"/>
-		<combo_box.item name="Typeregionname" label="&lt; Type regio naam &gt;"/>
-	</combo_box>
-	<check_box label="Onthoud wachtwoord" name="remember_check"/>
-	<button label="Inloggen" label_selected="Inloggen" name="connect_btn"/>
-	<text name="create_new_account_text">
-		Nieuw account maken
-	</text>
-	<text name="forgot_password_text">
-		Naam of wachtwoord vergeten?
-	</text>
-	<text name="channel_text">
-		[VERSION]
-	</text>
-</panel>
+	<panel name="login_widgets">
+		<text name="first_name_text">
+			Voornaam:
+		</text>
+		<line_editor name="first_name_edit" tool_tip="[SECOND_LIFE] Voornaam"/>
+		<text name="last_name_text">
+			Achternaam:
+		</text>
+		<line_editor name="last_name_edit" tool_tip="[SECOND_LIFE] Achternaam"/>
+		<text name="password_text">
+			Paswoord:
+		</text>
+		<button label="Inloggen" label_selected="Inloggen" name="connect_btn"/>
+		<text name="start_location_text">
+			Start locatie:
+		</text>
+		<combo_box name="start_location_combo">
+			<combo_box.item label="Mijn Laatste Locatie" name="MyLastLocation"/>
+			<combo_box.item label="Mijn Thuis" name="MyHome"/>
+			<combo_box.item label="&lt;Tik regio naam&gt;" name="Typeregionname"/>
+		</combo_box>
+		<check_box label="Onthoud paswoord" name="remember_check"/>
+		<text name="create_new_account_text">
+			Maak een nieuwe account
+		</text>
+		<text name="forgot_password_text">
+			Naam of paswoord vergeten?
+		</text>
+		<text name="channel_text">
+			[VERSION]
+		</text>
+	</panel>
 </panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_main_inventory.xml b/indra/newview/skins/default/xui/nl/panel_main_inventory.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c533cc20c0a39449c2b05e78bf91611dcbe7553a
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_main_inventory.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Dingen" name="main inventory panel">
+	<panel.string name="Title">
+		Dingen
+	</panel.string>
+	<filter_editor label="Filter" name="inventory search editor"/>
+	<tab_container name="inventory filter tabs">
+		<inventory_panel label="Alle Voorwerpen" name="All Items"/>
+		<inventory_panel label="Recente Voorwerpen" name="Recent Items"/>
+	</tab_container>
+	<panel name="bottom_panel">
+		<button name="options_gear_btn" tool_tip="Toon extra opties"/>
+		<button name="add_btn" tool_tip="Voeg nieuw voorwerp toe"/>
+		<dnd_button name="trash_btn" tool_tip="Remove selected item"/>
+	</panel>
+	<menu_bar name="Inventory Menu">
+		<menu label="Bestand" name="File">
+			<menu_item_call label="Open" name="Open"/>
+			<menu label="Upload" name="upload">
+				<menu_item_call label="Plaatje (L$[COST])..." name="Upload Image"/>
+				<menu_item_call label="Geluid (L$[COST])..." name="Upload Sound"/>
+				<menu_item_call label="Animatie (L$[COST])..." name="Upload Animation"/>
+				<menu_item_call label="Bulk (L$[COST] per bestand)..." name="Bulk Upload"/>
+			</menu>
+			<menu_item_call label="Nieuw Venster" name="New Window"/>
+			<menu_item_call label="Toon Filters" name="Show Filters"/>
+			<menu_item_call label="Reset Filters" name="Reset Current"/>
+			<menu_item_call label="Sluit Alle Mappen" name="Close All Folders"/>
+			<menu_item_call label="Prullenbak Leegmaken" name="Empty Trash"/>
+			<menu_item_call label="Leeg Verloren En Gevonden" name="Empty Lost And Found"/>
+		</menu>
+		<menu label="Maken" name="Create">
+			<menu_item_call label="Nieuwe Map" name="New Folder"/>
+			<menu_item_call label="Nieuw Script" name="New Script"/>
+			<menu_item_call label="Nieuwe Notitie" name="New Note"/>
+			<menu_item_call label="Nieuw Gebaar" name="New Gesture"/>
+			<menu label="Nieuwe Kleding" name="New Clothes">
+				<menu_item_call label="Nieuw Overhemd" name="New Shirt"/>
+				<menu_item_call label="Nieuwe Broek" name="New Pants"/>
+				<menu_item_call label="Nieuwe Schoenen" name="New Shoes"/>
+				<menu_item_call label="Nieuwe Sokken" name="New Socks"/>
+				<menu_item_call label="Nieuwe Jas" name="New Jacket"/>
+				<menu_item_call label="Nieuwe Rok" name="New Skirt"/>
+				<menu_item_call label="Nieuwe Handschoenen" name="New Gloves"/>
+				<menu_item_call label="Nieuw Hemd" name="New Undershirt"/>
+				<menu_item_call label="Nieuwe Onderbroek" name="New Underpants"/>
+				<menu_item_call label="Nieuwe Alpha" name="New Alpha"/>
+				<menu_item_call label="Nieuwe Tattoo" name="New Tattoo"/>
+			</menu>
+			<menu label="Nieuwe Lichaamsdelen" name="New Body Parts">
+				<menu_item_call label="Nieuwe Vorm" name="New Shape"/>
+				<menu_item_call label="Nieuwe Huid" name="New Skin"/>
+				<menu_item_call label="Nieuw Haar" name="New Hair"/>
+				<menu_item_call label="Nieuwe Ogen" name="New Eyes"/>
+			</menu>
+		</menu>
+		<menu label="Sorteer" name="Sort">
+			<menu_item_check label="Bij Naam" name="By Name"/>
+			<menu_item_check label="Bij Datum" name="By Date"/>
+			<menu_item_check label="Mappen Altijd Op Naam" name="Folders Always By Name"/>
+			<menu_item_check label="Syteemmappen Naar Boven" name="System Folders To Top"/>
+		</menu>
+	</menu_bar>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_estate.xml b/indra/newview/skins/default/xui/nl/panel_region_estate.xml
index 7a5fa801d913bf92e3e07625d4558d43abce1d3d..08b68c8d3059d0a40f9c963406011d1f155825ff 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_estate.xml
@@ -26,7 +26,7 @@ zullen alle regio&apos;s in de estate beïnvloeden.
 	<text name="Only Allow">
 		Beperk toegang tot:
 	</text>
-	<check_box label="Inwoners met betalingsinformatie &#10;opgeslagen" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/>
+	<check_box label="Inwoners met betalingsinformatie opgeslagen" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/>
 	<check_box label="Leeftijdgeverifieerde volwassenen" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie." bottom_delta="-30"/>
 	<check_box label="Voice chat toestaan" name="voice_chat_check"/>
 	<button label="?" name="voice_chat_help"/>
diff --git a/indra/newview/skins/default/xui/nl/panel_world_map.xml b/indra/newview/skins/default/xui/nl/panel_world_map.xml
index 11855b7fc12259f7f30178581246a0fe217f77ea..d9a0b66fbcc528ef5b4baaa3d7346663cd429ae9 100644
--- a/indra/newview/skins/default/xui/nl/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/nl/panel_world_map.xml
@@ -1,5 +1,11 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel name="world_map">
+	<panel.string name="Loading">
+		Laden...
+	</panel.string>
+	<panel.string name="InvalidLocation">
+		Ongeldige Locatie
+	</panel.string>
 	<panel.string name="world_map_north">
 		N
 	</panel.string>
diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml
index 0be5ec9e869f650e97cc75c7786e8a4de5e994d9..ae8d3b89dc134f3520623100f39d7507576589f3 100644
--- a/indra/newview/skins/default/xui/nl/strings.xml
+++ b/indra/newview/skins/default/xui/nl/strings.xml
@@ -4,10 +4,21 @@
      For example, the strings used in avatar chat bubbles, and strings 
      that are returned from one component and may appear in many places-->
 <strings>
-	<string name="create_account_url">http://join.secondlife.com/index.php?lang=nl-NL</string>
+	<string name="SUPPORT_SITE">
+		Second Life Ondersteunings Portaal
+	</string>
+	<string name="StartupDetectingHardware">
+		Detecteert hardware...
+	</string>
+	<string name="StartupLoading">
+		Laden
+	</string>
 	<string name="LoginInProgress">
 		Inloggen. Het kan lijken dat [APP_NAME] is vastgelopen. Wacht u alstublieft... .
 	</string>
+	<string name="LoginInProgressNoFrozen">
+		Inloggen...
+	</string>
 	<string name="LoginAuthenticating">
 		Authenticeren
 	</string>
@@ -26,11 +37,14 @@
 	<string name="LoginInitializingMultimedia">
 		Multimedia initialiseren...
 	</string>
+	<string name="LoginInitializingFonts">
+		Lettertypen laden...
+	</string>
 	<string name="LoginVerifyingCache">
-		Cache bestanden verifiëren (kan 60-90 seconden duren)...
+		Veriveren cache bestanden (kan 60-90 seconden duren)...
 	</string>
 	<string name="LoginProcessingResponse">
-		Antwoord verwerken...
+		Reactie Verwerken...
 	</string>
 	<string name="LoginInitializingWorld">
 		Wereld initialiseren...
@@ -56,9 +70,15 @@
 	<string name="LoginDownloadingClothing">
 		Kleding downloaden...
 	</string>
+	<string name="LoginFailedNoNetwork">
+		Netwerk Fout: Kon geen verbinding maken, kijk uw nerwerk connectie na alstublieft.
+	</string>
 	<string name="Quit">
 		Afsluiten
 	</string>
+	<string name="create_account_url">
+		http://join.secondlife.com/index.php?lang=nl-NL
+	</string>
 	<string name="AgentLostConnection">
 		Deze regio kan problemen ondervinden. Controleer alstublieft uw verbinding met het internet.
 	</string>
@@ -77,39 +97,9 @@
 	<string name="TooltipIsGroup">
 		(Groep)
 	</string>
-	<string name="TooltipFlagScript">
-		Script
-	</string>
-	<string name="TooltipFlagPhysics">
-		Fysiek
-	</string>
-	<string name="TooltipFlagTouch">
-		Aanraken
-	</string>
-	<string name="TooltipFlagL$">
-		L$
-	</string>
-	<string name="TooltipFlagDropInventory">
-		Deponeer inventaris
-	</string>
-	<string name="TooltipFlagPhantom">
-		Fantoom
-	</string>
-	<string name="TooltipFlagTemporary">
-		Tijdelijk
-	</string>
-	<string name="TooltipFlagRightClickMenu">
-		(Rechtsklikken voor menu)
-	</string>
-	<string name="TooltipFreeToCopy">
-		Vrij te kopiëren
-	</string>
 	<string name="TooltipForSaleL$">
 		Te koop: L$[AMOUNT]
 	</string>
-	<string name="TooltipForSaleMsg">
-		Te koop: [MESSAGE]
-	</string>
 	<string name="TooltipFlagGroupBuild">
 		Groep bouwen
 	</string>
@@ -137,6 +127,76 @@
 	<string name="TooltipMustSingleDrop">
 		Slechts een enkel item kan hier naartoe gesleept worden
 	</string>
+	<string name="TooltipHttpUrl">
+		Klik om deze web pagina te bekijken
+	</string>
+	<string name="TooltipSLURL">
+		Klik om deze locatie informatie te bekijken
+	</string>
+	<string name="TooltipAgentUrl">
+		Klik om deze inwoner zijn profiel te bekijken
+	</string>
+	<string name="TooltipGroupUrl">
+		Klik om deze groeps informatie te bekijken
+	</string>
+	<string name="TooltipEventUrl">
+		Klik om deze evenement informatie te bekijken
+	</string>
+	<string name="TooltipClassifiedUrl">
+		Klik om deze advertentie te bekijken
+	</string>
+	<string name="TooltipParcelUrl">
+		Klik om deze perceel informatie te bekijken
+	</string>
+	<string name="TooltipTeleportUrl">
+		Klik om  naar deze lokatie te teleporteren
+	</string>
+	<string name="TooltipObjectIMUrl">
+		Klik om deze object informatie te bekijken
+	</string>
+	<string name="TooltipMapUrl">
+		Klik om deze locatie op een map te bekijken
+	</string>
+	<string name="TooltipSLAPP">
+		Klik om het secondlife:// commando te starten
+	</string>
+	<string name="CurrentURL" value="HuidigeURL: [HuidigeURL]"/>
+	<string name="SLurlLabelTeleport">
+		Teleporteer naar
+	</string>
+	<string name="SLurlLabelShowOnMap">
+		Toon Map voor
+	</string>
+	<string name="BUTTON_CLOSE_DARWIN">
+		Sluiten (⌘W)
+	</string>
+	<string name="BUTTON_CLOSE_WIN">
+		Sluiten (Ctrl+W)
+	</string>
+	<string name="BUTTON_RESTORE">
+		Restore
+	</string>
+	<string name="BUTTON_MINIMIZE">
+		Minimaliseren
+	</string>
+	<string name="BUTTON_TEAR_OFF">
+		Afscheuren
+	</string>
+	<string name="BUTTON_DOCK">
+		Koppelen
+	</string>
+	<string name="BUTTON_UNDOCK">
+		Loskoppelen
+	</string>
+	<string name="BUTTON_HELP">
+		Toon Help
+	</string>
+	<string name="Searching">
+		Zoeken...
+	</string>
+	<string name="NoneFound">
+		Geen gevonden.
+	</string>
 	<string name="RetrievingData">
 		Ophalen...
 	</string>
@@ -191,8 +251,77 @@
 	<string name="AssetErrorUnknownStatus">
 		Onbekende status
 	</string>
-	<string name="AvatarEditingApparance">
-		(Uiterlijk bewerken)
+	<string name="texture">
+		textuur
+	</string>
+	<string name="sound">
+		geluid
+	</string>
+	<string name="calling card">
+		visitekaart
+	</string>
+	<string name="landmark">
+		landmarkering
+	</string>
+	<string name="legacy script">
+		legacy script
+	</string>
+	<string name="clothing">
+		kleding
+	</string>
+	<string name="object">
+		object
+	</string>
+	<string name="note card">
+		notecard
+	</string>
+	<string name="folder">
+		map
+	</string>
+	<string name="root">
+		root
+	</string>
+	<string name="lsl2 script">
+		LSL2 script
+	</string>
+	<string name="lsl bytecode">
+		LSL bytecode
+	</string>
+	<string name="tga texture">
+		tga textuur
+	</string>
+	<string name="body part">
+		lichaamsdeel
+	</string>
+	<string name="snapshot">
+		foto
+	</string>
+	<string name="lost and found">
+		Verloren en Gevonden
+	</string>
+	<string name="targa image">
+		targa plaatje
+	</string>
+	<string name="trash">
+		Prullenbak
+	</string>
+	<string name="jpeg image">
+		jpeg plaatje
+	</string>
+	<string name="animation">
+		animatie
+	</string>
+	<string name="gesture">
+		gebaar
+	</string>
+	<string name="simstate">
+		simstate
+	</string>
+	<string name="favorite">
+		favorieten
+	</string>
+	<string name="symbolic link">
+		link
 	</string>
 	<string name="AvatarAway">
 		Afwezig
@@ -414,7 +543,19 @@
 		Laden...
 	</string>
 	<string name="worldmap_offline">
-		Offline
+		Off line
+	</string>
+	<string name="worldmap_results_none_found">
+		Geen gevonden.
+	</string>
+	<string name="Ok">
+		OK
+	</string>
+	<string name="Premature end of file">
+		Vroegtijdig eind van bestand
+	</string>
+	<string name="ST_NO_JOINT">
+		Kan niet ROOT of JOINT vinden.
 	</string>
 	<string name="whisper">
 		fluistert:
@@ -422,6 +563,57 @@
 	<string name="shout">
 		schreeuwt:
 	</string>
+	<string name="ringing">
+		Verbinden met in-wereld voice chat...
+	</string>
+	<string name="connected">
+		Verbonden
+	</string>
+	<string name="unavailable">
+		Voice is niet beschikbaar op uw huidige locatie
+	</string>
+	<string name="hang_up">
+		Verbinding met in-wereld voicechat verbroken
+	</string>
+	<string name="ScriptQuestionCautionChatGranted">
+		&apos;[OBJECTNAME]&apos;, een object van &apos;[OWNERNAME]&apos;, gevestigd in [REGIONNAME] op [REGIONPOS], is toestemming verleend om te: [PERMISSIONS].
+	</string>
+	<string name="ScriptQuestionCautionChatDenied">
+		&apos;[OBJECTNAME]&apos;, een object van &apos;[OWNERNAME]&apos;, gevestigd in [REGIONNAME] op [REGIONPOS], is toestemming geweigerd om te: [PERMISSIONS].
+	</string>
+	<string name="ScriptTakeMoney">
+		Linden dollars (L$) van u wegnemen
+	</string>
+	<string name="ActOnControlInputs">
+		Acteren op uw bedieningsinvoer
+	</string>
+	<string name="RemapControlInputs">
+		Uw bedieningsinvoer herdefiniëren
+	</string>
+	<string name="AnimateYourAvatar">
+		Animeer uw avatar
+	</string>
+	<string name="AttachToYourAvatar">
+		Bevestig aan uw avatar
+	</string>
+	<string name="ReleaseOwnership">
+		Eigendom vrijgeven en openbaar worden
+	</string>
+	<string name="LinkAndDelink">
+		Koppelen met en ontkoppelen van andere objecten
+	</string>
+	<string name="AddAndRemoveJoints">
+		Toevoegen en verwijderen koppelingen met andere objecten
+	</string>
+	<string name="ChangePermissions">
+		Wijzig zijn permissies
+	</string>
+	<string name="TrackYourCamera">
+		Volg uw camera
+	</string>
+	<string name="ControlYourCamera">
+		Bedien uw camera
+	</string>
 	<string name="SIM_ACCESS_PG">
 		PG
 	</string>
@@ -440,8 +632,6 @@
 	<string name="land_type_unknown">
 		(onbekend)
 	</string>
-	<string name="covenant_never_modified">Laatst gewijzigd: (nooit)</string>
-	<string name="covenant_modified">Laatst gewijzigd: </string>
 	<string name="all_files">
 		Alle bestanden
 	</string>
@@ -487,26 +677,122 @@
 	<string name="choose_the_directory">
 		Kies folder
 	</string>
-	<string name="accel-mac-control">
-		&#8963;
+	<string name="AvatarSetNotAway">
+		Niet Afwezig Instellen
 	</string>
-	<string name="accel-mac-command">
-		&#8984;
+	<string name="AvatarSetAway">
+		Afwezig Instellen
 	</string>
-	<string name="accel-mac-option">
-		&#8997;
+	<string name="AvatarSetNotBusy">
+		Niet Bezig Instellen
 	</string>
-	<string name="accel-mac-shift">
-		&#8679;
+	<string name="AvatarSetBusy">
+		Bezig Instellen
 	</string>
-	<string name="accel-win-control">
-		Ctrl+
+	<string name="shape">
+		Postuur
 	</string>
-	<string name="accel-win-alt">
-		Alt+
+	<string name="skin">
+		Huid
 	</string>
-	<string name="accel-win-shift">
-		Shift+
+	<string name="hair">
+		Haar
+	</string>
+	<string name="eyes">
+		Ogen
+	</string>
+	<string name="shirt">
+		Hemd
+	</string>
+	<string name="pants">
+		Broek
+	</string>
+	<string name="shoes">
+		Schoenen
+	</string>
+	<string name="socks">
+		Sokken
+	</string>
+	<string name="jacket">
+		Jas
+	</string>
+	<string name="gloves">
+		Handschoenen
+	</string>
+	<string name="undershirt">
+		onderhemd
+	</string>
+	<string name="underpants">
+		Onderbroek
+	</string>
+	<string name="skirt">
+		Rok
+	</string>
+	<string name="alpha">
+		Alpha
+	</string>
+	<string name="tattoo">
+		Tattoo
+	</string>
+	<string name="invalid">
+		ongeldig
+	</string>
+	<string name="next">
+		Volgende
+	</string>
+	<string name="ok">
+		OK
+	</string>
+	<string name="GroupNotifyGroupNotice">
+		Groep Mededeling
+	</string>
+	<string name="GroupNotifyGroupNotices">
+		Groep Mededelingen
+	</string>
+	<string name="GroupNotifySentBy">
+		Verzonden Door:
+	</string>
+	<string name="GroupNotifyAttached">
+		Bijgevoegt:
+	</string>
+	<string name="GroupNotifyViewPastNotices">
+		Bekijk alle mededelingen en bijlages van verzonden Mededelingen in het verleden
+	</string>
+	<string name="GroupNotifyOpenAttachment">
+		Open Bijlage
+	</string>
+	<string name="GroupNotifySaveAttachment">
+		Sla Bijlage Op
+	</string>
+	<string name="TeleportOffer">
+		Teleporteer Aanbieding
+	</string>
+	<string name="StartUpNotification">
+		[%d] Nieuwe mededelingen aangekomen terwijl u weg was ...
+	</string>
+	<string name="StartUpNotifications">
+		[%d] Nieuwe mededelingen aangekomen terwijl u weg was ...
+	</string>
+	<string name="OverflowInfoChannelString">
+		U heeft [%d] meer mededelingen
+	</string>
+	<string name="BodyPartsRightArm">
+		Rechter Arm
+	</string>
+	<string name="BodyPartsHead">
+		Hoofd
+	</string>
+	<string name="BodyPartsLeftArm">
+		Linker Arm
+	</string>
+	<string name="BodyPartsLeftLeg">
+		Linker Been
+	</string>
+	<string name="BodyPartsTorso">
+		Torso
+	</string>
+	<string name="BodyPartsRightLeg">
+		Rechter Been
 	</string>
 	<string name="GraphicsQualityLow">
 		Laag
@@ -517,73 +803,2407 @@
 	<string name="GraphicsQualityHigh">
 		Hoog
 	</string>
-	
-	<!-- PARCEL_CATEGORY_UI_STRING -->
-	<string name="Linden Location">Linden locatie</string>
-	<string name="Adult">Adult</string>
-	<string name="Arts&amp;Culture">Kunst &amp; Cultuur</string>
-	<string name="Business">Zakelijk</string>
-	<string name="Educational">Educatief</string>
-	<string name="Gaming">Spelen</string>
-	<string name="Hangout">Ontmoetingsplaats</string>
-	<string name="Newcomer Friendly">Nieuwkomervriendelijk</string>
-	<string name="Parks&amp;Nature">Parken &amp; natuur</string>
-	<string name="Residential">Woongebied</string>
-	<string name="Shopping">Winkelen</string>
-	<string name="Other">Anders</string>
-	
-	<string name="ringing">
-		Verbinden met in-wereld voice chat...
+	<string name="LeaveMouselook">
+		Druk op ESC om terug te keren naar Wereld Zicht
+	</string>
+	<string name="InventoryNoMatchingItems">
+		Geen overeenkomende objecten gevonden in de voorraad.
+	</string>
+	<string name="InventoryNoTexture">
+		Je hebt geen kopie van deze texture in je inventaris
+	</string>
+	<string name="no_transfer" value="(no transfer)"/>
+	<string name="no_modify" value="(no modify)"/>
+	<string name="no_copy" value="(no copy)"/>
+	<string name="worn" value="(worn)"/>
+	<string name="link" value="(link)"/>
+	<string name="broken_link" value="(broken_link)&quot;"/>
+	<string name="LoadingContents">
+		Loading contents...
+	</string>
+	<string name="NoContents">
+		No contents
+	</string>
+	<string name="WornOnAttachmentPoint" value="(worn on [ATTACHMENT_POINT])"/>
+	<string name="Chat" value="Chat :"/>
+	<string name="Sound" value="Geluid :"/>
+	<string name="Wait" value="--- Wachten :"/>
+	<string name="AnimFlagStop" value="Stop Animatie :"/>
+	<string name="AnimFlagStart" value="Start Animatie :"/>
+	<string name="Wave" value="Wave"/>
+	<string name="HelloAvatar" value="Hallo, avatar!"/>
+	<string name="ViewAllGestures" value="Bekijk alles &gt;"/>
+	<string name="Animations" value="Animaties,"/>
+	<string name="Calling Cards" value="Calling Cards,"/>
+	<string name="Clothing" value="Kleding,"/>
+	<string name="Gestures" value="Gestures,"/>
+	<string name="Landmarks" value="Landmarks,"/>
+	<string name="Notecards" value="Notecards,"/>
+	<string name="Objects" value="Objecten,"/>
+	<string name="Scripts" value="Scripts,"/>
+	<string name="Sounds" value="Geluiden,"/>
+	<string name="Textures" value="Textures,"/>
+	<string name="Snapshots" value="Snapshots,"/>
+	<string name="No Filters" value="Nee"/>
+	<string name="Since Logoff" value="- Sinds Afmelden"/>
+	<string name="InvFolder My Inventory">
+		Mijn Inventaris
+	</string>
+	<string name="InvFolder My Favorites">
+		Mijn Favorieten
+	</string>
+	<string name="InvFolder Library">
+		Bibliotheek
+	</string>
+	<string name="InvFolder Textures">
+		Textures
+	</string>
+	<string name="InvFolder Sounds">
+		Geluiden
 	</string>
-	<string name="connected">
-		Verbonden
+	<string name="InvFolder Calling Cards">
+		Calling Cards
 	</string>
-	<string name="unavailable">
-		Voice is niet beschikbaar op uw huidige locatie
+	<string name="InvFolder Landmarks">
+		Landmarks
 	</string>
-	<string name="hang_up">
-		Verbinding met in-wereld voicechat verbroken
+	<string name="InvFolder Scripts">
+		Scripts
+	</string>
+	<string name="InvFolder Clothing">
+		Kleding
+	</string>
+	<string name="InvFolder Objects">
+		Objecten
+	</string>
+	<string name="InvFolder Notecards">
+		Notecards
+	</string>
+	<string name="InvFolder New Folder">
+		Nieuwe Map
+	</string>
+	<string name="InvFolder Inventory">
+		Inventaris
+	</string>
+	<string name="InvFolder Uncompressed Images">
+		Ongecomprimeerde Afbeeldingen
+	</string>
+	<string name="InvFolder Body Parts">
+		Lichaams Delen
+	</string>
+	<string name="InvFolder Trash">
+		Afval
+	</string>
+	<string name="InvFolder Photo Album">
+		Foto Album
+	</string>
+	<string name="InvFolder Lost And Found">
+		Verloren en Gevonden
+	</string>
+	<string name="InvFolder Uncompressed Sounds">
+		Ongecomprimeerde Geluiden
+	</string>
+	<string name="InvFolder Animations">
+		Animaties
+	</string>
+	<string name="InvFolder Gestures">
+		Gebaren
+	</string>
+	<string name="InvFolder favorite">
+		Favoriten
+	</string>
+	<string name="InvFolder Current Outfit">
+		Huidige Uitrusting
+	</string>
+	<string name="InvFolder My Outfits">
+		Mijn Uitrustingen
+	</string>
+	<string name="InvFolder Friends">
+		Vrienden
+	</string>
+	<string name="InvFolder All">
+		Alles
+	</string>
+	<string name="Buy">
+		Koop
+	</string>
+	<string name="BuyforL$">
+		Koop voor L$
+	</string>
+	<string name="Stone">
+		Steen
+	</string>
+	<string name="Metal">
+		Metaal
+	</string>
+	<string name="Glass">
+		Glas
+	</string>
+	<string name="Wood">
+		Hout
+	</string>
+	<string name="Flesh">
+		Vlees
+	</string>
+	<string name="Plastic">
+		Plastic
+	</string>
+	<string name="Rubber">
+		Rubber
+	</string>
+	<string name="Light">
+		Licht
+	</string>
+	<string name="KBShift">
+		Shift
+	</string>
+	<string name="KBCtrl">
+		Ctrl
+	</string>
+	<string name="Chest">
+		Borstkas
+	</string>
+	<string name="Skull">
+		Schedel
+	</string>
+	<string name="Left Shoulder">
+		Linker Schouder
+	</string>
+	<string name="Right Shoulder">
+		Rechter Schouder
+	</string>
+	<string name="Left Hand">
+		Linker Hand
+	</string>
+	<string name="Right Hand">
+		Rechter Hand
+	</string>
+	<string name="Left Foot">
+		Linker Voet
+	</string>
+	<string name="Right Foot">
+		Rechter Voet
+	</string>
+	<string name="Spine">
+		Ruggegraat
+	</string>
+	<string name="Pelvis">
+		Bekken
+	</string>
+	<string name="Mouth">
+		Mond
+	</string>
+	<string name="Chin">
+		Kin
+	</string>
+	<string name="Left Ear">
+		Linker Oor
+	</string>
+	<string name="Right Ear">
+		Rechter Oor
+	</string>
+	<string name="Left Eyeball">
+		Linker Oogbal
+	</string>
+	<string name="Right Eyeball">
+		Rechter Oogbal
+	</string>
+	<string name="Nose">
+		Neus
+	</string>
+	<string name="R Upper Arm">
+		R Boven Arm
+	</string>
+	<string name="R Forearm">
+		R Onder Arm
+	</string>
+	<string name="L Upper Arm">
+		L Boven Arm
+	</string>
+	<string name="L Forearm">
+		L Onder Arm
+	</string>
+	<string name="Right Hip">
+		Rechter Heup
+	</string>
+	<string name="R Upper Leg">
+		R Boven Been
+	</string>
+	<string name="R Lower Leg">
+		R Onder Been
+	</string>
+	<string name="Left Hip">
+		Linker Heub
+	</string>
+	<string name="L Upper Leg">
+		L Boven Been
+	</string>
+	<string name="L Lower Leg">
+		L Onder Been
+	</string>
+	<string name="Stomach">
+		Maag
+	</string>
+	<string name="Left Pec">
+		Left Pec
+	</string>
+	<string name="Right Pec">
+		Right Pec
+	</string>
+	<string name="YearsMonthsOld">
+		[AGEYEARS] [AGEMONTHS] oud
+	</string>
+	<string name="YearsOld">
+		[AGEYEARS] oud
+	</string>
+	<string name="MonthsOld">
+		[AGEMONTHS] oud
+	</string>
+	<string name="WeeksOld">
+		[AGEWEEKS] oud
+	</string>
+	<string name="DaysOld">
+		[AGEDAYS] oud
+	</string>
+	<string name="TodayOld">
+		Vandaag toegetreden
+	</string>
+	<string name="AgeYearsA">
+		[COUNT] jaar
+	</string>
+	<string name="AgeYearsB">
+		[COUNT] jaar
+	</string>
+	<string name="AgeYearsC">
+		[COUNT] jaar
+	</string>
+	<string name="AgeMonthsA">
+		[COUNT] maand
+	</string>
+	<string name="AgeMonthsB">
+		[COUNT] maanden
+	</string>
+	<string name="AgeMonthsC">
+		[COUNT] maanden
+	</string>
+	<string name="AgeWeeksA">
+		[COUNT] week
+	</string>
+	<string name="AgeWeeksB">
+		[COUNT] weken
+	</string>
+	<string name="AgeWeeksC">
+		[COUNT] weken
+	</string>
+	<string name="AgeDaysA">
+		[COUNT] dag
+	</string>
+	<string name="AgeDaysB">
+		[COUNT] dagen
+	</string>
+	<string name="AgeDaysC">
+		[COUNT] dagen
+	</string>
+	<string name="GroupMembersA">
+		[COUNT] lid
+	</string>
+	<string name="GroupMembersB">
+		[COUNT] leden
+	</string>
+	<string name="GroupMembersC">
+		[COUNT] leden
+	</string>
+	<string name="AcctTypeResident">
+		bewoner
+	</string>
+	<string name="AcctTypeTrial">
+		Trial
+	</string>
+	<string name="AcctTypeCharterMember">
+		Charter Member
+	</string>
+	<string name="AcctTypeEmployee">
+		Linden Lab Werknemer
+	</string>
+	<string name="PaymentInfoUsed">
+		Betalings info gebruikt
+	</string>
+	<string name="PaymentInfoOnFile">
+		Betalings info op bestand
+	</string>
+	<string name="NoPaymentInfoOnFile">
+		Geen betalings info op bestand
+	</string>
+	<string name="AgeVerified">
+		Leeftijd gecontroleerd
+	</string>
+	<string name="NotAgeVerified">
+		Niet leeftijd gecontroleerd
+	</string>
+	<string name="Center 2">
+		Centrum 2
+	</string>
+	<string name="Top Right">
+		Rechts Boven
+	</string>
+	<string name="Top">
+		Boven
+	</string>
+	<string name="Top Left">
+		Links Boven
+	</string>
+	<string name="Center">
+		Centrum
+	</string>
+	<string name="Bottom Left">
+		Links beneden
+	</string>
+	<string name="Bottom">
+		Beneden
+	</string>
+	<string name="Bottom Right">
+		Rechts beneden
+	</string>
+	<string name="CompileQueueDownloadedCompiling">
+		Dedownload, nu samenstellen
+	</string>
+	<string name="CompileQueueScriptNotFound">
+		Script niet gevonden op server.
+	</string>
+	<string name="CompileQueueProblemDownloading">
+		Problem downloading
+	</string>
+	<string name="CompileQueueInsufficientPermDownload">
+		Onvoldoende rechten om een script te downloaden.
+	</string>
+	<string name="CompileQueueInsufficientPermFor">
+		Onvoldoende rechten voor
+	</string>
+	<string name="CompileQueueUnknownFailure">
+		Onbekende fout te downloaden
+	</string>
+	<string name="CompileQueueTitle">
+		Hercompilatie vooruitgang
+	</string>
+	<string name="CompileQueueStart">
+		Hercompilatie
+	</string>
+	<string name="ResetQueueTitle">
+		Reset Vooruitgang
+	</string>
+	<string name="ResetQueueStart">
+		reset
+	</string>
+	<string name="RunQueueTitle">
+		Set Running Progress
+	</string>
+	<string name="RunQueueStart">
+		set running
+	</string>
+	<string name="NotRunQueueTitle">
+		Set Not Running Progress
+	</string>
+	<string name="NotRunQueueStart">
+		set not running
+	</string>
+	<string name="CompileSuccessful">
+		Compileren succesvol!
+	</string>
+	<string name="CompileSuccessfulSaving">
+		Compileren succesvol, opslaan...
+	</string>
+	<string name="SaveComplete">
+		Opslaan gereed.
+	</string>
+	<string name="ObjectOutOfRange">
+		Script (object buiten het bereik)
+	</string>
+	<string name="GodToolsObjectOwnedBy">
+		Object [OBJECT] eigendom van [OWNER]
+	</string>
+	<string name="GroupsNone">
+		geen
+	</string>
+	<string name="Group" value="(group)"/>
+	<string name="Unknown">
+		(Unknown)
+	</string>
+	<string name="SummaryForTheWeek" value="Samenvatting voor deze week, vanaf"/>
+	<string name="NextStipendDay" value="The next stipend day is"/>
+	<string name="GroupIndividualShare" value="Groep       Individueel Aandeel"/>
+	<string name="Balance">
+		Banksaldo
+	</string>
+	<string name="Credits">
+		Credits
+	</string>
+	<string name="Debits">
+		Debiteert
+	</string>
+	<string name="Total">
+		Totaal
+	</string>
+	<string name="NoGroupDataFound">
+		Geen groep gegevens gevonden voor groep
+	</string>
+	<string name="IMParentEstate">
+		parent estate
+	</string>
+	<string name="IMMainland">
+		mainland
+	</string>
+	<string name="IMTeen">
+		tiener
+	</string>
+	<string name="RegionInfoError">
+		fout
+	</string>
+	<string name="RegionInfoAllEstatesOwnedBy">
+		all estates owned by [OWNER]
+	</string>
+	<string name="RegionInfoAllEstatesYouOwn">
+		all estates that you own
+	</string>
+	<string name="RegionInfoAllEstatesYouManage">
+		all estates that you manage for [OWNER]
+	</string>
+	<string name="RegionInfoAllowedResidents">
+		Toegestane bewoners: ([ALLOWEDAGENTS], max [MAXACCESS])
+	</string>
+	<string name="RegionInfoAllowedGroups">
+		Toegestane groepen: ([ALLOWEDGROUPS], max [MAXACCESS])
+	</string>
+	<string name="CursorPos">
+		Lijn [LINE], Column [COLUMN]
+	</string>
+	<string name="PanelDirCountFound">
+		[COUNT] gevonden
+	</string>
+	<string name="PanelContentsNewScript">
+		Nieuw Script
+	</string>
+	<string name="MuteByName">
+		(by name)
+	</string>
+	<string name="MuteAgent">
+		(resident)
+	</string>
+	<string name="MuteObject">
+		(object)
+	</string>
+	<string name="MuteGroup">
+		(group)
+	</string>
+	<string name="RegionNoCovenant">
+		There is no Covenant provided for this Estate.
+	</string>
+	<string name="RegionNoCovenantOtherOwner">
+		There is no Covenant provided for this Estate. The land on this estate is being sold by the Estate owner, not Linden Lab.  Please contact the Estate Owner for sales details.
+	</string>
+	<string name="covenant_last_modified">
+		Laatst bewerkt:
+	</string>
+	<string name="none_text" value="(none)"/>
+	<string name="never_text" value="(never)"/>
+	<string name="GroupOwned">
+		Groep Eigendom
+	</string>
+	<string name="Public">
+		Openbaar
+	</string>
+	<string name="ClassifiedClicksTxt">
+		Klikken: [TELEPORT] teleport, [MAP] map, [PROFILE] profiel
+	</string>
+	<string name="ClassifiedUpdateAfterPublish">
+		(zal bijwerken na publiceren)
+	</string>
+	<string name="MultiPreviewTitle">
+		Preview
+	</string>
+	<string name="MultiPropertiesTitle">
+		Eigenschappen
+	</string>
+	<string name="InvOfferAnObjectNamed">
+		Een object genaamd
+	</string>
+	<string name="InvOfferOwnedByGroup">
+		Eigendom van groep
+	</string>
+	<string name="InvOfferOwnedByUnknownGroup">
+		Eigendom van een onbekende groep
+	</string>
+	<string name="InvOfferOwnedBy">
+		Eigendom van
+	</string>
+	<string name="InvOfferOwnedByUnknownUser">
+		Eigendom van onbekende gebruiker
+	</string>
+	<string name="InvOfferGaveYou">
+		gaf je
+	</string>
+	<string name="InvOfferYouDecline">
+		You decline
+	</string>
+	<string name="InvOfferFrom">
+		van
+	</string>
+	<string name="GroupMoneyTotal">
+		Totaal
+	</string>
+	<string name="GroupMoneyBought">
+		kocht
+	</string>
+	<string name="GroupMoneyPaidYou">
+		betaald u
+	</string>
+	<string name="GroupMoneyPaidInto">
+		gestort
+	</string>
+	<string name="GroupMoneyBoughtPassTo">
+		bought pass to
+	</string>
+	<string name="GroupMoneyPaidFeeForEvent">
+		betaalde vergoeding voor evenement
+	</string>
+	<string name="GroupMoneyPaidPrizeForEvent">
+		betaalde prijs voor evenement
+	</string>
+	<string name="GroupMoneyBalance">
+		Banksaldo
+	</string>
+	<string name="GroupMoneyCredits">
+		Credits
+	</string>
+	<string name="GroupMoneyDebits">
+		Debiteert
+	</string>
+	<string name="ViewerObjectContents">
+		Inhoud
+	</string>
+	<string name="AcquiredItems">
+		Verworven objecten
+	</string>
+	<string name="Cancel">
+		Annuleren
+	</string>
+	<string name="UploadingCosts">
+		Uploading [%s] kosten
+	</string>
+	<string name="UnknownFileExtension">
+		Onbekende extensie [.%s]
+Verwacht .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
+	</string>
+	<string name="AddLandmarkNavBarMenu">
+		Voeg Landmark toe...
+	</string>
+	<string name="EditLandmarkNavBarMenu">
+		Bewerk Landmark...
+	</string>
+	<string name="accel-mac-control">
+		⌃
+	</string>
+	<string name="accel-mac-command">
+		⌘
+	</string>
+	<string name="accel-mac-option">
+		⌥
+	</string>
+	<string name="accel-mac-shift">
+		⇧
+	</string>
+	<string name="accel-win-control">
+		Ctrl+
+	</string>
+	<string name="accel-win-alt">
+		Alt+
+	</string>
+	<string name="accel-win-shift">
+		Shift+
+	</string>
+	<string name="FileSaved">
+		Bestand Opgeslagen
+	</string>
+	<string name="Receiving">
+		Ontvangen
+	</string>
+	<string name="AM">
+		AM
+	</string>
+	<string name="PM">
+		PM
+	</string>
+	<string name="PST">
+		PST
+	</string>
+	<string name="PDT">
+		PDT
+	</string>
+	<string name="Forward">
+		Vooruit
+	</string>
+	<string name="Left">
+		Links
+	</string>
+	<string name="Right">
+		Rechts
+	</string>
+	<string name="Back">
+		Achteruit
+	</string>
+	<string name="North">
+		Noord
+	</string>
+	<string name="South">
+		Zuid
+	</string>
+	<string name="West">
+		West
+	</string>
+	<string name="East">
+		Oost
+	</string>
+	<string name="Up">
+		Omhoog
+	</string>
+	<string name="Down">
+		Omlaag
+	</string>
+	<string name="Any Category">
+		Elke Categorie
+	</string>
+	<string name="Shopping">
+		Boodschappen
+	</string>
+	<string name="Land Rental">
+		Land Verhuur
+	</string>
+	<string name="Property Rental">
+		Verhuur van onroerend goed
+	</string>
+	<string name="Special Attraction">
+		Speciale Attractie
+	</string>
+	<string name="New Products">
+		Nieuwe Producten
+	</string>
+	<string name="Employment">
+		Employment
+	</string>
+	<string name="Wanted">
+		Gezocht
+	</string>
+	<string name="Service">
+		Service
+	</string>
+	<string name="Personal">
+		Personal
+	</string>
+	<string name="None">
+		Geen
+	</string>
+	<string name="Linden Location">
+		Linden locatie
+	</string>
+	<string name="Adult">
+		Adult
+	</string>
+	<string name="Arts&amp;Culture">
+		Kunst &amp; Cultuur
+	</string>
+	<string name="Business">
+		Zakelijk
+	</string>
+	<string name="Educational">
+		Educatief
+	</string>
+	<string name="Gaming">
+		Spelen
+	</string>
+	<string name="Hangout">
+		Ontmoetingsplaats
+	</string>
+	<string name="Newcomer Friendly">
+		Nieuwkomervriendelijk
+	</string>
+	<string name="Parks&amp;Nature">
+		Parken &amp; natuur
+	</string>
+	<string name="Residential">
+		Woongebied
+	</string>
+	<string name="Stage">
+		Stage
+	</string>
+	<string name="Other">
+		Anders
+	</string>
+	<string name="Any">
+		Any
+	</string>
+	<string name="You">
+		Jij
+	</string>
+	<string name="Multiple Media">
+		Meerdere Media
+	</string>
+	<string name="Play Media">
+		Play/Pause Media
+	</string>
+	<string name="MBCmdLineError">
+		An error was found parsing the command line.
+Please see: http://wiki.secondlife.com/wiki/Client_parameters
+Error:
+	</string>
+	<string name="MBCmdLineUsg">
+		[APP_NAME] Command line usage:
+	</string>
+	<string name="MBUnableToAccessFile">
+		[APP_NAME] is unable to access a file that it needs.
+
+This can be because you somehow have multiple copies running, or your system incorrectly thinks a file is open.
+If this message persists, restart your computer and try again.
+If it continues to persist, you may need to completely uninstall [APP_NAME] and reinstall it.
+	</string>
+	<string name="MBFatalError">
+		Fatal Error
+	</string>
+	<string name="MBRequiresAltiVec">
+		[APP_NAME] requires a processor with AltiVec (G4 or later).
+	</string>
+	<string name="MBAlreadyRunning">
+		[APP_NAME] is already running.
+Check your task bar for a minimized copy of the program.
+If this message persists, restart your computer.
+	</string>
+	<string name="MBFrozenCrashed">
+		[APP_NAME] appears to have frozen or crashed on the previous run.
+Would you like to send a crash report?
+	</string>
+	<string name="MBAlert">
+		Alert
+	</string>
+	<string name="MBNoDirectX">
+		[APP_NAME] is unable to detect DirectX 9.0b or greater.
+[APP_NAME] uses DirectX to detect hardware and/or outdated drivers that can cause stability problems, poor performance and crashes.  While you can run [APP_NAME] without it, we highly recommend running with DirectX 9.0b.
+
+Do you wish to continue?
+	</string>
+	<string name="MBWarning">
+		Warning
+	</string>
+	<string name="MBNoAutoUpdate">
+		Automatic updating is not yet implemented for Linux.
+Please download the latest version from www.secondlife.com.
+	</string>
+	<string name="MBRegClassFailed">
+		RegisterClass failed
+	</string>
+	<string name="MBError">
+		Error
+	</string>
+	<string name="MBFullScreenErr">
+		Unable to run fullscreen at [WIDTH] x [HEIGHT].
+Running in window.
+	</string>
+	<string name="MBDestroyWinFailed">
+		Shutdown Error while destroying window (DestroyWindow() failed)
+	</string>
+	<string name="MBShutdownErr">
+		Shutdown Error
+	</string>
+	<string name="MBDevContextErr">
+		Can&apos;t make GL device context
+	</string>
+	<string name="MBPixelFmtErr">
+		Can&apos;t find suitable pixel format
+	</string>
+	<string name="MBPixelFmtDescErr">
+		Can&apos;t get pixel format description
+	</string>
+	<string name="MBTrueColorWindow">
+		[APP_NAME] requires True Color (32-bit) to run.
+Please go to your computer&apos;s display settings and set the color mode to 32-bit.
+	</string>
+	<string name="MBAlpha">
+		[APP_NAME] is unable to run because it can&apos;t get an 8 bit alpha channel.  Usually this is due to video card driver issues.
+Please make sure you have the latest video card drivers installed.
+Also be sure your monitor is set to True Color (32-bit) in Control Panels &gt; Display &gt; Settings.
+If you continue to receive this message, contact the [SUPPORT_SITE].
+	</string>
+	<string name="MBPixelFmtSetErr">
+		Can&apos;t set pixel format
+	</string>
+	<string name="MBGLContextErr">
+		Can&apos;t create GL rendering context
+	</string>
+	<string name="MBGLContextActErr">
+		Can&apos;t activate GL rendering context
+	</string>
+	<string name="MBVideoDrvErr">
+		[APP_NAME] is unable to run because your video card drivers did not install properly, are out of date, or are for unsupported hardware. Please make sure you have the latest video card drivers and even if you do have the latest, try reinstalling them.
+
+If you continue to receive this message, contact the [SUPPORT_SITE].
+	</string>
+	<string name="5 O&apos;Clock Shadow">
+		Stoppels
+	</string>
+	<string name="All White">
+		Alles Wit
+	</string>
+	<string name="Anime Eyes">
+		Ogen Animeren
+	</string>
+	<string name="Arced">
+		Gebogen
+	</string>
+	<string name="Arm Length">
+		Arm Lengte
+	</string>
+	<string name="Attached">
+		Bijgevoegt
+	</string>
+	<string name="Attached Earlobes">
+		Bijgevoegde Oorlellen
+	</string>
+	<string name="Back Bangs">
+		Achterkant Pony
+	</string>
+	<string name="Back Bangs Down">
+		Achterkant Pony Neer
+	</string>
+	<string name="Back Bangs Up">
+		Achterkant Pony Omhoog
+	</string>
+	<string name="Back Fringe">
+		Achterkant Franje
+	</string>
+	<string name="Back Hair">
+		Achterkant Haar
+	</string>
+	<string name="Back Hair Down">
+		Achterkant Haar Neer
+	</string>
+	<string name="Back Hair Up">
+		Achterkant Haar Omhoog
+	</string>
+	<string name="Baggy">
+		Oogwallen
+	</string>
+	<string name="Bangs">
+		Pony
+	</string>
+	<string name="Bangs Down">
+		Pony Neer
+	</string>
+	<string name="Bangs Up">
+		Pony Omhoog
+	</string>
+	<string name="Beady Eyes">
+		Kraaloogjes
+	</string>
+	<string name="Belly Size">
+		Buik Grootte
+	</string>
+	<string name="Big">
+		Groot
+	</string>
+	<string name="Big Butt">
+		Grote Kont
+	</string>
+	<string name="Big Eyeball">
+		Grote Oogbol
+	</string>
+	<string name="Big Hair Back">
+		Haar Volume Achter
+	</string>
+	<string name="Big Hair Front">
+		Haar Volume Voor
+	</string>
+	<string name="Big Hair Top">
+		Haar Volume Boven
+	</string>
+	<string name="Big Head">
+		Groot Hoofd
+	</string>
+	<string name="Big Pectorals">
+		Groote Borstspieren
+	</string>
+	<string name="Big Spikes">
+		Grote Stekels
+	</string>
+	<string name="Black">
+		Zwart
+	</string>
+	<string name="Blonde">
+		Blond
+	</string>
+	<string name="Blonde Hair">
+		Blond Haar
+	</string>
+	<string name="Blush">
+		Blozen
+	</string>
+	<string name="Blush Color">
+		Bloos Kleur
+	</string>
+	<string name="Blush Opacity">
+		Bloos Opaciteit
+	</string>
+	<string name="Body Definition">
+		Lichaam Definitie
+	</string>
+	<string name="Body Fat">
+		Lichaam vet
+	</string>
+	<string name="Body Freckles">
+		Lichaam Sproeten
+	</string>
+	<string name="Body Thick">
+		Lichaam Dik
+	</string>
+	<string name="Body Thickness">
+		Lichaam Dikte
+	</string>
+	<string name="Body Thin">
+		Lichaam Dun
+	</string>
+	<string name="Bow Legged">
+		Boog Benen
+	</string>
+	<string name="Breast Buoyancy">
+		Borst Drijfvermogen
+	</string>
+	<string name="Breast Cleavage">
+		Borst Splijting
+	</string>
+	<string name="Breast Size">
+		Borst Grootte
+	</string>
+	<string name="Bridge Width">
+		Brug Breedte
+	</string>
+	<string name="Broad">
+		Breed
+	</string>
+	<string name="Brow Size">
+		Wenkbrauw Grootte
+	</string>
+	<string name="Bug Eyes">
+		Insect Ogen
+	</string>
+	<string name="Bugged Eyes">
+		Insect Ogen
+	</string>
+	<string name="Bulbous">
+		Bolle
+	</string>
+	<string name="Bulbous Nose">
+		Bolle Neus
+	</string>
+	<string name="Bushy Eyebrows">
+		Borstelige Wenkbrauwen
+	</string>
+	<string name="Bushy Hair">
+		Borstelig Haar
+	</string>
+	<string name="Butt Size">
+		Kont Grootte
+	</string>
+	<string name="bustle skirt">
+		Bustle Skirt
+	</string>
+	<string name="no bustle">
+		No Bustle
+	</string>
+	<string name="more bustle">
+		More Bustle
+	</string>
+	<string name="Chaplin">
+		Smalle Snor
+	</string>
+	<string name="Cheek Bones">
+		Jukbeenderen
+	</string>
+	<string name="Chest Size">
+		Borst Grootte
+	</string>
+	<string name="Chin Angle">
+		Kin Hoek
+	</string>
+	<string name="Chin Cleft">
+		Gespleten Kin
+	</string>
+	<string name="Chin Curtains">
+		Kin Gordijnen
+	</string>
+	<string name="Chin Depth">
+		Kin Diepte
+	</string>
+	<string name="Chin Heavy">
+		Kin Zware
+	</string>
+	<string name="Chin In">
+		Kin In
+	</string>
+	<string name="Chin Out">
+		Kin uit
+	</string>
+	<string name="Chin-Neck">
+		Kin-Nek
+	</string>
+	<string name="Clear">
+		Opschonen
+	</string>
+	<string name="Cleft">
+		Gespleten
+	</string>
+	<string name="Close Set Eyes">
+		Close Set Eyes
+	</string>
+	<string name="Closed">
+		Gesloten
+	</string>
+	<string name="Closed Back">
+		Gesloten Achterkant
+	</string>
+	<string name="Closed Front">
+		Gesloten Voorkant
+	</string>
+	<string name="Closed Left">
+		Gesloten Links
+	</string>
+	<string name="Closed Right">
+		Gesloten Rechts
+	</string>
+	<string name="Coin Purse">
+		Verminder Grootte
+	</string>
+	<string name="Collar Back">
+		Kraag Achterkant
+	</string>
+	<string name="Collar Front">
+		Kraag Voorkant
+	</string>
+	<string name="Corner Down">
+		Hoek Omlaag
+	</string>
+	<string name="Corner Normal">
+		Hoek Normaal
+	</string>
+	<string name="Corner Up">
+		Hoek Omhoog
+	</string>
+	<string name="Creased">
+		Gevouwen
+	</string>
+	<string name="Crooked Nose">
+		Kromte Neus
+	</string>
+	<string name="Cropped Hair">
+		Bijgesneden Haar
+	</string>
+	<string name="Cuff Flare">
+		Cuff Flare
+	</string>
+	<string name="Dark">
+		Donker
+	</string>
+	<string name="Dark Green">
+		Donker Groen
+	</string>
+	<string name="Darker">
+		Donkerder
+	</string>
+	<string name="Deep">
+		Diep
+	</string>
+	<string name="Default Heels">
+		Standaard Hielen
+	</string>
+	<string name="Default Toe">
+		Standaard Teen
+	</string>
+	<string name="Dense">
+		Dicht
+	</string>
+	<string name="Dense hair">
+		Dicht haar
+	</string>
+	<string name="Double Chin">
+		Dubbele Kin
+	</string>
+	<string name="Downturned">
+		Downturned
+	</string>
+	<string name="Duffle Bag">
+		Vergroot Grootte
+	</string>
+	<string name="Ear Angle">
+		Oor Hoek
+	</string>
+	<string name="Ear Size">
+		Oor Grootte
+	</string>
+	<string name="Ear Tips">
+		Oor Punten
+	</string>
+	<string name="Egg Head">
+		Ei Hoofd
+	</string>
+	<string name="Eye Bags">
+		Oog Zakken
+	</string>
+	<string name="Eye Color">
+		Oog Kleur
+	</string>
+	<string name="Eye Depth">
+		Oog Diepte
+	</string>
+	<string name="Eye Lightness">
+		Oog Lichtheid
+	</string>
+	<string name="Eye Opening">
+		Oog Opening
+	</string>
+	<string name="Eye Pop">
+		Asymmetrisch
+	</string>
+	<string name="Eye Size">
+		Oog Grootte
+	</string>
+	<string name="Eye Spacing">
+		Oog Afstand
+	</string>
+	<string name="Eyeball Size">
+		Oogbal Grootte
+	</string>
+	<string name="Eyebrow Arc">
+		Wenkbrauw Boog
+	</string>
+	<string name="Eyebrow Density">
+		Wenkbrauw Dichtheid
+	</string>
+	<string name="Eyebrow Height">
+		Wenkbrauw Hoogte
+	</string>
+	<string name="Eyebrow Points">
+		Wenkbrauw Punten
+	</string>
+	<string name="Eyebrow Size">
+		Eyebrow Grootte
+	</string>
+	<string name="Eyelash Length">
+		Eyelash Lengte
+	</string>
+	<string name="Eyeliner">
+		Eyeliner
+	</string>
+	<string name="Eyeliner Color">
+		Eyeliner Kleur
+	</string>
+	<string name="Eyes Back">
+		Ogen Achteruit
+	</string>
+	<string name="Eyes Bugged">
+		Insect Ogen
+	</string>
+	<string name="Eyes Forward">
+		Ogen Vooruit
+	</string>
+	<string name="Eyes Long Head">
+		Eyes Long Head
+	</string>
+	<string name="Eyes Shear Left Up">
+		Eyes Shear Left Up
+	</string>
+	<string name="Eyes Shear Right Up">
+		Eyes Shear Right Up
+	</string>
+	<string name="Eyes Short Head">
+		Eyes Short Head
+	</string>
+	<string name="Eyes Spread">
+		Eyes Spread
+	</string>
+	<string name="Eyes Sunken">
+		Ingevallen Ogen
+	</string>
+	<string name="Eyes Together">
+		Ogen Bij Elkaar
+	</string>
+	<string name="Face Shear">
+		Gezicht Gelijkheid
+	</string>
+	<string name="Facial Definition">
+		Gezichts Definitie
+	</string>
+	<string name="Far Set Eyes">
+		Ogen Uit Elkaar
+	</string>
+	<string name="Fat">
+		Dik
+	</string>
+	<string name="Fat Head">
+		Dik Hoofd
+	</string>
+	<string name="Fat Lips">
+		Dikke Lippen
+	</string>
+	<string name="Fat Lower">
+		Fat Lower
+	</string>
+	<string name="Fat Lower Lip">
+		Fat Lower Lip
+	</string>
+	<string name="Fat Torso">
+		Fat Torso
+	</string>
+	<string name="Fat Upper">
+		Fat Upper
+	</string>
+	<string name="Fat Upper Lip">
+		Dikke Boven Lip
+	</string>
+	<string name="Female">
+		Vrouw
+	</string>
+	<string name="Fingerless">
+		Vingerloos
+	</string>
+	<string name="Fingers">
+		Vingers
+	</string>
+	<string name="Flared Cuffs">
+		Verbrede Vorm
+	</string>
+	<string name="Flat">
+		Plat
+	</string>
+	<string name="Flat Butt">
+		Platte Kont
+	</string>
+	<string name="Flat Head">
+		Plat Hoofd
+	</string>
+	<string name="Flat Toe">
+		Platte Teen
+	</string>
+	<string name="Foot Size">
+		Voet Grootte
+	</string>
+	<string name="Forehead Angle">
+		Voorhoofd Hoek
+	</string>
+	<string name="Forehead Heavy">
+		Zwaar Voorhoofd
+	</string>
+	<string name="Freckles">
+		Sproeten
+	</string>
+	<string name="Front Bangs Down">
+		Voorkant Pony Omlaag
+	</string>
+	<string name="Front Bangs Up">
+		Voorkant Pony Omhoog
+	</string>
+	<string name="Front Fringe">
+		Voorste Rand
+	</string>
+	<string name="Front Hair">
+		Gezichtshaar
+	</string>
+	<string name="Front Hair Down">
+		Gezichtshaar Omlaag
+	</string>
+	<string name="Front Hair Up">
+		Gezichtshaar Omhoog
+	</string>
+	<string name="Full Back">
+		Volle Achterkant
+	</string>
+	<string name="Full Eyeliner">
+		Volle Eyeliner
+	</string>
+	<string name="Full Front">
+		Volle Voorkant
+	</string>
+	<string name="Full Hair Sides">
+		Full Hair Sides
+	</string>
+	<string name="Full Sides">
+		Volle Zijkanten
+	</string>
+	<string name="Glossy">
+		Glanzend
+	</string>
+	<string name="Glove Fingers">
+		Vinger Handschoenen
+	</string>
+	<string name="Glove Length">
+		Handschoen Lengte
+	</string>
+	<string name="Hair">
+		Haar
+	</string>
+	<string name="Hair Back">
+		Haar: Zwart
+	</string>
+	<string name="Hair Front">
+		Haar: Voorkant
+	</string>
+	<string name="Hair Sides">
+		Haar: Zijkant
+	</string>
+	<string name="Hair Sweep">
+		Hair Sweep
+	</string>
+	<string name="Hair Thickess">
+		Haar Dikheid
+	</string>
+	<string name="Hair Thickness">
+		Hair Dikheid
+	</string>
+	<string name="Hair Tilt">
+		Hair Tilt
+	</string>
+	<string name="Hair Tilted Left">
+		Hair Tilted Left
+	</string>
+	<string name="Hair Tilted Right">
+		Hair Tilted Right
+	</string>
+	<string name="Hair Volume">
+		Haar: Volume
+	</string>
+	<string name="Hand Size">
+		Hand Grootte
+	</string>
+	<string name="Handlebars">
+		Handlebars
+	</string>
+	<string name="Head Length">
+		Hoofd Lengte
+	</string>
+	<string name="Head Shape">
+		Hoofd Vorm
+	</string>
+	<string name="Head Size">
+		Hooft Grootte
+	</string>
+	<string name="Head Stretch">
+		Hoofd Uitrekken
+	</string>
+	<string name="Heel Height">
+		Hiel Hoogte
+	</string>
+	<string name="Heel Shape">
+		Hiel Vorm
+	</string>
+	<string name="Height">
+		Hoogte
+	</string>
+	<string name="High">
+		Hoog
+	</string>
+	<string name="High Heels">
+		Hoge Hielen
+	</string>
+	<string name="High Jaw">
+		Hoge Kaak
+	</string>
+	<string name="High Platforms">
+		High Platforms
+	</string>
+	<string name="High and Tight">
+		Hoog en Strak
+	</string>
+	<string name="Higher">
+		Hoger
+	</string>
+	<string name="Hip Length">
+		Heup Lengte
+	</string>
+	<string name="Hip Width">
+		Heup Breedte
+	</string>
+	<string name="In">
+		Naar Binnen
+	</string>
+	<string name="In Shdw Color">
+		Binnenste Schaduw Kleur
+	</string>
+	<string name="In Shdw Opacity">
+		Binnenste Schaduw Opaciteit
+	</string>
+	<string name="Inner Eye Corner">
+		Binnenste Oog Hoek
+	</string>
+	<string name="Inner Eye Shadow">
+		Binnenste Oog Schaduw
+	</string>
+	<string name="Inner Shadow">
+		Binnenste Schaduw
+	</string>
+	<string name="Jacket Length">
+		Jas Lengte
+	</string>
+	<string name="Jacket Wrinkles">
+		Jas Rimpels
+	</string>
+	<string name="Jaw Angle">
+		Kaak Hoek
+	</string>
+	<string name="Jaw Jut">
+		Jaw Jut
+	</string>
+	<string name="Jaw Shape">
+		Kaak Vorm
+	</string>
+	<string name="Join">
+		Samenvoegen
+	</string>
+	<string name="Jowls">
+		Kaken
+	</string>
+	<string name="Knee Angle">
+		Knie Hoek
+	</string>
+	<string name="Knock Kneed">
+		Knieën Naar binnen
+	</string>
+	<string name="Large">
+		Fors
+	</string>
+	<string name="Large Hands">
+		Grote Handen
+	</string>
+	<string name="Left Part">
+		Linker Deel
+	</string>
+	<string name="Leg Length">
+		Been Lengte
+	</string>
+	<string name="Leg Muscles">
+		Been Spieren
+	</string>
+	<string name="Less">
+		Minder
+	</string>
+	<string name="Less Body Fat">
+		Minder Lichaams Vet
+	</string>
+	<string name="Less Curtains">
+		Less Curtains
+	</string>
+	<string name="Less Freckles">
+		Minder Sproeten
+	</string>
+	<string name="Less Full">
+		Minder Vol
+	</string>
+	<string name="Less Gravity">
+		Minder Zwaartekracht
+	</string>
+	<string name="Less Love">
+		Less Love
+	</string>
+	<string name="Less Muscles">
+		Minder Spieren
+	</string>
+	<string name="Less Muscular">
+		Minder Spieren
+	</string>
+	<string name="Less Rosy">
+		Minder Rooskleurig
+	</string>
+	<string name="Less Round">
+		Minder Rond
+	</string>
+	<string name="Less Saddle">
+		Minder Heupen
+	</string>
+	<string name="Less Square">
+		Minder Vierkant
+	</string>
+	<string name="Less Volume">
+		Minder Volume
+	</string>
+	<string name="Less soul">
+		Minder Ziel
+	</string>
+	<string name="Lighter">
+		Lichter
+	</string>
+	<string name="Lip Cleft">
+		Gespleten Lip
+	</string>
+	<string name="Lip Cleft Depth">
+		Gespleten Lip Diepte
+	</string>
+	<string name="Lip Fullness">
+		Lip Volheid
+	</string>
+	<string name="Lip Pinkness">
+		Rozeheid Lippen
+	</string>
+	<string name="Lip Ratio">
+		Lip Ratio
+	</string>
+	<string name="Lip Thickness">
+		Lip Dikheid
+	</string>
+	<string name="Lip Width">
+		Lip Breedte
+	</string>
+	<string name="Lipgloss">
+		Lipgloss
+	</string>
+	<string name="Lipstick">
+		Lipstick
+	</string>
+	<string name="Lipstick Color">
+		Lipstick Kleur
+	</string>
+	<string name="Long">
+		Lang
+	</string>
+	<string name="Long Head">
+		Lang Hoofd
+	</string>
+	<string name="Long Hips">
+		Lange Heupen
+	</string>
+	<string name="Long Legs">
+		Lange Benen
+	</string>
+	<string name="Long Neck">
+		Lange Nek
+	</string>
+	<string name="Long Pigtails">
+		Long Pigtails
+	</string>
+	<string name="Long Ponytail">
+		Lange Paardenstaart
+	</string>
+	<string name="Long Torso">
+		Lang Torso
+	</string>
+	<string name="Long arms">
+		Lange Armen
+	</string>
+	<string name="Longcuffs">
+		Longcuffs
+	</string>
+	<string name="Loose Pants">
+		Losse Broek
+	</string>
+	<string name="Loose Shirt">
+		Los Shirt
+	</string>
+	<string name="Loose Sleeves">
+		Losse Mouwen
+	</string>
+	<string name="Love Handles">
+		Love Handles
+	</string>
+	<string name="Low">
+		Laag
+	</string>
+	<string name="Low Heels">
+		Lage Hielen
+	</string>
+	<string name="Low Jaw">
+		Lage Kaak
+	</string>
+	<string name="Low Platforms">
+		Lage Platforms
+	</string>
+	<string name="Low and Loose">
+		Laag en Los
+	</string>
+	<string name="Lower">
+		Lager
+	</string>
+	<string name="Lower Bridge">
+		Lagere Brug
+	</string>
+	<string name="Lower Cheeks">
+		Lagere Wangen
+	</string>
+	<string name="Male">
+		Man
+	</string>
+	<string name="Middle Part">
+		Middelste Deel
+	</string>
+	<string name="More">
+		Meer
+	</string>
+	<string name="More Blush">
+		Meer Blozen
+	</string>
+	<string name="More Body Fat">
+		Meer Lichaams Vet
+	</string>
+	<string name="More Curtains">
+		More Curtains
+	</string>
+	<string name="More Eyeshadow">
+		Meer Oogshadow
+	</string>
+	<string name="More Freckles">
+		Meer Sproeten
+	</string>
+	<string name="More Full">
+		Meer Vol
+	</string>
+	<string name="More Gravity">
+		Meer Zwaartekracht
+	</string>
+	<string name="More Lipstick">
+		Meer Lippenstift
+	</string>
+	<string name="More Love">
+		Meer Lovehandels
+	</string>
+	<string name="More Lower Lip">
+		Meer Onder Lip
+	</string>
+	<string name="More Muscles">
+		Meer Spieren
+	</string>
+	<string name="More Muscular">
+		Meer Spieren
+	</string>
+	<string name="More Rosy">
+		More Rosy
+	</string>
+	<string name="More Round">
+		Meer Rond
+	</string>
+	<string name="More Saddle">
+		Meer Heupen
+	</string>
+	<string name="More Sloped">
+		Meer Hellend
+	</string>
+	<string name="More Square">
+		Meer Vierkant
+	</string>
+	<string name="More Upper Lip">
+		Meer Boven Lip
+	</string>
+	<string name="More Vertical">
+		Meer Verticaal
+	</string>
+	<string name="More Volume">
+		Meer Volume
+	</string>
+	<string name="More soul">
+		Meer ziel
+	</string>
+	<string name="Moustache">
+		Snor
+	</string>
+	<string name="Mouth Corner">
+		Mond Hoek
+	</string>
+	<string name="Mouth Position">
+		Mond Positie
+	</string>
+	<string name="Mowhawk">
+		Hanekam
+	</string>
+	<string name="Muscular">
+		Gespiert
+	</string>
+	<string name="Mutton Chops">
+		Mutton Chops
+	</string>
+	<string name="Nail Polish">
+		Nagel Lak
+	</string>
+	<string name="Nail Polish Color">
+		Nagel Lak Kleur
+	</string>
+	<string name="Narrow">
+		Smal
+	</string>
+	<string name="Narrow Back">
+		Smalle Achterkant
+	</string>
+	<string name="Narrow Front">
+		Smalle Voorkant
+	</string>
+	<string name="Narrow Lips">
+		Smalle Lippen
+	</string>
+	<string name="Natural">
+		Natural
+	</string>
+	<string name="Neck Length">
+		Nek Lengte
+	</string>
+	<string name="Neck Thickness">
+		Nek Dikheid
+	</string>
+	<string name="No Blush">
+		Geen Bloos
+	</string>
+	<string name="No Eyeliner">
+		Geen Eyeliner
+	</string>
+	<string name="No Eyeshadow">
+		Geen Oogschaduw
+	</string>
+	<string name="No Heels">
+		Geen Hakken
+	</string>
+	<string name="No Lipgloss">
+		Geen Lipgloss
+	</string>
+	<string name="No Lipstick">
+		Geen Lippenstift
+	</string>
+	<string name="No Part">
+		Geen Deel
+	</string>
+	<string name="No Polish">
+		Geen Glans
+	</string>
+	<string name="No Red">
+		Geen Rood
+	</string>
+	<string name="No Spikes">
+		Geen Stekels
+	</string>
+	<string name="No White">
+		Geen Wit
+	</string>
+	<string name="No Wrinkles">
+		Geen Rimpels
+	</string>
+	<string name="Normal Lower">
+		Normaal Onder
+	</string>
+	<string name="Normal Upper">
+		Normaal Boven
+	</string>
+	<string name="Nose Left">
+		Neus Links
+	</string>
+	<string name="Nose Right">
+		Neus Rechts
+	</string>
+	<string name="Nose Size">
+		Neus Grootte
+	</string>
+	<string name="Nose Thickness">
+		Neus Dickheid
+	</string>
+	<string name="Nose Tip Angle">
+		Neus Top Hoek
+	</string>
+	<string name="Nose Tip Shape">
+		Neus Top Vorm
+	</string>
+	<string name="Nose Width">
+		Neus Breedte
+	</string>
+	<string name="Nostril Division">
+		Nostril Division
+	</string>
+	<string name="Nostril Width">
+		Neusgat Breedte
+	</string>
+	<string name="Old">
+		Oud
+	</string>
+	<string name="Opaque">
+		Ondoorzichtig
+	</string>
+	<string name="Open">
+		Open
+	</string>
+	<string name="Open Back">
+		Open Achterkant
+	</string>
+	<string name="Open Front">
+		Open Voorkant
+	</string>
+	<string name="Open Left">
+		Open Links
+	</string>
+	<string name="Open Right">
+		Open Rechts
+	</string>
+	<string name="Orange">
+		Oranje
+	</string>
+	<string name="Out">
+		Uit
+	</string>
+	<string name="Out Shdw Color">
+		Buitenste Schaduw Kleur
+	</string>
+	<string name="Out Shdw Opacity">
+		Buitenste Schaduw Opaciteit
+	</string>
+	<string name="Outer Eye Corner">
+		Buitenste Oog Hoek
+	</string>
+	<string name="Outer Eye Shadow">
+		Buitenste Oog Schaduw
+	</string>
+	<string name="Outer Shadow">
+		Buitenste Schaduw
+	</string>
+	<string name="Overbite">
+		Overbeet
+	</string>
+	<string name="Package">
+		Genitaliën
+	</string>
+	<string name="Painted Nails">
+		Gelakte Nagels
+	</string>
+	<string name="Pale">
+		Dof
+	</string>
+	<string name="Pants Crotch">
+		Broek Kruis
+	</string>
+	<string name="Pants Fit">
+		Broek Passend
+	</string>
+	<string name="Pants Length">
+		Broek Lengte
+	</string>
+	<string name="Pants Waist">
+		Broek Teille
+	</string>
+	<string name="Pants Wrinkles">
+		Broek Rimpels
+	</string>
+	<string name="Part">
+		Deel
+	</string>
+	<string name="Part Bangs">
+		Part Bangs
+	</string>
+	<string name="Pectorals">
+		Borstspieren
+	</string>
+	<string name="Pigment">
+		Pigment
+	</string>
+	<string name="Pigtails">
+		Pigtails
+	</string>
+	<string name="Pink">
+		Roze
+	</string>
+	<string name="Pinker">
+		Rozer
+	</string>
+	<string name="Platform Height">
+		Platform Hoogte
+	</string>
+	<string name="Platform Width">
+		Platform Breedte
+	</string>
+	<string name="Pointy">
+		Puntig
+	</string>
+	<string name="Pointy Heels">
+		Puntige Hielen
+	</string>
+	<string name="Pointy Toe">
+		Puntige Tenen
+	</string>
+	<string name="Ponytail">
+		Paardenstaard
+	</string>
+	<string name="Poofy Skirt">
+		Poofy Skirt
+	</string>
+	<string name="Pop Left Eye">
+		Asymmetrisch Links
+	</string>
+	<string name="Pop Right Eye">
+		Asymmetrisch Rechts
+	</string>
+	<string name="Puffy">
+		Opgezwollen
+	</string>
+	<string name="Puffy Eyelids">
+		Opgezwollen Oogleden
+	</string>
+	<string name="Rainbow Color">
+		Regenboog Kleur
+	</string>
+	<string name="Red Hair">
+		Rood Haar
+	</string>
+	<string name="Red Skin">
+		Rode Huid
+	</string>
+	<string name="Regular">
+		Normaal
+	</string>
+	<string name="Regular Muscles">
+		Normale Spieren
+	</string>
+	<string name="Right Part">
+		Rechter Deel
+	</string>
+	<string name="Rosy Complexion">
+		Rosy Complexion
+	</string>
+	<string name="Round">
+		Rond
+	</string>
+	<string name="Round Forehead">
+		Rond Voorhoofd
+	</string>
+	<string name="Ruddiness">
+		Rossige kleur
+	</string>
+	<string name="Ruddy">
+		Rossig
+	</string>
+	<string name="Rumpled Hair">
+		Rumpled Hair
+	</string>
+	<string name="Saddle Bags">
+		Saddle Bags
+	</string>
+	<string name="Saddlebags">
+		Saddlebags
+	</string>
+	<string name="Scrawny">
+		Magere
+	</string>
+	<string name="Scrawny Leg">
+		Mager Been
+	</string>
+	<string name="Separate">
+		Scheiden
+	</string>
+	<string name="Shading">
+		Shading
+	</string>
+	<string name="Shadow hair">
+		Schaduw Haar
+	</string>
+	<string name="Shallow">
+		Ondiep
+	</string>
+	<string name="Shear Back">
+		Shear Back
+	</string>
+	<string name="Shear Face">
+		Shear Face
+	</string>
+	<string name="Shear Front">
+		Shear Front
+	</string>
+	<string name="Shear Left">
+		Shear Left
+	</string>
+	<string name="Shear Left Up">
+		Shear Left Up
+	</string>
+	<string name="Shear Right">
+		Shear Right
+	</string>
+	<string name="Shear Right Up">
+		Shear Right Up
+	</string>
+	<string name="Sheared Back">
+		Sheared Back
+	</string>
+	<string name="Sheared Front">
+		Sheared Front
+	</string>
+	<string name="Shift Left">
+		Verplaats Links
+	</string>
+	<string name="Shift Mouth">
+		Verplaats Mond
+	</string>
+	<string name="Shift Right">
+		Verplaats Rechts
+	</string>
+	<string name="Shirt Bottom">
+		Hemd Onderkant
+	</string>
+	<string name="Shirt Fit">
+		Hemd Passend
+	</string>
+	<string name="Shirt Wrinkles">
+		Hemd Rimpels
+	</string>
+	<string name="Shoe Height">
+		Schoen Hoogte
+	</string>
+	<string name="Short">
+		Kort
+	</string>
+	<string name="Short Arms">
+		Korte Armen
+	</string>
+	<string name="Short Legs">
+		Korte Benen
+	</string>
+	<string name="Short Neck">
+		Korte Nek
+	</string>
+	<string name="Short Pigtails">
+		Short Pigtails
+	</string>
+	<string name="Short Ponytail">
+		Korte Paardenstaart
+	</string>
+	<string name="Short Sideburns">
+		Korte Bakkebaarden
+	</string>
+	<string name="Short Torso">
+		Korte Torso
+	</string>
+	<string name="Short hips">
+		Korte Heupen
+	</string>
+	<string name="Shoulders">
+		Shouders
+	</string>
+	<string name="Side Bangs">
+		Side Bangs
+	</string>
+	<string name="Side Bangs Down">
+		Side Bangs Down
+	</string>
+	<string name="Side Bangs Up">
+		Side Bangs Up
+	</string>
+	<string name="Side Fringe">
+		Side Fringe
+	</string>
+	<string name="Sideburns">
+		Bakkebaarden
+	</string>
+	<string name="Sides Hair">
+		Sides Hair
+	</string>
+	<string name="Sides Hair Down">
+		Sides Hair Down
+	</string>
+	<string name="Sides Hair Up">
+		Sides Hair Up
+	</string>
+	<string name="Skinny">
+		Broodmager
+	</string>
+	<string name="Skinny Neck">
+		Smalle Nek
+	</string>
+	<string name="Skirt Fit">
+		Skirt Fit
+	</string>
+	<string name="Skirt Length">
+		Rok Lengte
+	</string>
+	<string name="Slanted Forehead">
+		Schuin voorhoofd
+	</string>
+	<string name="Sleeve Length">
+		Mouw Lengte
+	</string>
+	<string name="Sleeve Looseness">
+		Mouw Losheid
+	</string>
+	<string name="Slit Back">
+		Spleet: Achter
+	</string>
+	<string name="Slit Front">
+		Spleet: Voor
+	</string>
+	<string name="Slit Left">
+		Spleet: Links
+	</string>
+	<string name="Slit Right">
+		Spleet: Rechts
+	</string>
+	<string name="Small">
+		Klein
+	</string>
+	<string name="Small Hands">
+		Kleine Handen
+	</string>
+	<string name="Small Head">
+		Klein Hoofd
+	</string>
+	<string name="Smooth">
+		Glad
+	</string>
+	<string name="Smooth Hair">
+		Glad Haar
+	</string>
+	<string name="Socks Length">
+		Sok Lengte
+	</string>
+	<string name="Some">
+		enkele
+	</string>
+	<string name="Soulpatch">
+		Soulpatch
+	</string>
+	<string name="Sparse">
+		Schaars
+	</string>
+	<string name="Spiked Hair">
+		Puntig Haar
+	</string>
+	<string name="Square">
+		Vierkant
+	</string>
+	<string name="Square Toe">
+		Vierkante Teen
+	</string>
+	<string name="Squash Head">
+		Squash Head
+	</string>
+	<string name="Squash/Stretch Head">
+		Squash/Stretch Head
+	</string>
+	<string name="Stretch Head">
+		Uitgerekt Hoofd
+	</string>
+	<string name="Sunken">
+		Verzonken
+	</string>
+	<string name="Sunken Chest">
+		Verzonken Borstkas
+	</string>
+	<string name="Sunken Eyes">
+		Verzonken Ogen
+	</string>
+	<string name="Sweep Back">
+		Sweep Back
+	</string>
+	<string name="Sweep Forward">
+		Sweep Forward
+	</string>
+	<string name="Swept Back">
+		Swept Back
+	</string>
+	<string name="Swept Back Hair">
+		Swept Back Hair
+	</string>
+	<string name="Swept Forward">
+		Swept Forward
+	</string>
+	<string name="Swept Forward Hair">
+		Swept Forward Hair
+	</string>
+	<string name="Tall">
+		Lang
+	</string>
+	<string name="Taper Back">
+		Spits Achter
+	</string>
+	<string name="Taper Front">
+		Spits Voor
+	</string>
+	<string name="Thick Heels">
+		Dikke Hielen
+	</string>
+	<string name="Thick Neck">
+		Dikke Nek
+	</string>
+	<string name="Thick Toe">
+		Dikke Teen
+	</string>
+	<string name="Thickness">
+		Dikheid
+	</string>
+	<string name="Thin">
+		Dun
+	</string>
+	<string name="Thin Eyebrows">
+		Dunne Wenkbrouwen
+	</string>
+	<string name="Thin Lips">
+		Dunne Lippen
+	</string>
+	<string name="Thin Nose">
+		Dunne Neus
+	</string>
+	<string name="Tight Chin">
+		Strakke Kin
+	</string>
+	<string name="Tight Cuffs">
+		Strakke Manchetten
+	</string>
+	<string name="Tight Pants">
+		Strakke Broek
+	</string>
+	<string name="Tight Shirt">
+		Strak Hemd
+	</string>
+	<string name="Tight Skirt">
+		Strakke Rok
+	</string>
+	<string name="Tight Sleeves">
+		Strakke Mouwen
+	</string>
+	<string name="Tilt Left">
+		Tilt Left
+	</string>
+	<string name="Tilt Right">
+		Tilt Right
+	</string>
+	<string name="Toe Shape">
+		Teen Vorm
+	</string>
+	<string name="Toe Thickness">
+		Teen Dikheid
+	</string>
+	<string name="Torso Length">
+		Borstkas Lengte
+	</string>
+	<string name="Torso Muscles">
+		Borstkas Spieren
+	</string>
+	<string name="Torso Scrawny">
+		Magere Borstkas
+	</string>
+	<string name="Unattached">
+		Niet Verbonden
+	</string>
+	<string name="Uncreased">
+		Uncreased
+	</string>
+	<string name="Underbite">
+		onderbeet
+	</string>
+	<string name="Unnatural">
+		Onnatuurlijk
+	</string>
+	<string name="Upper Bridge">
+		Boven Brug
+	</string>
+	<string name="Upper Cheeks">
+		Bovenste Wangen
+	</string>
+	<string name="Upper Chin Cleft">
+		Bovenste Kin Gespleten
+	</string>
+	<string name="Upper Eyelid Fold">
+		Bovenste Ooglid Gevouwen
+	</string>
+	<string name="Upturned">
+		Omgekeerde
+	</string>
+	<string name="Very Red">
+		Erg Rood
+	</string>
+	<string name="Waist Height">
+		Taille Hoogte
+	</string>
+	<string name="Well-Fed">
+		Goed Gevoed
+	</string>
+	<string name="White Hair">
+		Wit Haar
+	</string>
+	<string name="Wide">
+		Breed
+	</string>
+	<string name="Wide Back">
+		Breede Achterkant
+	</string>
+	<string name="Wide Front">
+		Breed Voorkant
+	</string>
+	<string name="Wide Lips">
+		Breed Lippen
+	</string>
+	<string name="Wild">
+		Wild
+	</string>
+	<string name="Wrinkles">
+		Rimpels
+	</string>
+	<string name="LocationCtrlAddLandmarkTooltip">
+		Add to My Landmarks
+	</string>
+	<string name="LocationCtrlEditLandmarkTooltip">
+		Edit My Landmark
+	</string>
+	<string name="LocationCtrlInfoBtnTooltip">
+		See more info about the current location
+	</string>
+	<string name="LocationCtrlComboBtnTooltip">
+		My location history
+	</string>
+	<string name="UpdaterWindowTitle">
+		[APP_NAME] Update
+	</string>
+	<string name="UpdaterNowUpdating">
+		Now updating [APP_NAME]...
+	</string>
+	<string name="UpdaterNowInstalling">
+		Installing [APP_NAME]...
+	</string>
+	<string name="UpdaterUpdatingDescriptive">
+		Your [APP_NAME] Viewer is being updated to the latest release.  This may take some time, so please be patient.
+	</string>
+	<string name="UpdaterProgressBarTextWithEllipses">
+		Downloading update...
+	</string>
+	<string name="UpdaterProgressBarText">
+		Downloading update
+	</string>
+	<string name="UpdaterFailDownloadTitle">
+		Failed to download update
+	</string>
+	<string name="UpdaterFailUpdateDescriptive">
+		An error occurred while updating [APP_NAME]. Please download the latest version from www.secondlife.com.
+	</string>
+	<string name="UpdaterFailInstallTitle">
+		Failed to install update
+	</string>
+	<string name="UpdaterFailStartTitle">
+		Failed to start viewer
+	</string>
+	<string name="IM_logging_string">
+		-- Instant message logging enabled --
+	</string>
+	<string name="IM_typing_start_string">
+		[NAME] is typing...
+	</string>
+	<string name="Unnamed">
+		(Unnamed)
+	</string>
+	<string name="IM_moderated_chat_label">
+		(Moderated: Voices off by default)
+	</string>
+	<string name="IM_unavailable_text_label">
+		Text chat is not available for this call.
+	</string>
+	<string name="IM_muted_text_label">
+		Your text chat has been disabled by a Group Moderator.
+	</string>
+	<string name="IM_default_text_label">
+		Click here to instant message.
+	</string>
+	<string name="IM_to_label">
+		To
+	</string>
+	<string name="IM_moderator_label">
+		(Moderator)
 	</string>
-  <string name="ScriptQuestionCautionChatGranted">
-	&apos;[OBJECTNAME]&apos;, een object van &apos;[OWNERNAME]&apos;, gevestigd in [REGIONNAME] op [REGIONPOS], is toestemming verleend om te: [PERMISSIONS].
-  </string>
-  <string name="ScriptQuestionCautionChatDenied">
-	&apos;[OBJECTNAME]&apos;, een object van &apos;[OWNERNAME]&apos;, gevestigd in [REGIONNAME] op [REGIONPOS], is toestemming geweigerd om te: [PERMISSIONS].
-  </string>
-  <string name="ScriptTakeMoney">
-	Linden dollars (L$) van u wegnemen
-  </string>
-  <string name="ActOnControlInputs">
-	Acteren op uw bedieningsinvoer
-  </string>
-  <string name="RemapControlInputs">
-	Uw bedieningsinvoer herdefiniëren
-  </string>
-  <string name="AnimateYourAvatar">
-	Animeer uw avatar
-  </string>
-  <string name="AttachToYourAvatar">
-	Bevestig aan uw avatar
-  </string>
-  <string name="ReleaseOwnership">
-	Eigendom vrijgeven en openbaar worden
-  </string>
-  <string name="LinkAndDelink">
-	Koppelen met en ontkoppelen van andere objecten
-  </string>
-  <string name="AddAndRemoveJoints">
-	Toevoegen en verwijderen koppelingen met andere objecten
-  </string>
-  <string name="ChangePermissions">
-	Wijzig zijn permissies
-  </string>
-  <string name="TrackYourCamera">
-	Volg uw camera
-  </string>
-  <string name="ControlYourCamera">
-	Bedien uw camera
-  </string>
-	
 	<string name="only_user_message">
 		U bent de enige gebruiker in deze sessie.
 	</string>
@@ -626,31 +3246,4 @@
 	<string name="close_on_no_ability">
 		U heeft niet langer de mogelijkheid om in deze chatsessie te zijn.
 	</string>
-			<string name="AcctTypeResident">
-				Inwoner
-			</string>
-			<string name="AcctTypeTrial">
-				Proef
-			</string>
-			<string name="AcctTypeCharterMember">
-				Charter lid
-			</string>
-			<string name="AcctTypeEmployee">
-				Linden Lab werknemer
-			</string>
-			<string name="PaymentInfoUsed">
-				Betalingsinformatie gebruikt
-			</string>
-			<string name="PaymentInfoOnFile">
-				Betalingsinformatie aanwezig
-			</string>
-			<string name="NoPaymentInfoOnFile">
-				Geen betalingsinfo aanwezig
-			</string>
-			<string name="AgeVerified">
-				Leeftijd geverifieerd
-			</string>
-			<string name="NotAgeVerified">
-				Leeftijd niet geverifieerd
-			</string>
 </strings>
diff --git a/indra/newview/skins/default/xui/nl/teleport_strings.xml b/indra/newview/skins/default/xui/nl/teleport_strings.xml
index ff43e0f32ff159fa24296d38ca3b3f639fc514b7..12a81447c0d81feffeefc4c1dab4aba54f53b0e9 100644
--- a/indra/newview/skins/default/xui/nl/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/nl/teleport_strings.xml
@@ -2,12 +2,12 @@
 <teleport_messages>
 	<message_set name="errors">
 		<message name="invalid_tport">
-			Er is een probleem opgetreden bij het verwerken van uw verzoek voor een teleport. U dient wellicht opnieuw in te loggen voor uw kunt teleporteren. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op:
-www.secondlife.com/support
+			Probleem ondervonden bij het verwerken van uw verzoek voor een teleport. Het kan nodig zijn om opnieuw in te loggen voordat u kunt teleporteren. 
+Als u dit bericht blijft krijgen, controleert u dan alstublieft [SUPPORT_SITE].
 		</message>
 		<message name="invalid_region_handoff">
-			Er is een probleem opgetreden bij het oversteken naar een andere regio. U dient wellicht opnieuw in te loggen voor uw kunt oversteken naar andere regio&apos;s. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op:
-www.secondlife.com/support
+			Er is een probleem opgetreden bij het oversteken naar een andere regio. U dient wellicht opnieuw in te loggen voor uw kunt oversteken naar andere regio&apos;s.
+Als u dit bericht blijft krijgen, controleert u dan alstublieft [SUPPORT_SITE].
 		</message>
 		<message name="blocked_tport">
 			Sorry, teleport is momenteel geblokkeerd. Probeer het zo meteen opnieuw. Indien u nog steeds niet kunt teleporteren, log dan alstublieft uit en weer in om het probleem te verhelpen.
diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml
index 57cdd50dccad2e18c3db450a0fce751571136537..d21e5740112de598d23722b8baff70b1690adf52 100644
--- a/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Inventory Finder" title="ITENS_DE_INVENTÁRIO_RECENTES" width="165">
+<floater name="Inventory Finder" title="ITENS_DE_INVENTÁRIO_RECENTES">
 	<check_box label="Animação" name="check_animation"/>
 	<check_box label="Cartões de chamadas" name="check_calling_card"/>
 	<check_box label="Roupas" name="check_clothing"/>
@@ -13,8 +13,8 @@
 	<check_box label="Fotos" name="check_snapshot"/>
 	<button label="Tudo" label_selected="Tudo" name="All"/>
 	<button label="Nenhum" label_selected="Nenhum" name="None"/>
-	<check_box label="Sempre mostrar as pastas" name="check_show_empty" left="3"/>
-	<check_box label="Desde o Logoff" name="check_since_logoff" left="3"/>
+	<check_box label="Sempre mostrar as pastas" name="check_show_empty"/>
+	<check_box label="Desde o Logoff" name="check_since_logoff"/>
 	<text name="- OR -">
 		- OU -
 	</text>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index 121272bf6c08b9c92d890f8786db1b31e41d3a3a..eb38323940243c3560f3c2e8deb1c12484f5c93a 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -48,12 +48,12 @@ rápido
 		<check_box initial_value="true" label="Atributos do Avatar" name="AvatarImpostors"/>
 		<check_box initial_value="true" label="Melhoria de Hardware" name="AvatarVertexProgram"/>
 		<check_box initial_value="true" label="Vestimenta do Avatar" name="AvatarCloth"/>
-		<slider label="Distancia de desenho:" label_width="150" name="DrawDistance" width="255"/>
+		<slider label="Distancia de desenho:" name="DrawDistance"/>
 		<text name="DrawDistanceMeterText2">
 			m
 		</text>
-		<slider label="Contador máx. de partículas:" label_width="150" name="MaxParticleCount" width="262"/>
-		<slider label="Qualidade de Pós-processamento:" label_width="178" name="RenderPostProcess" width="223"/>
+		<slider label="Contador máx. de partículas:" name="MaxParticleCount"/>
+		<slider label="Qualidade de Pós-processamento:" name="RenderPostProcess"/>
 		<text name="MeshDetailText">
 			Detalhes de Malha:
 		</text>
@@ -94,13 +94,13 @@ rápido
 		<text name="TerrainDetailText">
 			Detalhe do Terreno:
 		</text>
-		<radio_group left_delta="45" name="TerrainDetailRadio" width="276">
+		<radio_group left_delta="45" name="TerrainDetailRadio">
 			<radio_item label="Baixo" name="0"/>
 			<radio_item label="Alto" name="2"/>
 		</radio_group>
 	</panel>
 	<button label="Aplicar" label_selected="Aplicar" name="Apply"/>
-	<button label="Redefinir" left="110" name="Defaults" width="190"/>
+	<button label="Redefinir" left="110" name="Defaults"/>
 	<button label="Avançado" name="Advanced"/>
 	<button label="Hardware" label_selected="Hardware" name="GraphicsHardwareButton"/>
 </panel>