diff --git a/.hgtags b/.hgtags
index bff8f1ebeb75ef6e74408e3a31dc2a9d9dc0f2f8..d5726615d243aa51bbeb1b2da1849316c95bb89c 100644
--- a/.hgtags
+++ b/.hgtags
@@ -122,13 +122,22 @@ dac76a711da5f1489a01c1fa62ec97d99c25736d 2.6.6-release
 8f2da1701c81a62352df2b8d413d27fb2cade9a6 DRTVWR-46_2.6.3-release
 8f2da1701c81a62352df2b8d413d27fb2cade9a6 2.6.3-release
 77e5a08344c95738ab879f9671b7758cddd712a3 DRTVWR-56_2.6.9-release
+77e5a08344c95738ab879f9671b7758cddd712a3 2.6.9-release
 8835e0e3c0d3a48244c287bc05811dfc2fba43ec 2.7.0-start
 43c7ee846b7eed80786acbbf35d03bd016a3e85d DRTVWR-59_2.7.0-beta1
 43c7ee846b7eed80786acbbf35d03bd016a3e85d 2.7.0-beta1
-77e5a08344c95738ab879f9671b7758cddd712a3 2.6.9-release
 54fd44ac92e4c61435ea33effe093a3527e18d98 2.7.1-start
 0c4d0c24278074f219e5a32e72b449e78301d11b DRTVWR-61_2.7.1-beta1
 0c4d0c24278074f219e5a32e72b449e78301d11b 2.7.1-beta1
 9f79a6ed8fdcd2f3dac33ea6b3236eeb278dccfe 2.7.2-start
+e0dc8b741eaa27dcdfbc9e956bb2579b954d15eb DRTVWR-63_2.7.2-beta1
+e0dc8b741eaa27dcdfbc9e956bb2579b954d15eb 2.7.2-beta1
 6a3e7e403bd19e45fdfc2fcc716867af3ab80861 2.7.3-start
 6af10678de4736222b2c3f7e010e984fb5b327de 2.7.4-start
+be963a4eef635542f9617d7f5fd22ba48fb71958 DRTVWR-67_2.7.4-beta1
+be963a4eef635542f9617d7f5fd22ba48fb71958 2.7.4-beta1
+a9abb9633a266c8d2fe62411cfd1c86d32da72bf DRTVWR-60_2.7.1-release
+be963a4eef635542f9617d7f5fd22ba48fb71958 DRTVWR-67_2.7.4-beta1
+be963a4eef635542f9617d7f5fd22ba48fb71958 2.7.4-beta1
+a9abb9633a266c8d2fe62411cfd1c86d32da72bf 2.7.1-release
+19a498fa62570f352d7d246f17e3c81cc1d82d8b 2.7.5-start
diff --git a/BuildParams b/BuildParams
index f34b262913ef32bae9cca22f817cad3f2b24c973..88d2c02780027d477730c8db4b586565cb7f68ff 100644
--- a/BuildParams
+++ b/BuildParams
@@ -69,29 +69,9 @@ viewer-pre-release.viewer_channel = "Second Life Release"
 viewer-pre-release.login_channel = "Second Life Release"
 viewer-pre-release.build_debug_release_separately = true
 viewer-pre-release.build_viewer_update_version_manager = true
-#viewer-pre-release.release-viewer.jira = DRTVWR-13
-viewer-pre-release.release-viewer.jira = DRTVWR-46
+#viewer-pre-release.release-viewer.jira = DRTVWR-46
 
 
-# =======================================
-# brad
-# ========================================
-debug-halting.email = cg@lindenlab.com
-debug-halting.build_server = false
-debug-halting.build_server_tests = false
-debug-halting.build_Darwin = false
-debug-halting.build_Linux = false
-debug-halting.build_CYGWIN_Debug = false
-debug-halting.build_CYGWIN_RelWithDebInfo = false
-
-# ========================================
-# brad
-# ========================================
-
-brad-parabuild.email = brad@lindenlab.com
-brad-parabuild.build_server = false
-brad-parabuild.build_server_tests = false
-
 # ========================================
 # mesh-development
 # ========================================
@@ -133,73 +113,31 @@ viewer-mesh.email = shining@lists.lindenlab.com
 # CG
 # ========================================
 
-cg_viewer-development_lenny.collect_metrics = true
 cg_viewer-development_lenny.show_changes_since = 4b140ce7839d
 cg_viewer-development_lenny.email = cg@lindenlab.com
 
-# ========================================
-# gooey
-# ========================================
-
-#gooey.email = james@lindenlab.com
-gooey.build_Debug = false
-gooey.build_RelWithDebInfo = false
-gooey.build_server = false
-gooey.build_server_tests = false
-gooey.viewer_channel = "Second Life Alpha"
-gooey.login_channel = "Second Life Alpha"
-gooey.viewer_grid = agni
-gooey.build_viewer_update_version_manager = false
-
-# ========================================
-# Search Project
-# ========================================
-
-search_project-viewer.build_debug_release_separately = true
-search_project-viewer.viewer_channel = "Second Life Project Viewer - Search"
-search_project-viewer.login_channel = "Second Life Project Viewer - Search"
-
-# ========================================
-# palange
-# ========================================
-
-palange_viewer-2-0.email = palange@lindenlab.com
-palange_viewer-2-0.build_server = false
-palange_viewer-2-0.build_server_tests = false
-palange_viewer-2-0.build_CYGWIN_Debug = false
-
-# ========================================
-# media
-# ========================================
-
-media.email = skolb@lindenlab.com
-media.build_server = false
-media.build_server_tests = false
-media.viewer_channel = "Second Life Alpha"
-media.login_channel = "Second Life Alpha"
-media.viewer_grid = agni
-media.build_viewer_update_version_manager = false
-
 # ================
 # oz
 # ================
 
 oz_viewer-devreview.build_debug_release_separately = true
+oz_viewer-devreview.codeticket_add_context = false
+
 oz_project-1.build_debug_release_separately = true
+oz_project-1.codeticket_add_context = false
 oz_project-2.build_debug_release_separately = true
-oz-project-3.build_debug_release_separately = true
+oz_project-2.codeticket_add_context = false
+oz_project-3.build_debug_release_separately = true
+oz_project-3.codeticket_add_context = false
+oz_project-4.build_debug_release_separately = true
+oz_project-4.codeticket_add_context = false
+
 oz_viewer-beta-review.build_debug_release_separately = true
+oz_viewer-beta-review.codeticket_add_context = false
+
 oz_viewer-poreview.build_debug_release_separately = true
 oz_viewer-poreview.codeticket_add_context = false
 
-# ========================================
-# enus
-# ========================================
-
-viewer-tut-teamcity.email = enus@lindenlab.com
-viewer-tut-teamcity.build_server = false
-viewer-tut-teamcity.build_server_tests = false
-
 # =================================================================
 # asset delivery 2010 projects
 # =================================================================
@@ -217,23 +155,4 @@ viewer-asset-delivery-metrics.email = monty@lindenlab.com
 viewer-asset-delivery-metrics.build_server = false
 viewer-asset-delivery-metrics.build_server_tests = false
 
-#==============================================================================
-# autobuild viewers
-#==============================================================================
-viewer-autobuild2010.build_debug_release_separately = true
-viewer-autobuild2010.viewer_channel = "Project Viewer - VS2010"
-viewer-autobuild2010.login_channel = "Project Viewer - VS2010"
-viewer-autobuild2010.viewer_grid = agni
-viewer-autobuild2010.build_link_parallel = false
-
-#======================================== 
-# VS2010 
-#======================================== 
-viewer-vs2010.viewer_channel = "Project Viewer - VS2010"
-viewer-vs2010.login_channel = "Project Viewer - VS2010"
-viewer-vs2010.viewer_grid = agni
-viewer-vs2010.build_debug_release_separately = true
-viewer-vs2010.build_viewer_update_version_manager = false
-viewer-vs2010.build_link_parallel = false
-
 # eof
diff --git a/autobuild.xml b/autobuild.xml
index 63701dae790b44836b7ff56166d2db069affd987..d1a7107319fe0586ee9695c0cce873961ede57f3 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1907,11 +1907,8 @@
             <map>
               <key>build</key>
               <map>
-                <key>arguments</key>
+                <key>filters</key>
                 <array>
-                  <string>|</string>
-                  <string>grep</string>
-                  <string>-v</string>
                   <string>setenv</string>
                 </array>
                 <key>command</key>
@@ -1964,11 +1961,8 @@
             <map>
               <key>build</key>
               <map>
-                <key>arguments</key>
+                <key>filters</key>
                 <array>
-                  <string>|</string>
-                  <string>grep</string>
-                  <string>-v</string>
                   <string>setenv</string>
                 </array>
                 <key>command</key>
@@ -2023,11 +2017,8 @@
             <map>
               <key>build</key>
               <map>
-                <key>arguments</key>
+                <key>filters</key>
                 <array>
-                  <string>|</string>
-                  <string>grep</string>
-                  <string>-v</string>
                   <string>setenv</string>
                 </array>
                 <key>command</key>
diff --git a/doc/contributions.txt b/doc/contributions.txt
index b744f4db3e1444cfa2be53df3076077e12981d1e..67e78e87ee690d8cf857dc95bc70268b8ebed92c 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -103,6 +103,8 @@ Ales Beaumont
 Alexandrea Fride
     STORM-255
 	STORM-960
+	STORM-1327
+	STORM-1406
 Alissa Sabre
 	VWR-81
 	VWR-83
@@ -158,6 +160,7 @@ Ann Congrejo
 	CT-193
 Ansariel Hiller
 	STORM-1101
+	VWR-25480
 Ardy Lay
 	STORM-859
 	VWR-19499
@@ -443,9 +446,20 @@ Jonathan Yap
 	STORM-1236
 	STORM-1259
 	STORM-787
+	VWR-25480
+	STORM-1334
 	STORM-1313
 	STORM-899
 	STORM-1273
+	STORM-457
+	STORM-1452
+	STORM-1406
+	STORM-1327
+	STORM-1396
+	STORM-1292
+	STORM-1392
+	STORM-1302
+	STORM-1326
 Kage Pixel
 	VWR-11
 Ken March
@@ -778,6 +792,7 @@ Strife Onizuka
 	SNOW-691
 TankMaster Finesmith
 	STORM-1100
+	STORM-1452
 Tayra Dagostino
 	SNOW-517
 	SNOW-543
@@ -910,6 +925,7 @@ WolfPup Lowenhar
 	STORM-825
 	STORM-859
 	STORM-1098
+	STORM-1393
 	VWR-20741
 	VWR-20933
 Zai Lynch
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 92cd9bd46a7916d51c86394ea9c0df3bed517b4e..69720bb903224757c1113b8eed6bb612bae88602 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -29,7 +29,7 @@
 
 const S32 LL_VERSION_MAJOR = 2;
 const S32 LL_VERSION_MINOR = 7;
-const S32 LL_VERSION_PATCH = 5;
+const S32 LL_VERSION_PATCH = 6;
 const S32 LL_VERSION_BUILD = 0;
 
 const char * const LL_CHANNEL = "Second Life Developer";
diff --git a/indra/llmessage/lliosocket.cpp b/indra/llmessage/lliosocket.cpp
index ca84fa8bb80abf27f3a4b6a1da50afe79f2f82e5..8c752fbe301e74f2767e4203555d6cc4bc7fd868 100644
--- a/indra/llmessage/lliosocket.cpp
+++ b/indra/llmessage/lliosocket.cpp
@@ -191,7 +191,7 @@ LLSocket::ptr_t LLSocket::create(apr_pool_t* pool, EType type, U16 port)
 		port = PORT_EPHEMERAL;
 	}
 	rv->mPort = port;
-	rv->setOptions();
+	rv->setNonBlocking();
 	return rv;
 }
 
@@ -206,7 +206,7 @@ LLSocket::ptr_t LLSocket::create(apr_socket_t* socket, apr_pool_t* pool)
 	}
 	rv = ptr_t(new LLSocket(socket, pool));
 	rv->mPort = PORT_EPHEMERAL;
-	rv->setOptions();
+	rv->setNonBlocking();
 	return rv;
 }
 
@@ -227,10 +227,10 @@ bool LLSocket::blockingConnect(const LLHost& host)
 	{
 		return false;
 	}
-	apr_socket_timeout_set(mSocket, 1000);
+	setBlocking(1000);
 	ll_debug_socket("Blocking connect", mSocket);
 	if(ll_apr_warn_status(apr_socket_connect(mSocket, sa))) return false;
-	setOptions();
+	setNonBlocking();
 	return true;
 }
 
@@ -258,11 +258,27 @@ LLSocket::~LLSocket()
 	}
 }
 
-void LLSocket::setOptions()
+// See http://dev.ariel-networks.com/apr/apr-tutorial/html/apr-tutorial-13.html#ss13.4
+// for an explanation of how to get non-blocking sockets and timeouts with
+// consistent behavior across platforms.
+
+void LLSocket::setBlocking(S32 timeout)
+{
+	LLMemType m1(LLMemType::MTYPE_IO_TCP);
+	// set up the socket options
+	ll_apr_warn_status(apr_socket_timeout_set(mSocket, timeout));
+	ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_NONBLOCK, 0));
+	ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_SNDBUF, LL_SEND_BUFFER_SIZE));
+	ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_RCVBUF, LL_RECV_BUFFER_SIZE));
+
+}
+
+void LLSocket::setNonBlocking()
 {
 	LLMemType m1(LLMemType::MTYPE_IO_TCP);
 	// set up the socket options
 	ll_apr_warn_status(apr_socket_timeout_set(mSocket, 0));
+	ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_NONBLOCK, 1));
 	ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_SNDBUF, LL_SEND_BUFFER_SIZE));
 	ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_RCVBUF, LL_RECV_BUFFER_SIZE));
 
diff --git a/indra/llmessage/lliosocket.h b/indra/llmessage/lliosocket.h
index ec604704598d8e4c2d56cccbc74f640897424bf2..5a2eaf2d448131214e470afbf15fdb2e635708fa 100644
--- a/indra/llmessage/lliosocket.h
+++ b/indra/llmessage/lliosocket.h
@@ -153,9 +153,16 @@ class LLSocket
 	LLSocket(apr_socket_t* socket, apr_pool_t* pool);
 
 	/** 
-	 * @brief Set default socket options.
+	 * @brief Set default socket options, with SO_NONBLOCK = 0 and a timeout in us.
+	 * @param timeout Number of microseconds to wait on this socket. Any
+	 * negative number means block-forever. TIMEOUT OF 0 IS NON-PORTABLE.
 	 */
-	void setOptions();
+	void setBlocking(S32 timeout);
+
+	/**
+	 * @brief Set default socket options, with SO_NONBLOCK = 1 and timeout = 0.
+	 */
+	void setNonBlocking();
 
 public:
 	/** 
diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp
index 06bad1f3712ff174d303598560da730869848bcb..04040200d053f7d727c16c5958d08a6e123e375b 100644
--- a/indra/llui/llconsole.cpp
+++ b/indra/llui/llconsole.cpp
@@ -132,6 +132,9 @@ void LLConsole::setFontSize(S32 size_index)
 
 void LLConsole::draw()
 {
+	// Units in pixels
+	static const F32 padding_horizontal = 10;
+	static const F32 padding_vertical = 3;
 	LLGLSUIDefault gls_ui;
 
 	// skip lines added more than mLinePersistTime ago
@@ -176,11 +179,9 @@ void LLConsole::draw()
 	// draw remaining lines
 	F32 y_pos = 0.f;
 
-	LLUIImagePtr imagep = LLUI::getUIImage("Rounded_Square");
+	LLUIImagePtr imagep = LLUI::getUIImage("transparent");
 
-//	F32 console_opacity = llclamp(gSavedSettings.getF32("ConsoleBackgroundOpacity"), 0.f, 1.f);
 	F32 console_opacity = llclamp(LLUI::sSettingGroups["config"]->getF32("ConsoleBackgroundOpacity"), 0.f, 1.f);
-//	LLColor4 color = LLUIColorTable::instance().getColor("ConsoleBackground");
 	LLColor4 color = LLUIColorTable::instance().getColor("ConsoleBackground");
 	color.mV[VALPHA] *= console_opacity;
 
@@ -188,8 +189,8 @@ void LLConsole::draw()
 
 	for(paragraph_it = mParagraphs.rbegin(); paragraph_it != mParagraphs.rend(); paragraph_it++)
 	{
-		S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + 8);
-		S32 target_width =  llfloor( (*paragraph_it).mMaxWidth +15);
+		S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + padding_vertical);
+		S32 target_width =  llfloor( (*paragraph_it).mMaxWidth + padding_horizontal);
 
 		y_pos += ((*paragraph_it).mLines.size()) * line_height;
 		imagep->drawSolid(-14, (S32)(y_pos + line_height - target_height), target_width, target_height, color);
@@ -234,7 +235,7 @@ void LLConsole::draw()
 				y_off += line_height;
 			}
 		}
-		y_pos  += 8;
+		y_pos  += padding_vertical;
 	}
 }
 
diff --git a/indra/llvfs/CMakeLists.txt b/indra/llvfs/CMakeLists.txt
index b6d1ce61e5ff5d15aeec971205a78611796f91d7..2c581cf8d6e55e74dbc0d81df3ef64d842397398 100644
--- a/indra/llvfs/CMakeLists.txt
+++ b/indra/llvfs/CMakeLists.txt
@@ -62,11 +62,15 @@ list(APPEND llvfs_SOURCE_FILES ${llvfs_HEADER_FILES})
 
 add_library (llvfs ${llvfs_SOURCE_FILES})
 
-target_link_libraries(llvfs
+set(vfs_BOOST_LIBRARIES
     ${BOOST_FILESYSTEM_LIBRARY}
     ${BOOST_SYSTEM_LIBRARY}
     )
 
+target_link_libraries(llvfs
+    ${vfs_BOOST_LIBRARIES}
+    )
+
 if (DARWIN)
   include(CMakeFindFrameworks)
   find_library(CARBON_LIBRARY Carbon)
@@ -76,15 +80,21 @@ endif (DARWIN)
 
 # Add tests
 if (LL_TESTS)
-	include(LLAddBuildTest)
-	# UNIT TESTS
-	SET(llvfs_TEST_SOURCE_FILES
-	  # none so far
-	  )
-	LL_ADD_PROJECT_UNIT_TESTS(llvfs "${llvfs_TEST_SOURCE_FILES}")
-
-	# INTEGRATION TESTS
-	set(test_libs llmath llcommon llvfs ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES})
-	# TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests.
-	LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}")
+    include(LLAddBuildTest)
+    # UNIT TESTS
+    SET(llvfs_TEST_SOURCE_FILES
+	lldiriterator.cpp
+	)
+
+    set_source_files_properties(lldiriterator.cpp
+	PROPERTIES
+	LL_TEST_ADDITIONAL_LIBRARIES "${vfs_BOOST_LIBRARIES}"
+	)
+    LL_ADD_PROJECT_UNIT_TESTS(llvfs "${llvfs_TEST_SOURCE_FILES}")
+
+    # INTEGRATION TESTS
+    set(test_libs llmath llcommon llvfs ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES})
+
+    # TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests.
+    LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}")
 endif (LL_TESTS)
diff --git a/indra/llvfs/lldiriterator.cpp b/indra/llvfs/lldiriterator.cpp
index 041436ed92f24ade177358ca0db1aca687d15cf4..25550321f0218f93a931e5d2448c4ceb057a9481 100644
--- a/indra/llvfs/lldiriterator.cpp
+++ b/indra/llvfs/lldiriterator.cpp
@@ -121,6 +121,14 @@ bool LLDirIterator::Impl::next(std::string &fname)
 	return found;
 }
 
+/**
+Converts the incoming glob into a regex. This involves
+converting incoming glob expressions to regex equivilents and
+at the same time, escaping any regex meaningful characters which
+do not have glob meaning, i.e.
+            .()+|^$ 
+in the input.
+*/
 std::string glob_to_regex(const std::string& glob)
 {
 	std::string regex;
@@ -135,9 +143,6 @@ std::string glob_to_regex(const std::string& glob)
 
 		switch (c)
 		{
-			case '.':
-				regex+="\\.";
-				break;
 			case '*':
 				if (glob.begin() == i)
 				{
@@ -170,8 +175,16 @@ std::string glob_to_regex(const std::string& glob)
 			case '!':
 				regex+= square_brace_open ? '^' : c;
 				break;
+			case '.': // This collection have different regex meaning
+			case '^': // and so need escaping.
+			case '(': 
+			case ')':
+			case '+':
+			case '|':
+			case '$':
+				regex += '\\'; 
 			default:
-				regex+=c;
+				regex += c;
 				break;
 		}
 
diff --git a/indra/llvfs/tests/lldiriterator_test.cpp b/indra/llvfs/tests/lldiriterator_test.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..505d86faa7d45ed61b873e1b7e5f6bf362693b82
--- /dev/null
+++ b/indra/llvfs/tests/lldiriterator_test.cpp
@@ -0,0 +1,65 @@
+/**
+ * @file lldiriterator_test.cpp
+ * @date 2011-06
+ * @brief LLDirIterator test cases.
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.,
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+#include "lltut.h"
+#include "../lldiriterator.h"
+
+
+namespace tut
+{
+    
+    struct LLDirIteratorFixture
+    {
+        LLDirIteratorFixture()
+        {
+        }
+    };
+    typedef test_group<LLDirIteratorFixture> LLDirIteratorTest_factory;
+    typedef LLDirIteratorTest_factory::object LLDirIteratorTest_t;
+    LLDirIteratorTest_factory tf("LLDirIterator");
+
+    /*
+    CHOP-662 was originally introduced to deal with crashes deleting files from
+    a directory (VWR-25500). However, this introduced a crash looking for 
+    old chat logs as the glob_to_regex function in lldiriterator wasn't escaping lots of regexp characters
+    */
+    void test_chop_662(void)
+    {
+        //  Check a selection of bad group names from the crash reports 
+        LLDirIterator iter(".","+bad-group-name]+??-??.*");
+        LLDirIterator iter1(".","))--@---bad-group-name2((??-??.*\\.txt");
+        LLDirIterator iter2(".","__^v--x)Cuide d sua vida(x--v^__??-??.*"); 
+    }
+
+    template<> template<>
+	void LLDirIteratorTest_t::test<1>()
+    {
+       test_chop_662();
+    }
+
+}
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
old mode 100755
new mode 100644
index 604b1f2fc665879081b4a4c1eb75f7fd6af392f8..befc81f28ee7997a80ea7dba63033168244a175d
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -5653,7 +5653,7 @@
     <key>Type</key>
     <string>Boolean</string>
     <key>Value</key>
-    <real>1</real>
+    <real>0</real>
   </map>
   <key>MeshImportUseSLM</key>
   <map>
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index cbbdcb2983fc6d47b767b23d817f49b5fb2d9ec3..955f19c82c64de7fcd28cae540d3d92a8bff6901 100755
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -773,6 +773,10 @@ bool LLAvatarActions::canOfferTeleport(const LLUUID& id)
 // static
 bool LLAvatarActions::canOfferTeleport(const uuid_vec_t& ids)
 {
+	// We can't send more than 250 lures in a single message, so disable this
+	// button when there are too many id's selected.
+	if(ids.size() > 250) return false;
+	
 	bool result = true;
 	for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
 	{
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 01d19c5ba0442fa14d1aefe560c62b2704fd804f..79e6c7b66bd8c3599a3b0b73ecfeddad958bf8d6 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -386,6 +386,7 @@ void LLBottomTray::onChange(EStatusType status, const std::string &channelURI, b
 	{
 		bool voice_status = LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking();
 		getChild<LLButton>("speak_flyout_btn")->setEnabled(voice_status);
+		gMenuBarView->getChild<LLView>("Nearby Voice")->setEnabled(voice_status);
 		if (voice_status)
 		{
 			LLFirstUse::speak(true);
@@ -570,7 +571,7 @@ BOOL LLBottomTray::postBuild()
 	// it takes some time between logging in to world and connecting to voice channel.
 	getChild<LLButton>("speak_btn")->setEnabled(false);
 	getChild<LLButton>("speak_flyout_btn")->setEnabled(false);
-
+	gMenuBarView->getChild<LLView>("Nearby Voice")->setEnabled(false);
 
 	// Registering Chat Bar to receive Voice client status change notifications.
 	LLVoiceClient::getInstance()->addObserver(this);
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index b6d67899f8caab23f7a69923558bbbce6d1de24c..216cc66ef8637c624294fa7b9a85960d53e367d5 100644
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
@@ -62,7 +62,8 @@ void LLDebugView::init()
 	LLRect r;
 	LLRect rect = getLocalRect();
 
-	r.set(10, rect.getHeight() - 100, rect.getWidth()/2, 100);
+	// Rectangle to draw debug data in (full height, 3/4 width)
+	r.set(10, rect.getHeight() - 100, ((rect.getWidth()*3)/4), 100);
 	LLConsole::Params cp;
 	cp.name("debug console");
 	cp.max_lines(20);
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index c95b046707528ec1d7fb01472d00cbd0e6bd481c..c6743ca13b2aae31b2945f9d1869e484c530c846 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -55,6 +55,7 @@
 #include "llrender.h"
 #include "llsdutil.h"
 #include "llsdutil_math.h"
+#include "lltrans.h"
 
 ///----------------------------------------------------------------------------
 /// Local function declarations, constants, enums, and typedefs
@@ -457,7 +458,7 @@ void LLFloaterAuction::onClickSellToAnyone(void* data)
 		LLSD args;
 		args["LAND_SIZE"] = llformat("%d", area);
 		args["SALE_PRICE"] = llformat("%d", sale_price);
-		args["NAME"] = "Anyone";
+		args["NAME"] = LLTrans::getString("Anyone");
 
 		LLNotification::Params params("ConfirmLandSaleChange");	// Re-use existing dialog
 		params.substitutions(args)
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index 8558a1277ce514d691fecc317c4e135eec595e9d..3434841d09b52d3d3e288079b86b9cc715b94b08 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -41,6 +41,7 @@
 #include "llviewerparcelmgr.h"
 #include "lluictrlfactory.h"
 #include "llviewerwindow.h"
+#include "lltrans.h"
 
 class LLAvatarName;
 
@@ -451,7 +452,7 @@ void LLFloaterSellLandUI::doSellLand(void *userdata)
 	// Do a confirmation
 	S32 sale_price = self->getChild<LLUICtrl>("price")->getValue();
 	S32 area = parcel->getArea();
-	std::string authorizedBuyerName = "Anyone";
+	std::string authorizedBuyerName = LLTrans::getString("Anyone");
 	bool sell_to_anyone = true;
 	if ("user" == self->getChild<LLUICtrl>("sell_to")->getValue().asString())
 	{
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index 0d798afdcc759fbf200d3543b7e4a3f7623ee506..33b7777d2efbf6b3d9b1102fee5076fbc449c406 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -424,8 +424,7 @@ void LLFloaterTools::refresh()
 	// Refresh object and prim count labels
 	LLLocale locale(LLLocale::USER_LOCALE);
 
-#if 0
-	if (gMeshRepo.meshRezEnabled())
+	if (!gMeshRepo.meshRezEnabled())
 	{		
 		std::string obj_count_string;
 		LLResMgr::getInstance()->getIntegerString(obj_count_string, LLSelectMgr::getInstance()->getSelection()->getRootObjectCount());
@@ -449,7 +448,6 @@ void LLFloaterTools::refresh()
 		getChildView("RenderingCost")->setEnabled(have_selection && sShowObjectCost);
 	}
 	else
-#endif
 	{
 		// Get the number of objects selected
 		std::string root_object_count_string;
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index f8a4ce7ad0fc8362fa220666026840dcf9394f19..b3910982d14e66637724d23e6a134ccba6423a88 100755
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -1527,17 +1527,24 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
 		mCompletingRegionName = "";
 	}
 	
-	// if match found, highlight it and go
-	if (!match.isUndefined())
+	if (num_results > 0)
 	{
-		list->selectByValue(match);
+		// if match found, highlight it and go
+		if (!match.isUndefined())
+		{
+			list->selectByValue(match);
+		}
+		// else select first found item
+		else
+		{
+			list->selectFirstItem();
+		}
 		getChild<LLUICtrl>("search_results")->setFocus(TRUE);
 		onCommitSearchResult();
 	}
-	
-	// if we found nothing, say "none"
-	if (num_results == 0)
+	else
 	{
+		// if we found nothing, say "none"
 		list->setCommentText(LLTrans::getString("worldmap_results_none_found"));
 		list->operateOnAll(LLCtrlListInterface::OP_DESELECT);
 	}
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index efc4e2383881d2fb5aa57828a7707b7d6d3b4d35..ebb5912ace1647770722937e1abb23a0718af1f7 100644
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
@@ -230,7 +230,7 @@ std::string LLLogChat::makeLogFileName(std::string filename)
 
 std::string LLLogChat::cleanFileName(std::string filename)
 {
-	std::string invalidChars = "\"\'\\/?*:.<>|";
+    std::string invalidChars = "\"\'\\/?*:.<>|[]{}~"; // Cannot match glob or illegal filename chars
 	std::string::size_type position = filename.find_first_of(invalidChars);
 	while (position != filename.npos)
 	{
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
old mode 100755
new mode 100644
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index 11dc496311d3864b01c418ca9da3ba2a658e6b3f..957b6d5f94fc6d8498fd6e4a4dcd441d36da9573 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -268,6 +268,9 @@ bool	LLNearbyChatScreenChannel::createPoolToast()
 	
 	toast->setOnFadeCallback(boost::bind(&LLNearbyChatScreenChannel::onToastFade, this, _1));
 
+	// If the toast gets somehow prematurely destroyed, deactivate it to prevent crash (STORM-1352).
+	toast->setOnToastDestroyedCallback(boost::bind(&LLNearbyChatScreenChannel::onToastDestroyed, this, _1, false));
+
 	LL_DEBUGS("NearbyChat") << "Creating and pooling toast" << llendl;	
 	m_toast_pool.push_back(toast->getHandle());
 	return true;
@@ -369,8 +372,10 @@ void LLNearbyChatScreenChannel::arrangeToasts()
 	}
 }
 
-int sort_toasts_predicate(LLHandle<LLToast> first, LLHandle<LLToast> second)
+static bool sort_toasts_predicate(LLHandle<LLToast> first, LLHandle<LLToast> second)
 {
+	if (!first.get() || !second.get()) return false; // STORM-1352
+
 	F32 v1 = first.get()->getTimeLeftToLive();
 	F32 v2 = second.get()->getTimeLeftToLive();
 	return v1 > v2;
@@ -396,7 +401,11 @@ void LLNearbyChatScreenChannel::showToastsBottom()
 	for(toast_vec_t::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
 	{
 		LLToast* toast = it->get();
-		if (!toast) continue;
+		if (!toast)
+		{
+			llwarns << "NULL found in the active chat toasts list!" << llendl;
+			continue;
+		}
 
 		S32 toast_top = bottom + toast->getRect().getHeight() + margin;
 
@@ -472,7 +481,8 @@ void LLNearbyChatHandler::initChannel()
 
 
 
-void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
+void LLNearbyChatHandler::processChat(const LLChat& chat_msg,		// WARNING - not really const, see hack below changing chat_msg.mText
+									  const LLSD &args)
 {
 	if(chat_msg.mMuted == TRUE)
 		return;
@@ -480,7 +490,17 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
 	if(chat_msg.mText.empty())
 		return;//don't process empty messages
 
+	// Handle irc styled messages for toast panel
+	// HACK ALERT - changes mText, stripping out IRC style "/me" prefixes
 	LLChat& tmp_chat = const_cast<LLChat&>(chat_msg);
+	std::string original_message = tmp_chat.mText;			// Save un-modified version of chat text
+	if (tmp_chat.mChatStyle == CHAT_STYLE_IRC)
+	{
+		if(!tmp_chat.mFromName.empty())
+			tmp_chat.mText = tmp_chat.mFromName + tmp_chat.mText.substr(3);
+		else
+			tmp_chat.mText = tmp_chat.mText.substr(3);
+	}
 
 	LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD());
 	{
@@ -531,7 +551,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
 
 			LLViewerChat::getChatColor(chat_msg,txt_color);
 
-			LLFloaterScriptDebug::addScriptLine(chat_msg.mText,
+			LLFloaterScriptDebug::addScriptLine(original_message,		// Send full message with "/me" style prefix
 												chat_msg.mFromName,
 												txt_color,
 												chat_msg.mFromID);
@@ -562,15 +582,6 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
 		|| !mChannel->getShowToasts() ) // to prevent toasts in Busy mode
 		return;//no need in toast if chat is visible or if bubble chat is enabled
 
-	// Handle irc styled messages for toast panel
-	if (tmp_chat.mChatStyle == CHAT_STYLE_IRC)
-	{
-		if(!tmp_chat.mFromName.empty())
-			tmp_chat.mText = tmp_chat.mFromName + tmp_chat.mText.substr(3);
-		else
-			tmp_chat.mText = tmp_chat.mText.substr(3);
-	}
-
 	// arrange a channel on a screen
 	if(!mChannel->getVisible())
 	{
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index d0810d0772e0b54f29a72dd3976709b8b8608d0b..27f341b4f6d449a9711a506c3bdd27adcaa40cb1 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -34,7 +34,6 @@
 #include "llmd5.h"
 #include "llsecondlifeurls.h"
 #include "v4color.h"
-#include "llversionviewer.h"
 
 #include "llappviewer.h"
 #include "llbutton.h"
@@ -748,20 +747,12 @@ void LLPanelLogin::loadLoginPage()
 								   LLVersionInfo::getShortVersion().c_str(),
 								   LLVersionInfo::getBuild());
 
-	char* curl_channel ;
+	char* curl_channel = curl_escape(LLVersionInfo::getChannel().c_str(), 0);
 	char* curl_version = curl_escape(version.c_str(), 0);
 
-	if(strcmp(LLVersionInfo::getChannel().c_str(), LL_CHANNEL))
-	{
-		curl_channel = curl_escape(LLVersionInfo::getChannel().c_str(), 0);
-	}
-	else //if LL_CHANNEL, direct it to "Second Life Beta Viewer".
-	{
-		curl_channel = curl_escape("Second Life Beta Viewer", 0);		
-	}
 	oStr << "&channel=" << curl_channel;
 	oStr << "&version=" << curl_version;
-	
+
 	curl_free(curl_channel);
 	curl_free(curl_version);
 
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index 9f3ee6ac5d21fbcd977800aa4158da9ead916597..4974dde282c24044446503e184dbe3fc36ccd76b 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -401,15 +401,14 @@ struct LLSaveNotecardInfo
 
 bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem)
 {
-	if(!gAssetStorage)
+	LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor");
+
+	if(!editor)
 	{
-		llwarns << "Not connected to an asset storage system." << llendl;
+		llwarns << "Cannot get handle to the notecard editor." << llendl;
 		return false;
 	}
 
-	
-	LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor");
-
 	if(!editor->isPristine())
 	{
 		// We need to update the asset information
@@ -436,8 +435,15 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem)
 		// save it out to database
 		if (item)
 		{			
-			std::string agent_url = gAgent.getRegion()->getCapability("UpdateNotecardAgentInventory");
-			std::string task_url = gAgent.getRegion()->getCapability("UpdateNotecardTaskInventory");
+			const LLViewerRegion* region = gAgent.getRegion();
+			if (!region)
+			{
+				llwarns << "Not connected to a region, cannot save notecard." << llendl;
+				return false;
+			}
+			std::string agent_url = region->getCapability("UpdateNotecardAgentInventory");
+			std::string task_url = region->getCapability("UpdateNotecardTaskInventory");
+
 			if (mObjectUUID.isNull() && !agent_url.empty())
 			{
 				// Saving into agent inventory
@@ -472,6 +478,11 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem)
 												(void*)info,
 												FALSE);
 			}
+			else // !gAssetStorage
+			{
+				llwarns << "Not connected to an asset storage system." << llendl;
+				return false;
+			}
 		}
 	}
 	return true;
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 9ec4d3303603c49d506b0e66982a44144f8335bb..c38c8bad809b298974309697d40cb0f0d85185ca 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -639,6 +639,7 @@ BOOL LLToolPie::handleMouseUp(S32 x, S32 y, MASK mask)
 	if (click_action == CLICK_ACTION_NONE				// not doing 1-click action
 		&& gSavedSettings.getBOOL("ClickToWalk")		// click to walk enabled
 		&& !gAgent.getFlying()							// don't auto-navigate while flying until that works
+		&& gAgentAvatarp
 		&& !gAgentAvatarp->isSitting()
 		&& !mBlockClickToWalk							// another behavior hasn't cancelled click to walk
 		&& !mPick.mPosGlobal.isExactlyZero()			// valid coordinates for pick
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 7ab335314a213f6a5a2f0c14b414e7ba9002770d..f6b01e92cbccc29882de15ad666035edffbf1645 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -1501,7 +1501,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
 			log_message = chatHistory_string + " " + LLTrans::getString("InvOfferGaveYou") + " " + mDesc + LLTrans::getString(".");
 			LLSD args;
 			args["MESSAGE"] = log_message;
-			LLNotificationsUtil::add("SystemMessage", args);
+			LLNotificationsUtil::add("SystemMessageTip", args);
 		}
 		break;
 
@@ -1675,7 +1675,7 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
 				log_message = chatHistory_string + " " + LLTrans::getString("InvOfferGaveYou") + " " + mDesc + LLTrans::getString(".");
 				LLSD args;
 				args["MESSAGE"] = log_message;
-				LLNotificationsUtil::add("SystemMessage", args);
+				LLNotificationsUtil::add("SystemMessageTip", args);
 			}
 			
 			// we will want to open this item when it comes back.
@@ -1726,7 +1726,7 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
 
 				LLSD args;
 				args["MESSAGE"] = log_message;
-				LLNotificationsUtil::add("SystemMessage", args);
+				LLNotificationsUtil::add("SystemMessageTip", args);
 			}
 			
 			if (busy &&	(!mFromGroup && !mFromObject))
@@ -4326,8 +4326,11 @@ void process_sound_trigger(LLMessageSystem *msg, void **)
 	}
 
 	// Don't play sounds from gestures if they are not enabled.
-	if (!gSavedSettings.getBOOL("EnableGestureSounds")) return;
-		
+	if (object_id == owner_id && !gSavedSettings.getBOOL("EnableGestureSounds"))
+	{
+		return;
+	}
+
 	gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global);
 }
 
@@ -6261,6 +6264,18 @@ void send_group_notice(const LLUUID& group_id,
 
 bool handle_lure_callback(const LLSD& notification, const LLSD& response)
 {
+	static const unsigned OFFER_RECIPIENT_LIMIT = 250;
+	if(notification["payload"]["ids"].size() > OFFER_RECIPIENT_LIMIT) 
+	{
+		// More than OFFER_RECIPIENT_LIMIT targets will overload the message
+		// producing an llerror.
+		LLSD args;
+		args["OFFERS"] = notification["payload"]["ids"].size();
+		args["LIMIT"] = static_cast<int>(OFFER_RECIPIENT_LIMIT);
+		LLNotificationsUtil::add("TooManyTeleportOffers", args);
+		return false;
+	}
+	
 	std::string text = response["message"].asString();
 	LLSLURL slurl;
 	LLAgentUI::buildSLURL(slurl);
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 6ee6822e2fcdc4eae6b7bc4f9d1a49d337c98e2c..cd2bbad620951b4d2ec0121b958e0a3b40755562 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -195,12 +195,13 @@ static LLVivoxVoiceClientFriendsObserver *friendslist_listener = NULL;
 class LLVivoxVoiceClientCapResponder : public LLHTTPClient::Responder
 {
 public:
-	LLVivoxVoiceClientCapResponder(void){};
+	LLVivoxVoiceClientCapResponder(LLVivoxVoiceClient::state requesting_state) : mRequestingState(requesting_state) {};
 
 	virtual void error(U32 status, const std::string& reason);	// called with bad status codes
 	virtual void result(const LLSD& content);
 
 private:
+	LLVivoxVoiceClient::state mRequestingState;  // state 
 };
 
 void LLVivoxVoiceClientCapResponder::error(U32 status, const std::string& reason)
@@ -208,6 +209,7 @@ void LLVivoxVoiceClientCapResponder::error(U32 status, const std::string& reason
 	LL_WARNS("Voice") << "LLVivoxVoiceClientCapResponder::error("
 		<< status << ": " << reason << ")"
 		<< LL_ENDL;
+	LLVivoxVoiceClient::getInstance()->sessionTerminate();
 }
 
 void LLVivoxVoiceClientCapResponder::result(const LLSD& content)
@@ -216,12 +218,12 @@ void LLVivoxVoiceClientCapResponder::result(const LLSD& content)
 	
 	LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest response:" << ll_pretty_print_sd(content) << LL_ENDL;
 
+	std::string uri;
+	std::string credentials;
+	
 	if ( content.has("voice_credentials") )
 	{
 		LLSD voice_credentials = content["voice_credentials"];
-		std::string uri;
-		std::string credentials;
-
 		if ( voice_credentials.has("channel_uri") )
 		{
 			uri = voice_credentials["channel_uri"].asString();
@@ -231,7 +233,12 @@ void LLVivoxVoiceClientCapResponder::result(const LLSD& content)
 			credentials =
 				voice_credentials["channel_credentials"].asString();
 		}
-
+	}
+	
+	// set the spatial channel.  If no voice credentials or uri are 
+	// available, then we simply drop out of voice spatially.
+	if(LLVivoxVoiceClient::getInstance()->parcelVoiceInfoReceived(mRequestingState))
+	{
 		LLVivoxVoiceClient::getInstance()->setSpatialChannel(uri, credentials);
 	}
 }
@@ -551,18 +558,27 @@ void LLVivoxVoiceClient::userAuthorized(const std::string& user_id, const LLUUID
 
 void LLVivoxVoiceClient::requestVoiceAccountProvision(S32 retries)
 {
-	if ( gAgent.getRegion() && mVoiceEnabled )
+	LLViewerRegion *region = gAgent.getRegion();
+	
+	if ( region && mVoiceEnabled )
 	{
 		std::string url = 
-			gAgent.getRegion()->getCapability(
-				"ProvisionVoiceAccountRequest");
-
-		if ( url == "" ) return;
-
+		region->getCapability("ProvisionVoiceAccountRequest");
+		
+		if ( url.empty() ) 
+		{
+			// we've not received the capability yet, so return.
+			// the password will remain empty, so we'll remain in
+			// stateIdle
+			return;
+		}
+		
 		LLHTTPClient::post(
-			url,
-			LLSD(),
-			new LLVivoxVoiceAccountProvisionResponder(retries));
+						   url,
+						   LLSD(),
+						   new LLVivoxVoiceAccountProvisionResponder(retries));
+		
+		setState(stateConnectorStart);		
 	}
 }
 
@@ -673,7 +689,8 @@ std::string LLVivoxVoiceClient::state2string(LLVivoxVoiceClient::state inState)
 		CASE(stateVoiceFontsWait);
 		CASE(stateVoiceFontsReceived);
 		CASE(stateCreatingSessionGroup);
-		CASE(stateNoChannel);
+		CASE(stateNoChannel);		
+		CASE(stateRetrievingParcelVoiceInfo);
 		CASE(stateJoiningSession);
 		CASE(stateSessionJoined);
 		CASE(stateRunning);
@@ -741,42 +758,6 @@ void LLVivoxVoiceClient::stateMachine()
 		}
 	}
 	
-	// Check for parcel boundary crossing
-	{
-		LLViewerRegion *region = gAgent.getRegion();
-		LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
-		
-		if(region && parcel)
-		{
-			S32 parcelLocalID = parcel->getLocalID();
-			std::string regionName = region->getName();
-			std::string capURI = region->getCapability("ParcelVoiceInfoRequest");
-		
-//			LL_DEBUGS("Voice") << "Region name = \"" << regionName << "\", parcel local ID = " << parcelLocalID << ", cap URI = \"" << capURI << "\"" << LL_ENDL;
-
-			// The region name starts out empty and gets filled in later.  
-			// Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes.
-			// If either is empty, wait for the next time around.
-			if(!regionName.empty())
-			{
-				if(!capURI.empty())
-				{
-					if((parcelLocalID != mCurrentParcelLocalID) || (regionName != mCurrentRegionName))
-					{
-						// We have changed parcels.  Initiate a parcel channel lookup.
-						mCurrentParcelLocalID = parcelLocalID;
-						mCurrentRegionName = regionName;
-						
-						parcelChanged();
-					}
-				}
-				else
-				{
-					LL_WARNS_ONCE("Voice") << "region doesn't have ParcelVoiceInfoRequest capability.  This is normal for a short time after teleporting, but bad if it persists for very long." << LL_ENDL;
-				}
-			}
-		}
-	}
 
 	switch(getState())
 	{
@@ -1026,22 +1007,9 @@ void LLVivoxVoiceClient::stateMachine()
 			}
 			else if(!mAccountName.empty())
 			{
-				LLViewerRegion *region = gAgent.getRegion();
-				
-				if(region)
+				if ( mAccountPassword.empty() )
 				{
-					if ( region->getCapability("ProvisionVoiceAccountRequest") != "" )
-					{
-						if ( mAccountPassword.empty() )
-						{
-							requestVoiceAccountProvision();
-						}
-						setState(stateConnectorStart);
-					}
-					else
-					{
-						LL_WARNS_ONCE("Voice") << "region doesn't have ProvisionVoiceAccountRequest capability!" << LL_ENDL;
-					}
+					requestVoiceAccountProvision();
 				}
 			}
 		break;
@@ -1382,11 +1350,7 @@ void LLVivoxVoiceClient::stateMachine()
 			setState(stateCreatingSessionGroup);
 			sessionGroupCreateSendMessage();
 #else
-			// Not using session groups -- skip the stateCreatingSessionGroup state.
-			setState(stateNoChannel);
-
-			// Initial kick-off of channel lookup logic
-			parcelChanged();		
+			setState(stateNoChannel);				
 #endif
 		break;
 		
@@ -1399,19 +1363,29 @@ void LLVivoxVoiceClient::stateMachine()
 			}
 			else if(!mMainSessionGroupHandle.empty())
 			{
-				setState(stateNoChannel);
-				
 				// Start looped recording (needed for "panic button" anti-griefing tool)
 				recordingLoopStart();
-
-				// Initial kick-off of channel lookup logic
-				parcelChanged();		
+				setState(stateNoChannel);	
 			}
 		break;
+			
+		//MARK: stateRetrievingParcelVoiceInfo
+		case stateRetrievingParcelVoiceInfo: 
+			// wait until parcel voice info is received.
+			if(mSessionTerminateRequested || !mVoiceEnabled)
+			{
+				// if a terminate request has been received,
+				// bail and go to the stateSessionTerminated
+				// state.  If the cap request is still pending,
+				// the responder will check to see if we've moved
+				// to a new session and won't change any state.
+				setState(stateSessionTerminated);
+			}
+			break;
+			
 					
 		//MARK: stateNoChannel
 		case stateNoChannel:
-			
 			LL_DEBUGS("Voice") << "State No Channel" << LL_ENDL;
 			mSpatialJoiningNum = 0;
 			// Do this here as well as inside sendPositionalUpdate().  
@@ -1432,6 +1406,16 @@ void LLVivoxVoiceClient::stateMachine()
 			{
 				setState(stateCaptureBufferPaused);
 			}
+			else if(checkParcelChanged() || (mNextAudioSession == NULL))
+			{
+				// the parcel is changed, or we have no pending audio sessions,
+				// so try to request the parcel voice info
+				// if we have the cap, we move to the appropriate state
+				if(requestParcelVoiceInfo())
+				{
+					setState(stateRetrievingParcelVoiceInfo);
+				}
+			}
 			else if(sessionNeedsRelog(mNextAudioSession))
 			{
 				requestRelog();
@@ -1466,32 +1450,28 @@ void LLVivoxVoiceClient::stateMachine()
 				notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINING);
 				setState(stateJoiningSession);
 			}
-			else if(!mSpatialSessionURI.empty())
-			{
-				// If we're not headed elsewhere and have a spatial URI, return to spatial.
-				switchChannel(mSpatialSessionURI, true, false, false, mSpatialSessionCredentials);
-			}
 		break;
-
+			
 		//MARK: stateJoiningSession
 		case stateJoiningSession:		// waiting for session handle
-		  
-		  // If this is true we have problem with connection to voice server (EXT-4313).
-		  // See descriptions of mSpatialJoiningNum and MAX_NORMAL_JOINING_SPATIAL_NUM.
-		  if(mSpatialJoiningNum == MAX_NORMAL_JOINING_SPATIAL_NUM) 
+			
+			// If this is true we have problem with connection to voice server (EXT-4313).
+			// See descriptions of mSpatialJoiningNum and MAX_NORMAL_JOINING_SPATIAL_NUM.
+			if(mSpatialJoiningNum == MAX_NORMAL_JOINING_SPATIAL_NUM) 
 		    {
-		      // Notify observers to let them know there is problem with voice
-		      notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED);
-		      llwarns << "There seems to be problem with connection to voice server. Disabling voice chat abilities." << llendl;
+				// Notify observers to let them know there is problem with voice
+				notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED);
+				llwarns << "There seems to be problem with connection to voice server. Disabling voice chat abilities." << llendl;
 		    }
-		  
-		  // Increase mSpatialJoiningNum only for spatial sessions- it's normal to reach this case for
-		  // example for p2p many times while waiting for response, so it can't be used to detect errors
-		  if(mAudioSession && mAudioSession->mIsSpatial)
+			
+			// Increase mSpatialJoiningNum only for spatial sessions- it's normal to reach this case for
+			// example for p2p many times while waiting for response, so it can't be used to detect errors
+			if(mAudioSession && mAudioSession->mIsSpatial)
 		    {
-		      mSpatialJoiningNum++;
+				
+				mSpatialJoiningNum++;
 		    }
-      
+			
 			// joinedAudioSession() will transition from here to stateSessionJoined.
 			if(!mVoiceEnabled)
 			{
@@ -1511,12 +1491,13 @@ void LLVivoxVoiceClient::stateMachine()
 					}
 				}
 			}
-		break;
-		
+			break;
+			
 		//MARK: stateSessionJoined
 		case stateSessionJoined:		// session handle received
 
-		  mSpatialJoiningNum = 0;
+
+			mSpatialJoiningNum = 0;
 			// It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4
 			// before continuing from this state.  They can happen in either order, and if I don't wait for both, things can get stuck.
 			// For now, the SessionGroup.AddSession response handler sets mSessionHandle and the SessionStateChangeEvent handler transitions to stateSessionJoined.
@@ -1553,7 +1534,7 @@ void LLVivoxVoiceClient::stateMachine()
 					sessionMediaDisconnectSendMessage(mAudioSession);
 					setState(stateSessionTerminated);
 				}
-			}
+			}	
 		break;
 		
 		//MARK: stateRunning
@@ -1565,6 +1546,7 @@ void LLVivoxVoiceClient::stateMachine()
 			}
 			else
 			{
+				
 				if(!inSpatialChannel())
 				{
 					// When in a non-spatial channel, never send positional updates.
@@ -1572,8 +1554,22 @@ void LLVivoxVoiceClient::stateMachine()
 				}
 				else
 				{
+					if(checkParcelChanged())
+					{
+						// if the parcel has changed, attempted to request the
+						// cap for the parcel voice info.  If we can't request it
+						// then we don't have the cap URL so we do nothing and will
+						// recheck next time around
+						if(requestParcelVoiceInfo())
+						{
+							// we did get the cap, and we made the request,
+							// so go wait for the response.
+							setState(stateRetrievingParcelVoiceInfo);
+						}
+					}
 					// Do the calculation that enforces the listener<->speaker tether (and also updates the real camera position)
 					enforceTether();
+					
 				}
 				
 				// Do notifications for expiring Voice Fonts.
@@ -3840,7 +3836,7 @@ void LLVivoxVoiceClient::participantUpdatedEvent(
 
 					// also initialize voice moderate_mode depend on Agent's participant. See EXT-6937.
 					// *TODO: remove once a way to request the current voice channel moderation mode is implemented.
-					if (gAgentID == participant->mAvatarID)
+					if (gAgent.getID() == participant->mAvatarID)
 					{
 						speaker_manager->initVoiceModerateMode();
 					}
@@ -4073,7 +4069,7 @@ void LLVivoxVoiceClient::messageEvent(
 				}
 				
 				LL_DEBUGS("Voice") << "adding message, name " << session->mName << " session " << session->mIMSessionID << ", target " << session->mCallerID << LL_ENDL;
-				gIMMgr->addMessage(session->mIMSessionID,
+				LLIMMgr::getInstance()->addMessage(session->mIMSessionID,
 						session->mCallerID,
 						session->mName.c_str(),
 						message.c_str(),
@@ -4447,24 +4443,91 @@ LLVivoxVoiceClient::participantState* LLVivoxVoiceClient::findParticipantByID(co
 }
 
 
-void LLVivoxVoiceClient::parcelChanged()
+
+// Check for parcel boundary crossing
+bool LLVivoxVoiceClient::checkParcelChanged(bool update)
 {
-	if(getState() >= stateNoChannel)
+	LLViewerRegion *region = gAgent.getRegion();
+	LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
+	
+	if(region && parcel)
 	{
-		// If the user is logged in, start a channel lookup.
-		LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;
+		S32 parcelLocalID = parcel->getLocalID();
+		std::string regionName = region->getName();
+		
+		//			LL_DEBUGS("Voice") << "Region name = \"" << regionName << "\", parcel local ID = " << parcelLocalID << ", cap URI = \"" << capURI << "\"" << LL_ENDL;
+		
+		// The region name starts out empty and gets filled in later.  
+		// Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes.
+		// If either is empty, wait for the next time around.
+		if(!regionName.empty())
+		{
+			if((parcelLocalID != mCurrentParcelLocalID) || (regionName != mCurrentRegionName))
+			{
+				// We have changed parcels.  Initiate a parcel channel lookup.
+				if (update)
+				{
+					mCurrentParcelLocalID = parcelLocalID;
+					mCurrentRegionName = regionName;
+				}
+				return true;
+			}
+		}
+	}
+	return false;
+}
+
+bool LLVivoxVoiceClient::parcelVoiceInfoReceived(state requesting_state)
+{
+	// pop back to the state we were in when the parcel changed and we managed to 
+	// do the request.
+	if(getState() == stateRetrievingParcelVoiceInfo)
+	{
+		setState(requesting_state);
+		return true;
+	}
+	else
+	{
+		// we've dropped out of stateRetrievingParcelVoiceInfo
+		// before we received the cap result, due to a terminate
+		// or transition to a non-voice channel.  Don't switch channels.
+		return false;
+	}
+}
+
 
-		std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest");
+bool LLVivoxVoiceClient::requestParcelVoiceInfo()
+{
+	LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;
+
+	// grab the cap for parcel voice info from the region.  
+	LLViewerRegion * region = gAgent.getRegion();
+	if (region == NULL)
+	{
+		return false;
+	}
+	// grab the cap.
+	std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest");
+	if (!url.empty())
+	{
+		// if we've already retrieved the cap from the region, go ahead and make the request,
+		// and return true so we can go into the state that waits for the response.
+		checkParcelChanged(true);
 		LLSD data;
+		LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;
+		
 		LLHTTPClient::post(
-			url,
-			data,
-			new LLVivoxVoiceClientCapResponder);
+						   url,
+						   data,
+						   new LLVivoxVoiceClientCapResponder(getState()));
+		return true;
 	}
-	else
+	else 
 	{
-		// The transition to stateNoChannel needs to kick this off again.
-		LL_INFOS("Voice") << "not logged in yet, deferring" << LL_ENDL;
+		
+		// we don't have the cap yet, so return false so the caller can try again later.
+		LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest cap not yet available, deferring" << LL_ENDL;
+		return false;
 	}
 }
 
@@ -4488,6 +4551,7 @@ void LLVivoxVoiceClient::switchChannel(
 		case stateJoinSessionFailed:
 		case stateJoinSessionFailedWaiting:
 		case stateNoChannel:
+		case stateRetrievingParcelVoiceInfo:
 			// Always switch to the new URI from these states.
 			needsSwitch = true;
 		break;
@@ -4560,13 +4624,10 @@ void LLVivoxVoiceClient::switchChannel(
 			mNextAudioSession->mIsP2P = is_p2p;
 		}
 		
-		if(getState() <= stateNoChannel)
-		{
-			// We're already set up to join a channel, just needed to fill in the session URI
-		}
-		else
+		if(getState() >= stateRetrievingParcelVoiceInfo)
 		{
-			// State machine will come around and rejoin if uri/handle is not empty.
+			// If we're already in a channel, or if we're joining one, terminate
+			// so we can rejoin with the new session data.
 			sessionTerminate();
 		}
 	}
@@ -6267,13 +6328,13 @@ void LLVivoxVoiceClient::avatarNameResolved(const LLUUID &id, const std::string
 			{
 				session->mTextInvitePending = false;
 
-				// We don't need to call gIMMgr->addP2PSession() here.  The first incoming message will create the panel.				
+				// We don't need to call LLIMMgr::getInstance()->addP2PSession() here.  The first incoming message will create the panel.				
 			}
 			if(session->mVoiceInvitePending)
 			{
 				session->mVoiceInvitePending = false;
 
-				gIMMgr->inviteToSession(
+				LLIMMgr::getInstance()->inviteToSession(
 										session->mIMSessionID,
 										session->mName,
 										session->mCallerID, 
diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h
index 471545de562cb76a3eac7818dc43b42abc931457..1142a1a49c7583a281eea990da63f136090ee030 100644
--- a/indra/newview/llvoicevivox.h
+++ b/indra/newview/llvoicevivox.h
@@ -380,7 +380,8 @@ class LLVivoxVoiceClient :	public LLSingleton<LLVivoxVoiceClient>,
 		stateVoiceFontsWait,		// Awaiting the list of voice fonts
 		stateVoiceFontsReceived,	// List of voice fonts received
 		stateCreatingSessionGroup,	// Creating the main session group
-		stateNoChannel,				// 
+		stateNoChannel,				// Need to join a channel
+		stateRetrievingParcelVoiceInfo,    // waiting for parcel voice info request to return with spatial credentials
 		stateJoiningSession,		// waiting for session handle
 		stateSessionJoined,			// session handle received
 		stateRunning,				// in session, steady state
@@ -620,6 +621,8 @@ class LLVivoxVoiceClient :	public LLSingleton<LLVivoxVoiceClient>,
 	void sessionMediaDisconnectSendMessage(sessionState *session);
 	void sessionTextDisconnectSendMessage(sessionState *session);
 
+	
+	
 	// Pokes the state machine to leave the audio session next time around.
 	void sessionTerminate();	
 	
@@ -629,6 +632,12 @@ class LLVivoxVoiceClient :	public LLSingleton<LLVivoxVoiceClient>,
 	// Does the actual work to get out of the audio session
 	void leaveAudioSession();
 	
+	// notifies the voice client that we've received parcel voice info
+	bool parcelVoiceInfoReceived(state requesting_state);
+	
+	friend class LLVivoxVoiceClientCapResponder;
+	
+	
 	void lookupName(const LLUUID &id);
 	void onAvatarNameCache(const LLUUID& id, const LLAvatarName& av_name);
 	void avatarNameResolved(const LLUUID &id, const std::string &name);
@@ -733,9 +742,11 @@ class LLVivoxVoiceClient :	public LLSingleton<LLVivoxVoiceClient>,
 	bool mCaptureDeviceDirty;
 	bool mRenderDeviceDirty;
 	
+	
+	bool checkParcelChanged(bool update = false);
 	// This should be called when the code detects we have changed parcels.
 	// It initiates the call to the server that gets the parcel channel.
-	void parcelChanged();
+	bool requestParcelVoiceInfo();
 	
 	void switchChannel(std::string uri = std::string(), bool spatial = true, bool no_reconnect = false, bool is_p2p = false, std::string hash = "");
 	void joinSession(sessionState *session);
diff --git a/indra/newview/skins/default/xui/da/floater_settings_debug.xml b/indra/newview/skins/default/xui/da/floater_settings_debug.xml
index 016e5af378c0510372ee6c8d8596467d5801ce1e..f7eda56e4848203efb6cd4c67a7a63ed31727e5b 100644
--- a/indra/newview/skins/default/xui/da/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/da/floater_settings_debug.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="settings_debug" title="DEBUG INDSTILLINGER">
 	<radio_group name="boolean_combo">
-		<radio_item label="SANDT" name="TRUE" value="sand"/>
-		<radio_item label="FALSK" name="FALSE" value=""/>
+		<radio_item label="SANDT" name="TRUE" />
+		<radio_item label="FALSK" name="FALSE" />
 	</radio_group>
 	<color_swatch label="Farve" name="val_color_swatch"/>
 	<spinner label="x" name="val_spinner_1"/>
diff --git a/indra/newview/skins/default/xui/da/panel_people.xml b/indra/newview/skins/default/xui/da/panel_people.xml
index 925492b2d7d3b3077e6576ae39a2ee920be19dba..66a128cd13e7924b56795bf17905491654a8bb2f 100644
--- a/indra/newview/skins/default/xui/da/panel_people.xml
+++ b/indra/newview/skins/default/xui/da/panel_people.xml
@@ -66,16 +66,16 @@ Leder du efter nogen at være sammen med? Prøv [secondlife:///app/worldmap Verd
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Profil" name="view_profile_btn" tool_tip="Vis billeder, grupper og anden beboer information"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="Ã…ben session med privat besked (IM)"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Kald" name="call_btn" tool_tip="Opkald til denne beboer"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Del" name="share_btn" tool_tip="Del en genstand fra beholdning"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Teleportér" name="teleport_btn" tool_tip="Tilbyd teleport"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index f1e42232c8f0cccf4a76f51b892e73988a2415da..f0fa4386d2770ea370cb64c17cd4372ceeeb001b 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -219,38 +219,38 @@ werden.
 			<text name="objects_available">
 				[COUNT] von [MAX] ([AVAILABLE] verfügbar)
 			</text>
-			<text name="Primitives parcel supports:" width="200">
+			<text name="Primitives parcel supports:">
 				Von Parzelle unterstützte Prims:
 			</text>
-			<text left="204" name="object_contrib_text" width="152">
+			<text name="object_contrib_text">
 				[COUNT]
 			</text>
 			<text name="Primitives on parcel:">
 				Prims auf Parzelle:
 			</text>
-			<text left="204" name="total_objects_text" width="48">
+			<text name="total_objects_text">
 				[COUNT]
 			</text>
-			<text left="14" name="Owned by parcel owner:" width="200">
+			<text name="Owned by parcel owner:" width="200">
 				Im Eigentum des Parzellenbesitzers:
 			</text>
-			<text left="204" left_delta="200" name="owner_objects_text" width="48">
+			<text left_delta="204" name="owner_objects_text">
 				[COUNT]
 			</text>
-			<button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/>
-			<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
-			<text left="14" name="Set to group:">
+			<button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner"/>
+			<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOwner..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
+			<text name="Set to group:">
 				Der Gruppe zugeordnet:
 			</text>
-			<text left="204" name="group_objects_text" width="48">
+			<text name="group_objects_text">
 				[COUNT]
 			</text>
-			<button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60"/>
-			<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
-			<text left="14" name="Owned by others:" width="128">
+			<button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup"/>
+			<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnGroup..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
+			<text name="Owned by others:">
 				Im Eigentum anderer:
 			</text>
-			<text left="204" name="other_objects_text" width="48">
+			<text name="other_objects_text">
 				[COUNT]
 			</text>
 			<button label="Anzeigen" label_selected="Anzeigen" name="ShowOther"/>
diff --git a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
index fd65987aa989ae1e198338d6ebcb4d954c6e68a6..9be22f3ccbf823efc59af04d91473494e30ee1e1 100644
--- a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
@@ -9,7 +9,7 @@
 		</text>
 		<check_box label="Bearbeiten" name="next_owner_modify"/>
 		<check_box label="Kopieren" name="next_owner_copy"/>
-		<check_box label="Verkaufen/Weggeben" left_delta="80" name="next_owner_transfer"/>
+		<check_box label="Verkaufen/Weggeben" name="next_owner_transfer"/>
 	</panel>
 	<button label="OK" label_selected="OK" name="ok"/>
 	<button label="Abbrechen" label_selected="Abbrechen" name="cancel"/>
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index c014b8e040d32db2da95869d923b8f6e4dbac2f4..ae68c71a80c7ef9041345a7ac276af0e7de8e9d3 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -4,7 +4,7 @@
 		unbekannt
 	</floater.string>
 	<radio_group label="Fototyp" name="snapshot_type_radio">
-		<radio_item label="Email" name="postcard"/>
+		<radio_item label="E-Mail" name="postcard"/>
 		<radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/>
 		<radio_item label="Auf meinem Computer speichern" name="local"/>
 	</radio_group>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 258e67a1386a4188a56edd1d7dbe7ca55ccd04c3..338b6093436983cc6816fdadb64d18ecc4af2aa4 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -64,9 +64,9 @@
 		<radio_item label="Fläche auswählen" name="radio select face"/>
 	</radio_group>
 	<check_box label="Verknüpfte Teile bearbeiten" name="checkbox edit linked parts"/>
-	<button label="Link" name="link_btn"/>
-	<button label="Verknüpfung auflösen" name="unlink_btn"/>
-	<text name="RenderingCost" tool_tip="Zeigt die errechneten Wiedergabekosten für dieses Objekt">
+	<button label="Link" name="link_btn" width="30"/>
+	<button label="Verknüpfung auflösen" name="unlink_btn" width="126"/>
+	<text name="RenderingCost" tool_tip="Zeigt die errechneten Wiedergabekosten für dieses Objekt" left_pad="0">
 		þ: [COUNT]
 	</text>
 	<check_box label="" name="checkbox uniform"/>
diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml
index 004792bbf531446352523b2c8e936925f1311cba..63a832a16555790e12363d895d317b51ce965282 100644
--- a/indra/newview/skins/default/xui/de/panel_people.xml
+++ b/indra/newview/skins/default/xui/de/panel_people.xml
@@ -66,16 +66,16 @@ Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Profil" name="view_profile_btn" tool_tip="Bilder, Gruppen und andere Einwohner-Informationen anzeigen"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="Instant Messenger öffnen"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Anrufen" name="call_btn" tool_tip="Diesen Einwohner anrufen"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
index b874074c792b70c25334f2cd8dd98c0ddc4e5af6..9175ea0bae9fb89f5a8f99580506ef178cdeea47 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
@@ -60,7 +60,7 @@
 			m
 		</text>
 		<slider label="Max. Partikelzahl:" name="MaxParticleCount"/>
-		<slider label="Max. Anzahl an voll dargestellten Avataren:" name="MaxNumberAvatarDrawn"/>
+		<slider label="Max. Anzahl an voll dargestellten Avataren:" label_width="230" name="MaxNumberAvatarDrawn" width="315"/>
 		<slider label="Post-Processing-Qualität:" name="RenderPostProcess"/>
 		<text name="MeshDetailText">
 			Darstellungsgrad:
diff --git a/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml b/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml
index 990193574e5f4aff2fac6462ddf1a587a74be247..fa659040eaa57c1c5e325093dcc427058ea160b3 100644
--- a/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml
+++ b/indra/newview/skins/default/xui/de/panel_scrolling_param_base.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel name="LLScrollingPanelParamBase">
-	<slider label="[BESCHR]" name="param slider"/>
+	<slider label="[DESC]" name="param slider"/>
 </panel>
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 6e985e04769035b980ec7b80bd46225303e38833..ecd2b119c9a93dd4a9455d3662b8ce1395ac50ff 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -414,7 +414,7 @@
              right="-10"
              name="Cancel Land Sale"
              left_pad="5"
-             top_pad="-15"
+             top_pad="7"
              width="180" />
             <text
              type="string"
@@ -488,6 +488,7 @@
              width="186">
                 0
             </text>
+
             <button
              enabled="false"
              follows="left|top"
@@ -495,9 +496,20 @@
              label="Buy Land"
              layout="topleft"
              left_delta="52"
+			 top_pad="5"
              name="Buy Land..."
-             top_pad="7"
              width="130" />
+			<button
+             enabled="false"
+             follows="left|top"
+             height="23"
+             label="Linden Sale"
+             layout="topleft"
+             left="10"
+             name="Linden Sale..."
+             tool_tip="Land must be owned, set content, and not already for auction."
+             top_pad="-23"
+             width="150" />
             <button
              enabled="true"
              follows="left|top"
@@ -545,18 +557,7 @@
              layout="topleft"
              left_delta="0"
              name="Reclaim Land..."
-             top_delta="-50"
-             width="180" />
-            <button
-             enabled="false"
-             follows="left|top"
-             height="23"
-             label="Linden Sale"
-             layout="topleft"
-             left_delta="0"
-             name="Linden Sale..."
-             tool_tip="Land must be owned, set content, and not already for auction."
-             top_pad="2"
+             top_delta="-25"
              width="180" />
         </panel>
         <panel
@@ -2125,4 +2126,4 @@ Only large parcels can be listed in search.
              </panel>
         </panel>
     </tab_container>
-</floater>
+</floater>
\ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
index ec190ab656c97b261109b5b06a9dcd1be8dc72e5..89a0c4c287327eb53a2954310f9ab54f14b654f6 100644
--- a/indra/newview/skins/default/xui/en/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
@@ -330,13 +330,13 @@
      increment="1"
      initial_value="75"
      label="Image quality"
-     label_width="100"
+     label_width="124"
      layout="topleft"
      left_delta="0"
      max_val="100"
      name="image_quality_slider"
      top_pad="5"
-     width="205" />
+     width="228" />
     <text
      type="string"
      length="1"
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index 7441b2cd9caabe8f020483b1789a6ce0b273b235..8b8f70b940b2f69cd289ddc0f0ff10530c8849ee 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -279,7 +279,7 @@
      layout="topleft"
      left_pad="2"
      name="unlink_btn"
-     width="50">
+     width="105">
 	  <button.commit_callback
 	     function="BuildTool.UnlinkObjects"/>
     </button>
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index 3ead67ca57f85efe27c303cc30c971a6109dbb01..a7d1aa963c7101f8c07676f1b4453de1e44f66f7 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -135,6 +135,14 @@
          name="login_panel_holder"
          width="1024"/>
 
+      <debug_view follows="all"
+                  left="0"
+                  top="0"
+                  mouse_opaque="false"
+                  height="500"
+                  name="DebugView"
+                  width="1024"/>
+
       <panel follows="all"
                     height="500"
                     left="0"
@@ -154,13 +162,6 @@
                       top="0"
                       width="1024"/>
       </panel>
-      <debug_view follows="all"
-                  left="0"
-                  top="0"
-                  mouse_opaque="false"
-                  height="500"
-                  name="DebugView"
-                  width="1024"/>
     </layout_panel>
   </layout_stack>
   <panel mouse_opaque="false"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 81046e99a0a6f0fb2a2e77970b92638c9a5cba7e..a0d0c8625ea64e967fff6d157ee39c7848ea89cc 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -232,6 +232,16 @@
              function="SideTray.PanelPeopleTab"
              parameter="nearby_panel" />
             </menu_item_call>
+        <menu_item_check
+         label="Nearby Voice"
+         name="Nearby Voice">
+            <menu_item_check.on_check
+             function="Floater.Visible"
+             parameter="voice_controls" />
+            <menu_item_check.on_click
+             function="Floater.Toggle"
+             parameter="voice_controls" />
+        </menu_item_check>
     </menu>
     <menu
      create_jump_keys="true"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
old mode 100755
new mode 100644
index 7bf742d949aae81df4447be53d670bf0c83bf787..cd0dc719bb8bbf2725aab2cd75e83f17770b9ed0
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -3696,6 +3696,19 @@ Join me in [REGION]
     </form>
   </notification>
 
+  <notification
+   icon="alertmodal.tga"
+   name="TooManyTeleportOffers"
+   type="alertmodal">
+You attempted to make [OFFERS] teleport offers
+which exceeds the limit of [LIMIT].
+    <tag>group</tag>
+    <tag>fail</tag>
+  <usetemplate
+     name="okbutton"
+     yestext="OK"/>
+  </notification>
+
   <notification
    icon="alertmodal.tga"
    name="OfferTeleportFromGod"
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 9bd60b935f6cc49bba64da11999617736b3feb4c..bfc503f05b05a6199e676b05dceaae5ac7b4cfcb 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
@@ -104,12 +104,12 @@
 		top_pad="15"
 		left="10"
 		name="show_text"
-		width="40">
+		width="62">
 	  Show:
 	</text>
 	<combo_box
 		height="23"
-		left="50"
+		left="72"
 		width="140"
 		top_delta="-5"
 		follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_list.xml b/indra/newview/skins/default/xui/en/panel_outfits_list.xml
index 9f98019c948ad53a4d746444516041c5736d2a60..a0096adc0167614308428e3d7d2f77106410cd9e 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml
@@ -14,9 +14,7 @@
      background_visible="true"
      bg_alpha_color="DkGray2"
      bg_opaque_color="DkGray2"
-     no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]."
-     no_matched_tabs_text.v_pad="10"
-     no_visible_tabs_text.value="You don't have any outfits yet. Try [secondlife:///app/search/all/ Search]"
+
      follows="all"
      height="400"
      layout="topleft"
@@ -24,6 +22,13 @@
      name="outfits_accordion"
      top="0"
      width="309">
+       <no_matched_tabs_text
+         name="no_matched_outfits_msg"
+         value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]."
+         v_pad="10"/>
+       <no_visible_tabs_text
+         name="no_outfits_msg"
+         value="You don't have any outfits yet. Try [secondlife:///app/search/all/ Search]"/>
     </accordion>
     <panel
      background_visible="true"
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 775805ad2e751b3517bc3fd95c5ca8c566ab3ce0..cc4522f9443711f50669c9b708e650b1f7e924bb 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -110,8 +110,9 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
            <layout_panel
              height="142"
              layout="topleft"
+             min_dim="100"
              mouse_opaque="false"
-             user_resize="false"
+             user_resize="true"
              visibility_control="NearbyListShowMap"
              width="313">
              <net_map
@@ -128,9 +129,9 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
            <layout_panel
              height="213"
              layout="topleft"
-             min_height="100"
+             min_dim="100"
              mouse_opaque="false"
-             user_resize="false"
+             user_resize="true"
              width="313">
              <avatar_list
                allow_select="true"
@@ -621,7 +622,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
 			height="23"
 			layout="bottomleft"
 			left_pad="3"
-			name="chat_btn_lp"
+			name="im_btn_lp"
 		    user_resize="false" 
 		    auto_resize="true"
 			width="41">
@@ -642,7 +643,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
 			height="23"
 			layout="bottomleft"
 			left_pad="3"
-			name="chat_btn_lp"
+			name="call_btn_lp"
 		    user_resize="false" 
 		    auto_resize="true"
 			width="52">
@@ -663,7 +664,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
 			height="23"
 			layout="bottomleft"
 			left_pad="3"
-			name="chat_btn_lp"
+			name="share_btn_lp"
 		    user_resize="false" 
 		    auto_resize="true"
 			width="66">
@@ -684,7 +685,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
 			height="23"
 			layout="bottomleft"
 			left_pad="3"
-			name="chat_btn_lp"
+			name="teleport_btn_lp"
 		    user_resize="false" 
 		    auto_resize="true"
 			width="77">
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
index 1745c1e4b0e2f8b0fe862e697bfc0dcae47c743c..1f92244eb97d5c265214c85e1ccb621400faad1e 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
@@ -385,7 +385,7 @@
 		height="18"
 		image_name="Move_Walk_Off"
 		layout="topleft"
-    left_pad="170" 
+		left_pad="170" 
 		name="avatar_icon"
 		mouse_opaque="false"
 		visible="true"
@@ -496,8 +496,8 @@
     filename="panel_sound_devices.xml"
      visiblity_control="ShowDeviceSettings"
      name="device_settings_panel"
-    top="314"
-    width="345"
+    top_pad="0"
+    width="480"
     left="18"
     class="panel_voice_device_settings"/>
     </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_sound_devices.xml b/indra/newview/skins/default/xui/en/panel_sound_devices.xml
index ccae7c535092dc796c89424f6ff0911a742e724b..0a20a4a96569012a13a4ad138e8bda07c91fb3bb 100644
--- a/indra/newview/skins/default/xui/en/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/en/panel_sound_devices.xml
@@ -7,33 +7,46 @@
  layout="topleft"
  name="device_settings_panel"
  width="360">
-	<panel.string
-	  name="default_text">
-		Default
-	</panel.string>
-	<icon
-		   height="18"
-		   image_name="Microphone_On"
-		   left_delta="4"
-		   name="microphone_icon"
-		   mouse_opaque="false"
-		   top="7"
-       layout="topleft"
-		   visible="true"
-		   width="18" />
-	<text
+    <panel.string
+      name="default_text">
+        Default
+    </panel.string>
+    <icon
+     follows="left|top"
+     height="18"
+     image_name="Microphone_On"
+     left_delta="-5"
+     name="microphone_icon"
+     mouse_opaque="false"
+     top="7"
+     layout="topleft"
+     visible="true"
+     width="18" />
+    <icon
+     follows="left|top"
+     height="18"
+     image_name="Parcel_Voice_Dark"
+     layout="topleft"
+     left_pad="220" 
+     name="speaker_icon"
+     mouse_opaque="false"
+     top_delta="0"
+     visible="true"
+     width="22" />
+    <text
      type="string"
      length="1"
-      font.style="BOLD"
+     font.style="BOLD"
      follows="left|top"
      height="16"
      layout="topleft"
-     left_pad="3"
+     left_pad="-240"
+     top_delta="5"
      name="Input"
-     width="70">
-		Input
-	</text>
-	<combo_box
+     width="60">
+        Input
+    </text>
+    <combo_box
      height="23"
      control_name="VoiceInputAudioDevice"
      follows="left|top"
@@ -42,33 +55,57 @@
      max_chars="128"
      name="voice_input_device"
      top_delta="-5"
-     width="200" />
-	<text
-	  type="string"
-	  length="1"
-	  follows="left|top"
-	  height="16"
-	  layout="topleft"
-	  left_delta="-70"
-	  name="My volume label"
-	  top_pad="4"
-	  width="200">
-		My volume:
-	</text>
-	<slider_bar
-	  control_name="AudioLevelMic"
-   follows="top|right|left"
-   height="17"
-   increment="0.025"
-   initial_value="1.0"
-   layout="topleft"
-   left_delta="-6"
-   max_val="2"
-   name="mic_volume_slider"
-   tool_tip="Change the volume using this slider"
-   top_pad="-1"
-   width="220" />
-	<text
+     width="150" />
+    <text
+     font.style="BOLD"
+     type="string"
+     length="1"
+     follows="left|top"
+     height="15"
+     layout="topleft"
+     left_pad="30"
+     name="Output"
+     top_delta="5"
+     width="60">
+        Output
+    </text>
+    <combo_box
+     control_name="VoiceOutputAudioDevice"
+     height="23"
+     follows="left|top"
+     layout="topleft"
+     left_pad="0"
+     max_chars="128"
+     name="voice_output_device"
+     top_delta="-4"
+     width="150" />
+    <text
+     type="string"
+     halign="left"
+     length="1"
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left_delta="-300"
+     name="My volume label"
+     top_pad="14"
+     width="200">
+        My volume:
+    </text>
+    <slider_bar
+     control_name="AudioLevelMic"
+     follows="top|right|left"
+     height="17"
+     increment="0.025"
+     initial_value="1.0"
+     layout="topleft"
+     left_delta="95"
+     max_val="2"
+     name="mic_volume_slider"
+     tool_tip="Change the volume using this slider"
+     top_pad="-18"
+     width="110" />
+    <text
      type="string"
      text_color="EmphasisColor"
      length="1"
@@ -79,8 +116,8 @@
      name="wait_text"
      top_delta="-1"
      width="110">
-		Please wait
-	</text>
+        Please wait
+    </text>
   <locate
      follows="right|top"
      height="20"
@@ -121,35 +158,4 @@
      name="bar4"
      top_delta="0"
      width="20" />
-	<icon
-	   height="18"
-	   image_name="Parcel_Voice_Light"
-	   left="5"
-	   name="speaker_icon"
-	   mouse_opaque="false"
-	   top_pad="3"
-	   visible="true"
-	   width="22" />
-	<text
-     font.style="BOLD"
-     type="string"
-     length="1"
-     follows="left|top"
-     height="15"
-     layout="topleft"
-     left_pad="0"
-     name="Output"
-     width="70">
-		Output
-	</text>
-	<combo_box
-     control_name="VoiceOutputAudioDevice"
-     height="23"
-     follows="left|top"
-     layout="topleft"
-     left_pad="0"
-     max_chars="128"
-     name="voice_output_device"
-     top_delta="-3"
-     width="200" />
-</panel>
+</panel>
\ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 71f48c833d9ad6c75bf22bfe4d0c88b92398cf02..143a989d321598dd435233770e441740853764aa 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2250,6 +2250,9 @@ Returns a string with the requested data about the region
 	<string name="IMMainland">mainland</string>
 	<string name="IMTeen">teen</string>
 
+    <!-- floater about land -->
+    <string name="Anyone">anyone</string>
+
 	<!-- floater region info -->
 	<!-- The following will replace variable [ALL_ESTATES] in notifications EstateAllowed*, EstateBanned*, EstateManager* -->
 	<string name="RegionInfoError">error</string>
diff --git a/indra/newview/skins/default/xui/es/floater_buy_currency.xml b/indra/newview/skins/default/xui/es/floater_buy_currency.xml
index 2f92cb55ebc8be255450db8db1a44b4a733dc76a..43bbf0b70fc5a36bf62eb2e646762d906247b3f7 100644
--- a/indra/newview/skins/default/xui/es/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_currency.xml
@@ -18,7 +18,7 @@
 	<text name="balance_amount">
 		[AMT] L$
 	</text>
-	<text name="currency_action" width="50">
+	<text name="currency_action">
 		Quiero comprar
 	</text>
 	<text name="currency_label">
diff --git a/indra/newview/skins/default/xui/es/floater_settings_debug.xml b/indra/newview/skins/default/xui/es/floater_settings_debug.xml
index bca1839f09ffef3b126abe7b6a820d9fe68685d6..1da2e491e1fbdb6b08dc234dcc5e42a1a38bdceb 100644
--- a/indra/newview/skins/default/xui/es/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/es/floater_settings_debug.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="settings_debug" title="CONFIGURACIONES DEL DEPURADOR">
 	<radio_group name="boolean_combo">
-		<radio_item label="VERDADERO" name="TRUE" value="verdadero"/>
-		<radio_item label="FALSO" name="FALSE" value=""/>
+		<radio_item label="VERDADERO" name="TRUE" />
+		<radio_item label="FALSO" name="FALSE" />
 	</radio_group>
 	<color_swatch label="Color" name="val_color_swatch"/>
 	<spinner label="x" name="val_spinner_1"/>
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index 9d29bc40bfa0adb047430487c506fc0bcb8dab21..78f18b745cabdca2ee78f6969e77e4307c0ef285 100644
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
@@ -65,7 +65,7 @@
 	</radio_group>
 	<check_box label="Editar las partes enlazadas" name="checkbox edit linked parts"/>
 	<button label="Enlazar" name="link_btn"/>
-	<button label="Desenlazar" name="unlink_btn"/>
+	<button label="Desenlazar" name="unlink_btn" width="95"/>
 	<text name="RenderingCost" tool_tip="Muestra cuánto se calcula que cuesta renderizar este objeto">
 		þ: [COUNT]
 	</text>
diff --git a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
index e8e95c3bac3f98a18bbafc80ae913772759d1d24..293c9ef1d9491fc8b21ff5dc62bc6db7dd281f86 100644
--- a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel name="navigation_bar">
 	<panel name="navigation_panel">
-		<pull_button name="back_btn" tool_tip="Volver a lo localización anterior"/>
+		<pull_button name="back_btn" tool_tip="Volver a la localización anterior"/>
 		<pull_button name="forward_btn" tool_tip="Ir una localización adelante"/>
 		<button name="home_btn" tool_tip="Teleportar a mi Base"/>
 		<location_input label="Localización" name="location_combo"/>
diff --git a/indra/newview/skins/default/xui/es/panel_people.xml b/indra/newview/skins/default/xui/es/panel_people.xml
index 01149e412ddcb63ea32684d84ea5152f4fb89abf..a9d38dca2502807bae6ed8b37651ad1bf088cdbd 100644
--- a/indra/newview/skins/default/xui/es/panel_people.xml
+++ b/indra/newview/skins/default/xui/es/panel_people.xml
@@ -66,16 +66,16 @@
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Perfil" name="view_profile_btn" tool_tip="Mostrar imágenes, grupos y otra información del Residente"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="MI" name="im_btn" tool_tip="Abrir una sesión de mensajes instantáneos"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Llamar" name="call_btn" tool_tip="Llamar a este Residente"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Compartir" name="share_btn" tool_tip="Compartir un objeto del inventario"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Teleporte" name="teleport_btn" tool_tip="Ofrecer teleporte"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_colors.xml b/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
index e6e4c132038c654f95d5be28a9cd283ae923db15..d47a6d718a688958078b3f889c057530dbf2a7ec 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
@@ -39,6 +39,6 @@
 	<text name="floater_opacity">
 		Opacidad de la ventana:
 	</text>
-	<slider label="Activo:" name="active"/>
-	<slider label="Inactivo:" name="inactive"/>
+	<slider label="Activa:" name="active"/>
+	<slider label="Inactiva:" name="inactive"/>
 </panel>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
index fa7806a75aa7643628aacd5becefe3a661a4ca96..75d175b262b261881a3b137f4f8a16dd3cdee3fa 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
@@ -12,7 +12,7 @@
 	<slider label="Ambiental" name="Wind Volume"/>
 	<slider label="Efectos de sonido" name="SFX Volume"/>
 	<slider label="Música en streaming" name="Music Volume"/>
-	<check_box label="Activados" name="enable_music"/>
+	<check_box label="Activada" name="enable_music"/>
 	<slider label="Multimedia" name="Media Volume"/>
 	<check_box label="Activados" name="enable_media"/>
 	<slider label="Chat de voz" name="Voice Volume"/>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 3731b6b57c54dd235c56665a67b268c99f0c20da..b759eed738e47fa215ff9fc8c01289a9c4bc9728 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -3628,6 +3628,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
 	<string name="LocationCtrlComboBtnTooltip">
 		Historial de mis localizaciones
 	</string>
+	<string name="LocationCtrlForSaleTooltip">
+		Comprar este terreno
+	</string>
 	<string name="LocationCtrlAdultIconTooltip">
 		Región Adulta
 	</string>
diff --git a/indra/newview/skins/default/xui/fr/panel_people.xml b/indra/newview/skins/default/xui/fr/panel_people.xml
index 166f04b3e47ce7437342c57b6b7d4c910b6c663c..b24c340708490c1e6d7eaa6d3c4c9730e16c6b0b 100644
--- a/indra/newview/skins/default/xui/fr/panel_people.xml
+++ b/indra/newview/skins/default/xui/fr/panel_people.xml
@@ -66,16 +66,16 @@ Pour rechercher des résidents avec qui passer du temps, utilisez [secondlife://
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Profil" name="view_profile_btn" tool_tip="Afficher la photo, les groupes et autres infos des résidents"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="Ouvrir une session IM"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Appel" name="call_btn" tool_tip="Appeler ce résident"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Partager" name="share_btn" tool_tip="Partager un article de l&apos;inventaire"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Téléporter" name="teleport_btn" tool_tip="Proposer une téléportation"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/it/floater_settings_debug.xml b/indra/newview/skins/default/xui/it/floater_settings_debug.xml
index aab00a26ce47a570fc005ba850b123cfcff48689..489d52d3b833f723c07650943fcfda2da0c0efe2 100644
--- a/indra/newview/skins/default/xui/it/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/it/floater_settings_debug.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="settings_debug" title="PARAMETRI DI DEBUG">
 	<radio_group name="boolean_combo">
-		<radio_item label="VERO" name="TRUE" value="vero"/>
-		<radio_item label="FALSO" name="FALSE" value=""/>
+		<radio_item label="VERO" name="TRUE" />
+		<radio_item label="FALSO" name="FALSE" />
 	</radio_group>
 	<color_swatch label="Colore" name="val_color_swatch"/>
 	<spinner label="x" name="val_spinner_1"/>
diff --git a/indra/newview/skins/default/xui/it/panel_people.xml b/indra/newview/skins/default/xui/it/panel_people.xml
index b24a4055f76dca969fec1b431f1e30f488489ef2..f903ae6e2c02a708e51f8bbc5ca8d5a35349b0a0 100644
--- a/indra/newview/skins/default/xui/it/panel_people.xml
+++ b/indra/newview/skins/default/xui/it/panel_people.xml
@@ -66,16 +66,16 @@ Stai cercando persone da frequentare? Prova la [secondlife:///app/worldmap Mappa
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Profilo" name="view_profile_btn" tool_tip="Mostra immagine, gruppi e altre informazioni del residente"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="Apri una sessione messaggio istantaneo"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Chiama" name="call_btn" tool_tip="Chiama questo residente"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Condividi" name="share_btn" tool_tip="Condividi un oggetto dell&apos;inventario"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Teleport" name="teleport_btn" tool_tip="Offri teleport"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index b29f744a68078060cbf044aa0ce8633cb35b3f92..f7d77d351edda100c1e392d15f3b5996e88fd01d 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -74,8 +74,8 @@
 		両側を延ばす
 	</text>
 	<check_box initial_value="true" label="テクスチャを引き延ばす" name="checkbox stretch textures"/>
-	<check_box initial_value="true" label="グリッドにスナップ" left_delta="27" name="checkbox snap to grid"/>
-	<combo_box left_delta="60" name="combobox grid mode" tool_tip="オブジェクトの配置に使うグリッドルーラを選択します" width="76">
+	<check_box initial_value="true" label="グリッドにスナップ" name="checkbox snap to grid"/>
+	<combo_box name="combobox grid mode" tool_tip="オブジェクトの配置に使うグリッドルーラを選択します" >
 		<combo_box.item label="インワールドグリッド" name="World"/>
 		<combo_box.item label="ローカルグリッド" name="Local"/>
 		<combo_box.item label="リファレンスグリッド" name="Reference"/>
@@ -137,7 +137,7 @@
 	<text name="object_cost" tool_tip="[prims] / [physics complexity] として現在選択されているオブジェクトのコスト">
 		料金: [COST] / [PHYSICS]
 	</text>
-	<tab_container name="Object Info Tabs" tab_max_width="150" tab_min_width="30">
+	<tab_container name="Object Info Tabs" >
 		<panel label="一般" name="General">
 			<panel.string name="text deed continued">
 				譲渡
@@ -379,22 +379,22 @@
 				オブジェクトの特徴を編集:
 			</text>
 			<check_box label="フレキシブルパス" name="Flexible1D Checkbox Ctrl" tool_tip="Z 軸を中心にオブジェクトの屈曲を有効にします(クライアント側のみ)"/>
-			<spinner label="柔軟性" label_width="72" name="FlexNumSections" width="135"/>
-			<spinner label="重力" label_width="72" name="FlexGravity" width="135"/>
-			<spinner label="ドラッグ" label_width="72" name="FlexFriction" width="135"/>
-			<spinner label="風" label_width="72" name="FlexWind" width="135"/>
-			<spinner label="ç·Šå¼µ" label_width="72" name="FlexTension" width="135"/>
-			<spinner label="X 軸方向の力" label_width="72" name="FlexForceX" width="135"/>
-			<spinner label="Y 軸方向の力" label_width="72" name="FlexForceY" width="135"/>
-			<spinner label="Z 軸方向の力" label_width="72" name="FlexForceZ" width="135"/>
+			<spinner label="柔軟性" name="FlexNumSections" />
+			<spinner label="重力" name="FlexGravity" />
+			<spinner label="ドラッグ" name="FlexFriction" />
+			<spinner label="風" name="FlexWind" />
+			<spinner label="ç·Šå¼µ" name="FlexTension" />
+			<spinner label="X 軸方向の力" name="FlexForceX" />
+			<spinner label="Y 軸方向の力" name="FlexForceY" />
+			<spinner label="Z 軸方向の力" name="FlexForceZ" />
 			<check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光します"/>
-			<color_swatch label="" left_delta="74" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/>
+			<color_swatch label="" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/>
 			<texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択します(遅延レンダリング有効時のみ)"/>
-			<spinner label="輝度" label_width="72" name="Light Intensity" width="135"/>
+			<spinner label="輝度" name="Light Intensity" />
 			<spinner label="FOV" name="Light FOV"/>
-			<spinner label="半径" label_width="72" name="Light Radius" width="135"/>
+			<spinner label="半径" name="Light Radius" />
 			<spinner label="焦点" name="Light Focus"/>
-			<spinner label="弱まる" label_width="72" name="Light Falloff" width="135"/>
+			<spinner label="弱まる" name="Light Falloff" />
 			<spinner label="環境" name="Light Ambiance"/>
 			<text name="label physicsshapetype">
 				実像の種類:
@@ -496,18 +496,18 @@
 			</panel>
 		</panel>
 		<panel label="中身" name="Contents">
-			<button label="新しいスクリプト" label_selected="新規スクリプト" name="button new script" width="120"/>
-			<button label="権限" left_delta="130" name="button permissions" width="80"/>
+			<button label="新しいスクリプト" label_selected="新規スクリプト" name="button new script" />
+			<button label="権限" name="button permissions" />
 		</panel>
 	</tab_container>
 	<panel name="land info panel">
 		<text name="label_parcel_info">
 			区画情報
 		</text>
-		<text name="label_area_price" width="200">
+		<text name="label_area_price" >
 			価格: [AREA] 平方メートル L$ [PRICE]
 		</text>
-		<text name="label_area" width="200">
+		<text name="label_area" >
 			面積: [AREA] 平方メートル
 		</text>
 		<button label="土地情報" label_selected="土地情報" name="button about land"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml
index c7f71c6de093d22725a9b9a8779be028f2b8c2f4..1c90f7327eed51c75228c57a7d9594ac377363e1 100644
--- a/indra/newview/skins/default/xui/ja/panel_people.xml
+++ b/indra/newview/skins/default/xui/ja/panel_people.xml
@@ -66,16 +66,16 @@
 			<layout_panel name="view_profile_btn_lp">
 				<button label="プロフィール" name="view_profile_btn" tool_tip="写真、グループ、その他住人情報を表示"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="インスタントメッセージを開きます"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="コール" name="call_btn" tool_tip="この住人にコールする"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="共有" name="share_btn" tool_tip="「持ち物」のアイテムを共有する"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="テレポート" name="teleport_btn" tool_tip="テレポートを送ります"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index a6691fb7649efb061b457f860b262fd379f32362..ff22221aabaa8903c0fc15de485b4db7a56a36d0 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -3821,7 +3821,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
 		アドホックコンファレンス
 	</string>
 	<string name="conference-title-incoming">
-		[AGENT_NAME]とコンファレンスする
+		[AGENT_NAME] とコンファレンスする
 	</string>
 	<string name="inventory_item_offered-im">
 		持ち物アイテムを送りました
diff --git a/indra/newview/skins/default/xui/pl/floater_settings_debug.xml b/indra/newview/skins/default/xui/pl/floater_settings_debug.xml
index 7c29d52e7bbf81e9143d4d76f1388dc645d339a6..131f92d56f1010914a2239f20334f24015820aab 100644
--- a/indra/newview/skins/default/xui/pl/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/pl/floater_settings_debug.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="settings_debug" title="USTAWIENIA DEBUGOWANIA">
 	<radio_group name="boolean_combo">
-		<radio_item label="PRAWDA" name="TRUE" value="prawda"/>
-		<radio_item label="NIEPRAWDA" name="FALSE" value=""/>
+		<radio_item label="PRAWDA" name="TRUE" />
+		<radio_item label="NIEPRAWDA" name="FALSE" />
 	</radio_group>
 	<color_swatch label="Kolor" name="val_color_swatch"/>
 	<spinner label="x" name="val_spinner_1"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_people.xml b/indra/newview/skins/default/xui/pl/panel_people.xml
index da9f84cb2e423b2ff3f4e880099e11ff5f23b5fe..ef52e2148b7610f3a263a2c6867e5e35843b6299 100644
--- a/indra/newview/skins/default/xui/pl/panel_people.xml
+++ b/indra/newview/skins/default/xui/pl/panel_people.xml
@@ -66,16 +66,16 @@ Chcesz spotkać ludzi? Spróbuj [secondlife:///app/worldmap Mapa Świata].
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Profil" name="view_profile_btn" tool_tip="Pokaż zdjęcie, grupy i inne informacje o Rezydencie"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="Otwórz wiadomości IM"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Dzwoń" name="call_btn" tool_tip="Zadzwoń do tego Rezydenta"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Udostępnij" name="share_btn" tool_tip="Udostępnij obiekt z Szafy"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Teleportuj" name="teleport_btn" tool_tip="Zaproponuj teleport"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/pt/floater_settings_debug.xml b/indra/newview/skins/default/xui/pt/floater_settings_debug.xml
index c6694d13b282222f1be2dec908fdbef4525d971e..83f7b24572f4b01bde1715360cddf58af4f990ce 100644
--- a/indra/newview/skins/default/xui/pt/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/pt/floater_settings_debug.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="settings_debug" title="DEBUG SETTINGS">
 	<radio_group name="boolean_combo">
-		<radio_item label="TRUE" name="TRUE" value="verdadeiro"/>
-		<radio_item label="FALSE" name="FALSE" value=""/>
+		<radio_item label="TRUE" name="TRUE" />
+		<radio_item label="FALSE" name="FALSE" />
 	</radio_group>
 	<color_swatch label="Cor" name="val_color_swatch"/>
 	<spinner label="x" name="val_spinner_1"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_people.xml b/indra/newview/skins/default/xui/pt/panel_people.xml
index aece30738ba21c6e7c13a703ff8a0339a1624286..f3af15b99161ec89b069fd2a7e0673652c53441b 100644
--- a/indra/newview/skins/default/xui/pt/panel_people.xml
+++ b/indra/newview/skins/default/xui/pt/panel_people.xml
@@ -66,16 +66,16 @@ Em busca de alguém para conversar? Procure no [secondlife:///app/worldmap Mapa-
 			<layout_panel name="view_profile_btn_lp">
 				<button label="Perfil" name="view_profile_btn" tool_tip="Exibir fotografia, grupos e outras informações dos residentes"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="MI" name="im_btn" tool_tip="Abrir sessão de mensagem instantânea"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="Ligar" name="call_btn" tool_tip="Ligar para este residente"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="Compartilhar" name="share_btn" tool_tip="Compartilhar item de inventário"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="Teletransportar" name="teleport_btn" tool_tip="Oferecer teletransporte"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/indra/newview/skins/default/xui/zh/panel_people.xml b/indra/newview/skins/default/xui/zh/panel_people.xml
index 8da75e334e6537494070c70d6bb87d2170e3aeec..4c6d6c76beb8bd7e309fc008c540e67740423a79 100644
--- a/indra/newview/skins/default/xui/zh/panel_people.xml
+++ b/indra/newview/skins/default/xui/zh/panel_people.xml
@@ -66,16 +66,16 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
 			<layout_panel name="view_profile_btn_lp">
 				<button label="檔案" name="view_profile_btn" tool_tip="Show picture, groups, and other Residents information"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="im_btn_lp">
 				<button label="IM" name="im_btn" tool_tip="開啟即時訊息會話"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="call_btn_lp">
 				<button label="通話" name="call_btn" tool_tip="Call this Resident"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="share_btn_lp">
 				<button label="分享" name="share_btn" tool_tip="分享一個收納區物品"/>
 			</layout_panel>
-			<layout_panel name="chat_btn_lp">
+			<layout_panel name="teleport_btn_lp">
 				<button label="瞬間傳送" name="teleport_btn" tool_tip="Offer teleport"/>
 			</layout_panel>
 		</layout_stack>
diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester
old mode 100755
new mode 100644