diff --git a/indra/llcommon/linden_common.h b/indra/llcommon/linden_common.h
index 60ea21d6421d55d0e6e969419f0b40ef8c58a7f3..1581522a2ecd399183d6b98ad444d2643ad83e3c 100644
--- a/indra/llcommon/linden_common.h
+++ b/indra/llcommon/linden_common.h
@@ -32,6 +32,12 @@
 #ifndef LL_LINDEN_COMMON_H
 #define LL_LINDEN_COMMON_H
 
+#if defined(LL_WINDOWS) && defined(_DEBUG)
+# define _CRTDBG_MAP_ALLOC
+# include <stdlib.h>
+# include <crtdbg.h>
+#endif
+
 #include "llpreprocessor.h"
 
 #include <cstring>
diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp
index e83473216a0e2e83ca1f8bc0a7760cf368fb1db3..697f380f98da2a859de0c59d28583c72921189cd 100644
--- a/indra/llcommon/llapr.cpp
+++ b/indra/llcommon/llapr.cpp
@@ -72,6 +72,28 @@ void ll_cleanup_apr()
 	apr_terminate();
 }
 
+//
+//LLAPRPool
+//
+LLAPRPool::LLAPRPool(apr_pool_t *parent, apr_size_t size) 
+{
+	mStatus = apr_pool_create(&mPool, parent);
+
+	if(size > 0) //size is the number of blocks (which is usually 4K), NOT bytes.
+	{
+		apr_allocator_t *allocator = apr_pool_allocator_get(mPool); 
+		if (allocator) 
+		{ 
+			apr_allocator_max_free_set(allocator, size) ;
+		}
+	}
+}
+
+LLAPRPool::~LLAPRPool() 
+{
+	apr_pool_destroy(mPool) ;
+}
+
 //
 // LLScopedLock
 //
diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h
index 403d504932666646e7c33785f686707b180d53a1..7d6dd4590fb1e15bc345049a456fce0018b67359 100644
--- a/indra/llcommon/llapr.h
+++ b/indra/llcommon/llapr.h
@@ -60,6 +60,20 @@ void ll_init_apr();
  */
 void ll_cleanup_apr();
 
+class LLAPRPool
+{
+public:
+	LLAPRPool(apr_pool_t *parent = NULL, apr_size_t size = 0) ;
+	~LLAPRPool() ;
+
+	apr_pool_t* getAPRPool() {return mPool ; }
+	apr_status_t getStatus() {return mStatus ; }
+
+private:
+	apr_pool_t*  mPool ;
+	apr_status_t mStatus ;
+} ;
+
 /** 
  * @class LLScopedLock
  * @brief Small class to help lock and unlock mutexes.
diff --git a/indra/llcommon/lldqueueptr.h b/indra/llcommon/lldqueueptr.h
index 06eee34cbcaf90251df8729e0198fbefcb5adcb0..0999e6754a15895053d9518fbacefcdb3e0f8d05 100644
--- a/indra/llcommon/lldqueueptr.h
+++ b/indra/llcommon/lldqueueptr.h
@@ -47,7 +47,7 @@ class LLDynamicQueuePtr
 	void init();
 	void destroy();
 	void reset();
-	void realloc(U32 newsize);
+	void reallocate(U32 newsize);
 
 	// ACCESSORS
 	const Type& get(const S32 index) const;					// no bounds checking
@@ -115,7 +115,7 @@ template <class Type>
 inline LLDynamicQueuePtr<Type>::LLDynamicQueuePtr(const S32 size)
 {
 	init();
-	realloc(size);
+	reallocate(size);
 }
 
 template <class Type>
@@ -134,7 +134,7 @@ inline void LLDynamicQueuePtr<Type>::init()
 }
 
 template <class Type>
-inline void LLDynamicQueuePtr<Type>::realloc(U32 newsize)
+inline void LLDynamicQueuePtr<Type>::reallocate(U32 newsize)
 { 
 	if (newsize)
 	{
@@ -308,7 +308,7 @@ inline S32	LLDynamicQueuePtr<Type>::push(const Type &obj)
 {
 	if (mMaxObj - count() <= 1)
 	{
-		realloc(mMaxObj * 2);
+		reallocate(mMaxObj * 2);
 	}
 
 	mMemory[mLastObj++] = obj;
diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp
index cc58552099fea13969ae08fcd63260b8adae099b..81cae60f3b1fcddf4b4d2f395f7394dc4c143c2c 100644
--- a/indra/llcommon/llthread.cpp
+++ b/indra/llcommon/llthread.cpp
@@ -266,12 +266,12 @@ void LLThread::wakeLocked()
 LLMutex::LLMutex(apr_pool_t *poolp) :
 	mAPRMutexp(NULL)
 {
-	if (poolp)
-	{
-		mIsLocalPool = FALSE;
-		mAPRPoolp = poolp;
-	}
-	else
+	//if (poolp)
+	//{
+	//	mIsLocalPool = FALSE;
+	//	mAPRPoolp = poolp;
+	//}
+	//else
 	{
 		mIsLocalPool = TRUE;
 		apr_pool_create(&mAPRPoolp, NULL); // Create a subpool for this thread
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 0555b9ea3cfeaca353849dde4ab3af933a009bcb..ce8d1e5759e20d5fb25a37492ba54a1056df4277 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -34,7 +34,7 @@
 
 const S32 LL_VERSION_MAJOR = 1;
 const S32 LL_VERSION_MINOR = 21;
-const S32 LL_VERSION_PATCH = 0;
+const S32 LL_VERSION_PATCH = 2;
 const S32 LL_VERSION_BUILD = 0;
 
 const char * const LL_CHANNEL = "Second Life Release";
diff --git a/indra/llmessage/llpacketbuffer.cpp b/indra/llmessage/llpacketbuffer.cpp
index cb71fcd77326e00faef81ca93dd85789821cfb92..f264e8f4950ab746d1c6021180d1630a89be1a98 100644
--- a/indra/llmessage/llpacketbuffer.cpp
+++ b/indra/llmessage/llpacketbuffer.cpp
@@ -65,7 +65,6 @@ LLPacketBuffer::LLPacketBuffer (S32 hSocket)
 
 LLPacketBuffer::~LLPacketBuffer ()
 {
-	free();
 }
 
 ///////////////////////////////////////////////////////////
@@ -76,25 +75,3 @@ void LLPacketBuffer::init (S32 hSocket)
 	mHost = ::get_sender();
 }
 	
-///////////////////////////////////////////////////////////
-
-void LLPacketBuffer::free ()
-{
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/indra/llmessage/llpacketbuffer.h b/indra/llmessage/llpacketbuffer.h
index 1e57517f292ec0dddff096c960b211fb06ba14cb..9308202f1bc0a4e81f38e0f2491ece71ec5df064 100644
--- a/indra/llmessage/llpacketbuffer.h
+++ b/indra/llmessage/llpacketbuffer.h
@@ -47,7 +47,6 @@ class LLPacketBuffer
 	const char	*getData() const	{ return mData; }
 	LLHost		getHost() const		{ return mHost; }
 	void init(S32 hSocket);
-	void free();
 
 protected:
 	char	mData[NET_BUFFER_SIZE];        // packet data		/* Flawfinder : ignore */
diff --git a/indra/llmessage/llpacketring.cpp b/indra/llmessage/llpacketring.cpp
index 48a02fede5c99c0b84e1ba97f58602f8de1b17a7..646d1865ea678f7af62c14a6da539f5a845c6e55 100644
--- a/indra/llmessage/llpacketring.cpp
+++ b/indra/llmessage/llpacketring.cpp
@@ -59,11 +59,11 @@ LLPacketRing::LLPacketRing () :
 ///////////////////////////////////////////////////////////
 LLPacketRing::~LLPacketRing ()
 {
-	free();
+	cleanup();
 }
 	
 ///////////////////////////////////////////////////////////
-void LLPacketRing::free ()
+void LLPacketRing::cleanup ()
 {
 	LLPacketBuffer *packetp;
 
diff --git a/indra/llmessage/llpacketring.h b/indra/llmessage/llpacketring.h
index 0e1450ac1b5162a9621fb139013c4d497dcefec9..20aea5950dc53f1e77c2a580db9602e935239469 100644
--- a/indra/llmessage/llpacketring.h
+++ b/indra/llmessage/llpacketring.h
@@ -47,7 +47,7 @@ class LLPacketRing
 	LLPacketRing();         
     ~LLPacketRing();
 
-	void free();
+	void cleanup();
 
 	void dropPackets(U32);	
 	void setDropPercentage (F32 percent_to_drop);
diff --git a/indra/llmessage/llxfer.cpp b/indra/llmessage/llxfer.cpp
index 5682b1c45466ad0bc87ac228d9e9ff299ca8d6d0..8091184fda0a8b8dcf882af2e5b0fd8e142747a5 100644
--- a/indra/llmessage/llxfer.cpp
+++ b/indra/llmessage/llxfer.cpp
@@ -55,7 +55,7 @@ LLXfer::LLXfer (S32 chunk_size)
 
 LLXfer::~LLXfer ()
 {
-	free();
+	cleanup();
 }
 
 ///////////////////////////////////////////////////////////
@@ -90,7 +90,7 @@ void LLXfer::init (S32 chunk_size)
 	
 ///////////////////////////////////////////////////////////
 
-void LLXfer::free ()
+void LLXfer::cleanup ()
 {
 	if (mBuffer)
 	{
diff --git a/indra/llmessage/llxfer.h b/indra/llmessage/llxfer.h
index 57abc289605baaa2e7d71da4d8350efcc5cbdc0a..9a8696e143d44153ad8b5fc5b6aeb6c3eda0ab4e 100644
--- a/indra/llmessage/llxfer.h
+++ b/indra/llmessage/llxfer.h
@@ -88,7 +88,7 @@ class LLXfer
 	virtual ~LLXfer();
 
 	void init(S32 chunk_size);
-	virtual void free();
+	virtual void cleanup();
 
 	virtual S32 startSend (U64 xfer_id, const LLHost &remote_host);
 	virtual void sendPacket(S32 packet_num);
diff --git a/indra/llmessage/llxfer_file.cpp b/indra/llmessage/llxfer_file.cpp
index 3643c4880d5b79ff0abe82e14085a6b65876a278..4926311adb29645fe8d25352dd20b5ef5cb8def2 100644
--- a/indra/llmessage/llxfer_file.cpp
+++ b/indra/llmessage/llxfer_file.cpp
@@ -67,7 +67,7 @@ LLXfer_File::LLXfer_File (const std::string& local_filename, BOOL delete_local_o
 
 LLXfer_File::~LLXfer_File ()
 {
-	free();
+	cleanup();
 }
 
 ///////////////////////////////////////////////////////////
@@ -95,7 +95,7 @@ void LLXfer_File::init (const std::string& local_filename, BOOL delete_local_on_
 	
 ///////////////////////////////////////////////////////////
 
-void LLXfer_File::free ()
+void LLXfer_File::cleanup ()
 {
 	if (mFp)
 	{
@@ -115,7 +115,7 @@ void LLXfer_File::free ()
 		lldebugs << "Keeping local file: " << mLocalFilename << llendl;
 	}
 
-	LLXfer::free();
+	LLXfer::cleanup();
 }
 
 ///////////////////////////////////////////////////////////
diff --git a/indra/llmessage/llxfer_file.h b/indra/llmessage/llxfer_file.h
index 04336c75fe2c9c82e69edbe7c06bbbf27f1352e6..8fdfd5e71f08506dbb19fb2ea7d1077534dba944 100644
--- a/indra/llmessage/llxfer_file.h
+++ b/indra/llmessage/llxfer_file.h
@@ -53,7 +53,7 @@ class LLXfer_File : public LLXfer
 	virtual ~LLXfer_File();
 
 	virtual void init(const std::string& local_filename, BOOL delete_local_on_completion, S32 chunk_size);
-	virtual void free();
+	virtual void cleanup();
 
 	virtual S32 initializeRequest(U64 xfer_id,
 								  const std::string& local_filename,
diff --git a/indra/llmessage/llxfer_mem.cpp b/indra/llmessage/llxfer_mem.cpp
index dbaa3aebed6ec4e035e1860e77a889d18a3c7a78..20b3db3e0beada6b75317ad10adaadf2d1a9c2f0 100644
--- a/indra/llmessage/llxfer_mem.cpp
+++ b/indra/llmessage/llxfer_mem.cpp
@@ -48,7 +48,7 @@ LLXfer_Mem::LLXfer_Mem ()
 
 LLXfer_Mem::~LLXfer_Mem ()
 {
-	free();
+	cleanup();
 }
 
 ///////////////////////////////////////////////////////////
@@ -62,9 +62,9 @@ void LLXfer_Mem::init ()
 	
 ///////////////////////////////////////////////////////////
 
-void LLXfer_Mem::free ()
+void LLXfer_Mem::cleanup ()
 {
-	LLXfer::free();
+	LLXfer::cleanup();
 }
 
 ///////////////////////////////////////////////////////////
diff --git a/indra/llmessage/llxfer_mem.h b/indra/llmessage/llxfer_mem.h
index a6b95c0fcf422fd5e285c5323346a35ebb5c4998..c2513485538b852fa416687a60c4b5923b6bfea9 100644
--- a/indra/llmessage/llxfer_mem.h
+++ b/indra/llmessage/llxfer_mem.h
@@ -55,7 +55,7 @@ class LLXfer_Mem : public LLXfer
 	virtual ~LLXfer_Mem();
 
 	virtual void init();
-	virtual void free();
+	virtual void cleanup();
 
 	virtual S32 startSend (U64 xfer_id, const LLHost &remote_host);
 	virtual U64 registerXfer(U64 xfer_id, const void *datap, const S32 length);
diff --git a/indra/llmessage/llxfer_vfile.cpp b/indra/llmessage/llxfer_vfile.cpp
index 6dd683043b6f4ae2210e82a9d1435f4fd70e15fe..aff16362902c1745cd168045463e3d2c978d3c42 100644
--- a/indra/llmessage/llxfer_vfile.cpp
+++ b/indra/llmessage/llxfer_vfile.cpp
@@ -60,7 +60,7 @@ LLXfer_VFile::LLXfer_VFile (LLVFS *vfs, const LLUUID &local_id, LLAssetType::ETy
 
 LLXfer_VFile::~LLXfer_VFile ()
 {
-	free();
+	cleanup();
 }
 
 ///////////////////////////////////////////////////////////
@@ -82,7 +82,7 @@ void LLXfer_VFile::init (LLVFS *vfs, const LLUUID &local_id, LLAssetType::EType
 	
 ///////////////////////////////////////////////////////////
 
-void LLXfer_VFile::free ()
+void LLXfer_VFile::cleanup ()
 {
 	LLVFile file(mVFS, mTempID, mType, LLVFile::WRITE);
 	file.remove();
@@ -90,7 +90,7 @@ void LLXfer_VFile::free ()
 	delete mVFile;
 	mVFile = NULL;
 
-	LLXfer::free();
+	LLXfer::cleanup();
 }
 
 ///////////////////////////////////////////////////////////
diff --git a/indra/llmessage/llxfer_vfile.h b/indra/llmessage/llxfer_vfile.h
index 84457edf2640755e9ae8c4e39dfe5d345078448c..c883d278541b95ef4ad21880ee5d459620c3f8bc 100644
--- a/indra/llmessage/llxfer_vfile.h
+++ b/indra/llmessage/llxfer_vfile.h
@@ -58,7 +58,7 @@ class LLXfer_VFile : public LLXfer
 	virtual ~LLXfer_VFile();
 
 	virtual void init(LLVFS *vfs, const LLUUID &local_id, LLAssetType::EType type);
-	virtual void free();
+	virtual void cleanup();
 
 	virtual S32 initializeRequest(U64 xfer_id,
 			LLVFS *vfs,
diff --git a/indra/llmessage/llxfermanager.cpp b/indra/llmessage/llxfermanager.cpp
index 7f0540463654f0dd1cd8b2cfbb856d4f6e616f07..2afb9845c08cbba246a0b1d81197c385bad05600 100644
--- a/indra/llmessage/llxfermanager.cpp
+++ b/indra/llmessage/llxfermanager.cpp
@@ -64,7 +64,7 @@ LLXferManager::LLXferManager (LLVFS *vfs)
 
 LLXferManager::~LLXferManager ()
 {
-	free();
+	cleanup();
 }
 
 ///////////////////////////////////////////////////////////
@@ -86,7 +86,7 @@ void LLXferManager::init (LLVFS *vfs)
 	
 ///////////////////////////////////////////////////////////
 
-void LLXferManager::free ()
+void LLXferManager::cleanup ()
 {
 	LLXfer *xferp;
 	LLXfer *delp;
diff --git a/indra/llmessage/llxfermanager.h b/indra/llmessage/llxfermanager.h
index dff8181584b892db6b1a3ca8751748b7b7a64156..1a3e37102f2938713df2d814bdc7c9c64b71f8a6 100644
--- a/indra/llmessage/llxfermanager.h
+++ b/indra/llmessage/llxfermanager.h
@@ -114,7 +114,7 @@ class LLXferManager
 	virtual ~LLXferManager();
 
 	virtual void init(LLVFS *vfs);
-	virtual void free();
+	virtual void cleanup();
 
 	void setUseAckThrottling(const BOOL use);
 	void setAckThrottleBPS(const F32 bps);
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index 42beddc5c7aa86ec07eb445c4b82248d4fcb4c7e..570a0cbed1b201ced438765a6cfdbf49dbbea970 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -60,6 +60,8 @@ BOOL gClothRipple = FALSE;
 BOOL gNoRender = FALSE;
 LLMatrix4 gGLObliqueProjectionInverse;
 
+#define LL_GL_NAME_POOLING 0
+
 LLGLNamePool::pool_list_t LLGLNamePool::sInstances;
 
 #if (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
@@ -1627,6 +1629,7 @@ void LLGLNamePool::cleanup()
 
 GLuint LLGLNamePool::allocate()
 {
+#if LL_GL_NAME_POOLING
 	for (name_list_t::iterator iter = mNameList.begin(); iter != mNameList.end(); ++iter)
 	{
 		if (!iter->used)
@@ -1642,18 +1645,33 @@ GLuint LLGLNamePool::allocate()
 	mNameList.push_back(entry);
 
 	return entry.name;
+#else
+	return allocateName();
+#endif
 }
 
 void LLGLNamePool::release(GLuint name)
 {
+#if LL_GL_NAME_POOLING
 	for (name_list_t::iterator iter = mNameList.begin(); iter != mNameList.end(); ++iter)
 	{
 		if (iter->name == name)
 		{
-			iter->used = FALSE;
-			return;
+			if (iter->used)
+			{
+				iter->used = FALSE;
+				return;
+			}
+			else
+			{
+				llerrs << "Attempted to release a pooled name that is not in use!" << llendl;
+			}
 		}
 	}
+	llerrs << "Attempted to release a non pooled name!" << llendl;
+#else
+	releaseName(name);
+#endif
 }
 
 //static
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 4a87424bb8e2e9685926c46648574dbbb8e9b40c..9b116d6410dc09c1276ebf763f056dd63c7d639b 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -438,11 +438,17 @@ LLRender::LLRender()
 }
 
 LLRender::~LLRender()
+{
+	shutdown();
+}
+
+void LLRender::shutdown()
 {
 	for (U32 i = 0; i < mTexUnits.size(); i++)
 	{
 		delete mTexUnits[i];
 	}
+	mTexUnits.clear();
 }
 
 void LLRender::translatef(const GLfloat& x, const GLfloat& y, const GLfloat& z)
diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h
index 7896f6c922c0c713223a64c79282498637fee8ae..5133f2804eb4fa6e2d827190653c1cd6c8bfd2c7 100644
--- a/indra/llrender/llrender.h
+++ b/indra/llrender/llrender.h
@@ -176,7 +176,8 @@ class LLRender
 
 	LLRender();
 	~LLRender();
-
+	void shutdown();
+	
 	void translatef(const GLfloat& x, const GLfloat& y, const GLfloat& z);
 	void scalef(const GLfloat& x, const GLfloat& y, const GLfloat& z);
 	void pushMatrix();
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 3f2eb61641f9dee2103e7e94e5ca8257a249a617..2414d2adff4f5203ab6be680217e86a2da191683 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -195,6 +195,7 @@ void LLVertexBuffer::drawRange(U32 mode, U32 start, U32 end, U32 count, U32 indi
 
 	glDrawRangeElements(sGLMode[mode], start, end, count, GL_UNSIGNED_SHORT, 
 		((U16*) getIndicesPointer()) + indices_offset);
+	stop_glerror();
 }
 
 void LLVertexBuffer::draw(U32 mode, U32 count, U32 indices_offset) const
@@ -246,6 +247,7 @@ void LLVertexBuffer::drawArrays(U32 mode, U32 first, U32 count) const
 	}
 
 	glDrawArrays(sGLMode[mode], first, count);
+	stop_glerror();
 }
 
 //static
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index bf5cfd99341048eb6c2b007a52b57de16e376fdc..0440d4c68b25cbcc555b2e83bcae20d437c18ebc 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -4252,26 +4252,29 @@ void LLTextEditor::setTextEditorParameters(LLXMLNodePtr node)
 }
 
 ///////////////////////////////////////////////////////////////////
+// Refactoring note: We may eventually want to replace this with boost::regex or 
+// boost::tokenizer capabilities since we've already fixed at least two JIRAs
+// concerning logic issues associated with this function.
 S32 LLTextEditor::findHTMLToken(const std::string &line, S32 pos, BOOL reverse) const
 {
 	std::string openers=" \t\n('\"[{<>";
 	std::string closers=" \t\n)'\"]}><;";
 
-	S32 m2;
-	S32 retval;
+	S32 m2 = 0;
+	S32 retval = 0;
 	
 	if (reverse)
 	{
 		
-		for (retval=pos; retval>0; retval--)
+		for (retval=pos; retval >= 0; retval--)
 		{
 			m2 = openers.find(line.substr(retval,1));
 			if (m2 >= 0)
 			{
-				retval++;
 				break;
 			}
 		}
+		return retval+1;
 	} 
 	else
 	{
@@ -4284,9 +4287,8 @@ S32 LLTextEditor::findHTMLToken(const std::string &line, S32 pos, BOOL reverse)
 				break;
 			}
 		} 
-	}		
-	
-	return retval;
+		return retval;
+	}
 }
 
 BOOL LLTextEditor::findHTML(const std::string &line, S32 *begin, S32 *end) const
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index f34c48b7297ac4db037dcc80a456876f8d839db6..43898f57efe9a88c1eb212ddca34168161016737 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -134,7 +134,7 @@ void gl_state_for_2d(S32 width, S32 height)
 
 	glMatrixMode(GL_PROJECTION);
 	glLoadIdentity();
-	glOrtho(0.0f, window_width, 0.0f, window_height, -1.0f, 1.0f);
+	glOrtho(0.0f, llmax(window_width, 1.f), 0.0f, llmax(window_height,1.f), -1.0f, 1.0f);
 	glMatrixMode(GL_MODELVIEW);
 	glLoadIdentity();
 	stop_glerror();
diff --git a/indra/llvfs/lldir.cpp b/indra/llvfs/lldir.cpp
index 325a2a39b6c614c7021a93903828281aa483295b..ff7bfde521c1a0d8f7153a58e7f726a78cf502a8 100644
--- a/indra/llvfs/lldir.cpp
+++ b/indra/llvfs/lldir.cpp
@@ -377,7 +377,8 @@ std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subd
 
 	case LL_PATH_EXECUTABLE:
 		prefix = getExecutableDir();
-		
+		break;
+
 	default:
 		llassert(0);
 	}
diff --git a/indra/llvfs/lldir_win32.cpp b/indra/llvfs/lldir_win32.cpp
index d21babec244915c36b1629204dfc28a7470f32d6..6e124002bc0e0e8bd9e52cfc86fd4efd231d1653 100644
--- a/indra/llvfs/lldir_win32.cpp
+++ b/indra/llvfs/lldir_win32.cpp
@@ -117,15 +117,13 @@ LLDir_Win32::LLDir_Win32()
 	mExecutableDir = utf16str_to_utf8str(llutf16string(w_str));
 #endif
 	
-	mAppRODataDir = getCurPath();
-	// *FIX:Mani - The following is the old way we did things. I'm keeping this around
-	// in case there is some really good reason to make mAppRODataDir == mExecutableDir
-	/*
-	if (strstr(mExecutableDir.c_str(), "indra\\newview"))
+	// When running in a dev tree, app_settings is under indra/newview/
+	// but in production it is under Program Files/SecondLife/
+	// Attempt to detect which one we're using. JC
+	if (mExecutableDir.find("indra") != std::string::npos)
 		mAppRODataDir = getCurPath();
 	else
 		mAppRODataDir = mExecutableDir;
-	*/
 }
 
 LLDir_Win32::~LLDir_Win32()
diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index 6b1cabc505cf69579b2f53b08d1c814452e0f0bf..4f467be02d97927b5b58c415685c7042be315fc0 100644
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -203,6 +203,11 @@ BOOL LLWindowCallbacks::handleDeviceChange(LLWindow *window)
 	return FALSE;
 }
 
+void LLWindowCallbacks::handlePingWatchdog(LLWindow *window, const char * msg)
+{
+
+}
+
 S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type)
 {
 	// Properly hide the splash screen when displaying the message box
diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h
index ec09234c83518f33838f868d8ca23c197edeba91..9b1f0059207d4acf8493b28f8d48b62478413d32 100644
--- a/indra/llwindow/llwindow.h
+++ b/indra/llwindow/llwindow.h
@@ -119,6 +119,7 @@ class LLWindowCallbacks
 	virtual void handleDataCopy(LLWindow *window, S32 data_type, void *data);
 	virtual BOOL handleTimerEvent(LLWindow *window);
 	virtual BOOL handleDeviceChange(LLWindow *window);
+	virtual void handlePingWatchdog(LLWindow *window, const char * msg);
 };
 
 // Refer to llwindow_test in test/common/llwindow for usage example
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 1aaf18e3b6d72a6b4218640efcbdadb9403a8402..0f2ef525b2a785f04a6b321faf69148a8d506201 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -1575,7 +1575,9 @@ void LLWindowWin32::gatherInput()
 
 	while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && msg_count < MAX_MESSAGE_PER_UPDATE)
 	{
+		mCallbacks->handlePingWatchdog(this, "Main:TranslateGatherInput");
 		TranslateMessage(&msg);
+		mCallbacks->handlePingWatchdog(this, "Main:DispatchGatherInput");
 		DispatchMessage(&msg);
 		msg_count++;
 
@@ -1602,7 +1604,7 @@ void LLWindowWin32::gatherInput()
 			}
 		}
 		*/
-
+		mCallbacks->handlePingWatchdog(this, "Main:AsyncCallbackGatherInput");
 		// For async host by name support.  Really hacky.
 		if (gAsyncMsgCallback && (LL_WM_HOST_RESOLVED == msg.message))
 		{
diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l
index 49ed6fc5eef7a4655aa109e99169d9c4be13c58a..3e62195dc8ccb8f491f24136e53635c385d8a1d1 100644
--- a/indra/lscript/lscript_compile/indra.l
+++ b/indra/lscript/lscript_compile/indra.l
@@ -611,6 +611,11 @@ extern "C" { int yyerror(const char *fmt, ...); }
 "TEXTURE_PLYWOOD"         { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "89556747-24cb-43ed-920b-47caed15465f"); return(STRING_CONSTANT); }
 "TEXTURE_TRANSPARENT"     { yylval.sval = new char[UUID_STR_LENGTH]; strcpy(yylval.sval, "8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"); return(STRING_CONSTANT); }
 
+"TOUCH_INVALID_FACE"	  { count(); yylval.ival = -1; return(INTEGER_CONSTANT); }
+"TOUCH_INVALID_VECTOR"	  { count(); return(TOUCH_INVALID_VECTOR); }
+"TOUCH_INVALID_TEXCOORD"  { count(); return(TOUCH_INVALID_TEXCOORD); }
+
+
 {L}({L}|{N})*		{ count(); yylval.sval = new char[strlen(yytext) + 1]; strcpy(yylval.sval, yytext); return(IDENTIFIER); }
 
 {N}+{E}					{ count(); yylval.fval = (F32)atof(yytext); return(FP_CONSTANT); }
@@ -752,8 +757,8 @@ BOOL lscript_compile(const char* src_filename, const char* dst_filename,
 #ifdef EMERGENCY_DEBUG_PRINTOUTS
 			fclose(compfile);
 #endif
-			fclose(yyout);
 		}
+		fclose(yyout);
 		fclose(yyin);
 	}
 
diff --git a/indra/lscript/lscript_compile/indra.y b/indra/lscript/lscript_compile/indra.y
index d10cbfedba2bd0e8753664664fffe87561338021..fdc240c7720e046e64c0086a8e7533b2f32af298 100644
--- a/indra/lscript/lscript_compile/indra.y
+++ b/indra/lscript/lscript_compile/indra.y
@@ -136,6 +136,9 @@
 %token					ZERO_VECTOR
 %token					ZERO_ROTATION
 
+%token                  TOUCH_INVALID_VECTOR
+%token                  TOUCH_INVALID_TEXCOORD
+
 %nonassoc LOWER_THAN_ELSE
 %nonassoc ELSE
 
@@ -439,6 +442,40 @@ vector_constant
 		$$ = new LLScriptSAVector(gLine, gColumn, sa0, sa1, sa2);
 		gAllocationManager->addAllocation($$);
 	}
+	| TOUCH_INVALID_VECTOR
+	{
+		LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf0);
+		LLScriptSAConstant *sa0 = new LLScriptSAConstant(gLine, gColumn, cf0);
+		gAllocationManager->addAllocation(sa0);
+		LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf1);
+		LLScriptSAConstant *sa1 = new LLScriptSAConstant(gLine, gColumn, cf1);
+		gAllocationManager->addAllocation(sa1);
+		LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf2);
+		LLScriptSAConstant *sa2 = new LLScriptSAConstant(gLine, gColumn, cf2);
+		gAllocationManager->addAllocation(sa2);
+		$$ = new LLScriptSAVector(gLine, gColumn, sa0, sa1, sa2);
+		gAllocationManager->addAllocation($$);
+	}
+	| TOUCH_INVALID_TEXCOORD
+	{
+		LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+		gAllocationManager->addAllocation(cf0);
+		LLScriptSAConstant *sa0 = new LLScriptSAConstant(gLine, gColumn, cf0);
+		gAllocationManager->addAllocation(sa0);
+		LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+		gAllocationManager->addAllocation(cf1);
+		LLScriptSAConstant *sa1 = new LLScriptSAConstant(gLine, gColumn, cf1);
+		gAllocationManager->addAllocation(sa1);
+		LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf2);
+		LLScriptSAConstant *sa2 = new LLScriptSAConstant(gLine, gColumn, cf2);
+		gAllocationManager->addAllocation(sa2);
+		$$ = new LLScriptSAVector(gLine, gColumn, sa0, sa1, sa2);
+		gAllocationManager->addAllocation($$);
+	}
 	;
 	
 quaternion_constant
@@ -1645,6 +1682,40 @@ vector_initializer
 		$$ = new LLScriptVectorInitializer(gLine, gColumn, sa0, sa1, sa2);
 		gAllocationManager->addAllocation($$);
 	}
+	| TOUCH_INVALID_VECTOR
+	{
+		LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf0);
+		LLScriptConstantExpression *sa0 = new LLScriptConstantExpression(gLine, gColumn, cf0);
+		gAllocationManager->addAllocation(sa0);
+		LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf1);
+		LLScriptConstantExpression *sa1 = new LLScriptConstantExpression(gLine, gColumn, cf1);
+		gAllocationManager->addAllocation(sa1);
+		LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf2);
+		LLScriptConstantExpression *sa2 = new LLScriptConstantExpression(gLine, gColumn, cf2);
+		gAllocationManager->addAllocation(sa2);
+		$$ = new LLScriptVectorInitializer(gLine, gColumn, sa0, sa1, sa2);
+		gAllocationManager->addAllocation($$);
+	}
+	| TOUCH_INVALID_TEXCOORD
+	{
+		LLScriptConstantFloat *cf0 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+		gAllocationManager->addAllocation(cf0);
+		LLScriptConstantExpression *sa0 = new LLScriptConstantExpression(gLine, gColumn, cf0);
+		gAllocationManager->addAllocation(sa0);
+		LLScriptConstantFloat *cf1 = new LLScriptConstantFloat(gLine, gColumn, -1.f);
+		gAllocationManager->addAllocation(cf1);
+		LLScriptConstantExpression *sa1 = new LLScriptConstantExpression(gLine, gColumn, cf1);
+		gAllocationManager->addAllocation(sa1);
+		LLScriptConstantFloat *cf2 = new LLScriptConstantFloat(gLine, gColumn, 0.f);
+		gAllocationManager->addAllocation(cf2);
+		LLScriptConstantExpression *sa2 = new LLScriptConstantExpression(gLine, gColumn, cf2);
+		gAllocationManager->addAllocation(sa2);
+		$$ = new LLScriptVectorInitializer(gLine, gColumn, sa0, sa1, sa2);
+		gAllocationManager->addAllocation($$);
+	}
 	;
 
 quaternion_initializer
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 23c88dc4491578eeeae079a5ef84b504a69778ab..3679c3882c257aec2fb20a6323e8fdab095511f3 100644
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -506,6 +506,10 @@ CLICK_ACTION_OPEN       Used with llSetClickAction to set open as the default ac
 CLICK_ACTION_PLAY       Used with llSetClickAction to set play as the default action when object is clicked
 CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked
 
+TOUCH_INVALID_TEXCOORD  Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid.
+TOUCH_INVALID_VECTOR    Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid.
+TOUCH_INVALID_FACE      Value returned by llDetectedTouchFace() when the touch position is not valid.
+
 # string constants
 [word .1, .3, .5]
 NULL_KEY			Indicates an empty key
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 8526c5afcda031ee61396e9ffbef36593a6771d6..1f34bae9b54040de47f70e3af8c2ddcd01125968 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2360,17 +2360,6 @@
         <real>1.0</real>
       </array>
     </map>
-    <key>EnablePushToTalk</key>
-    <map>
-      <key>Comment</key>
-      <string>Must hold down a key or moouse button when talking into your microphone</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>1</integer>
-    </map>
     <key>EnableRippleWater</key>
     <map>
       <key>Comment</key>
@@ -5165,7 +5154,7 @@
     <key>PTTCurrentlyEnabled</key>
     <map>
       <key>Comment</key>
-      <string />
+      <string>Use Push to Talk mode</string>
       <key>Persist</key>
       <integer>0</integer>
       <key>Type</key>
@@ -5206,28 +5195,6 @@
       <key>Value</key>
       <string />
     </map>
-    <key>PerFrameHoverPick</key>
-    <map>
-      <key>Comment</key>
-      <string>Detect the object under the mouse continually</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <real>1</real>
-    </map>
-    <key>PerFrameHoverPickCount</key>
-    <map>
-      <key>Comment</key>
-      <string>Detect the object under the mouse every n frames</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>S32</string>
-      <key>Value</key>
-      <integer>1</integer>
-    </map>
     <key>PermissionsCautionEnabled</key>
     <map>
       <key>Comment</key>
@@ -5277,6 +5244,28 @@
       <key>Value</key>
       <real>0.34999999404</real>
     </map>
+    <key>PicksPerSecondMouseMoving</key>
+    <map>
+      <key>Comment</key>
+      <string>How often to perform hover picks while the mouse is moving (picks per second)</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>F32</string>
+      <key>Value</key>
+      <real>5.0</real>
+    </map>
+    <key>PicksPerSecondMouseStationary</key>
+    <map>
+      <key>Comment</key>
+      <string>How often to perform hover picks while the mouse is stationary (picks per second)</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>F32</string>
+      <key>Value</key>
+      <real>0.0</real>
+    </map>
     <key>PieMenuLineWidth</key>
     <map>
       <key>Comment</key>
@@ -6885,17 +6874,6 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
-    <key>ShowDepthBuffer</key>
-    <map>
-      <key>Comment</key>
-      <string>Show depth buffer contents</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>0</integer>
-    </map>
     <key>ShowDirectory</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 7e7be974826c81be0f8de89d9edb0578f7adda36..77b75e178f25eb0e358b4a1d448d2aa74a694715 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -67,6 +67,12 @@ ATI Mobility Radeon 8xxx		.*ATI.*Mobility.*Radeon 8.*			0		1
 ATI Mobility Radeon 9800		.*ATI.*Mobility.*98.*				1		1
 ATI Mobility Radeon 9700		.*ATI.*Mobility.*97.*				1		1
 ATI Mobility Radeon 9600		.*ATI.*Mobility.*96.*				0		1
+ATI Mobility Radeon HD 2300		.*ATI.*Mobility.*HD.*23.*			1		1
+ATI Mobility Radeon HD 2400		.*ATI.*Mobility.*HD.*24.*			1		1
+ATI Mobility Radeon HD 2600		.*ATI.*Mobility.*HD.*26.*			3		1
+ATI Mobility Radeon HD 3400		.*ATI.*Mobility.*HD.*34.*			1		1
+ATI Mobility Radeon HD 3600		.*ATI.*Mobility.*HD.*36.*			3		1
+ATI Mobility Radeon HD 3800		.*ATI.*Mobility.*HD.*38.*			3		1
 ATI Mobility Radeon X1xxx		.*ATI.*Mobility.*X1.*				0		1
 ATI Mobility Radeon X2xxx		.*ATI.*Mobility.*X2.*				0		1
 ATI Mobility Radeon X3xx		.*ATI.*Mobility.*X3.*				1		1
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 4c8ea54d8d9fab6705180e792e6b020dc4ce3149..8ee21b61158869b65676aac64f76c34443c93580 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -58,6 +58,7 @@
 #include "llfloatersnapshot.h"
 #include "llviewerwindow.h"
 #include "llviewerdisplay.h"
+#include "llviewermedia.h"
 #include "llviewermessage.h"
 #include "llviewerobjectlist.h"
 #include "llworldmap.h"
@@ -82,8 +83,6 @@
 #   include <sys/file.h> // For initMarkerFile support
 #endif
 
-
-
 #include "llnotify.h"
 #include "llviewerkeyboard.h"
 #include "lllfsthread.h"
@@ -466,9 +465,6 @@ static void settings_modify()
 	gSavedSettings.setU32("VectorizeProcessor", 0 );
 	gSavedSettings.setBOOL("VectorizeSkin", FALSE);
 #endif
-
-	// propagate push to talk preference to current status
-	gSavedSettings.setBOOL("PTTCurrentlyEnabled", TRUE); //gSavedSettings.getBOOL("EnablePushToTalk"));
 }
 
 void LLAppViewer::initGridChoice()
@@ -581,7 +577,7 @@ bool LLAppViewer::init()
 	// into the log files during normal startup until AFTER
 	// we run the "program crashed last time" error handler below.
 	//
-
+	
 	// Need to do this initialization before we do anything else, since anything
 	// that touches files should really go through the lldir API
 	gDirUtilp->initAppDirs("SecondLife");
@@ -1364,6 +1360,7 @@ bool LLAppViewer::cleanup()
     sImageDecodeThread = NULL;
 
 	gImageList.shutdown(); // shutdown again in case a callback added something
+	LLUIImageList::getInstance()->cleanUp();
 	
 	// This should eventually be done in LLAppViewer
 	LLImage::cleanupClass();
@@ -1405,9 +1402,11 @@ bool LLAppViewer::cleanup()
 
 		LLWeb::loadURLExternal( gLaunchFileOnQuit );
 	}
-
+	
+	LLViewerMedia::cleanupClass();
 
     llinfos << "Goodbye" << llendflush;
+
 	// return 0;
 	return true;
 }
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 1d8f6a218cfd9a31a9ffd504dadb6fd0cdd0dde1..a25b86467d2709f9fcd4e78fba6f31260e13a5a7 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -31,6 +31,10 @@
 
 #include "llviewerprecompiledheaders.h"
 
+#if defined(_DEBUG)
+#	define WINDOWS_CRT_MEM_CHECKS 1 
+#endif
+
 #include "llappviewerwin32.h"
 
 #include "llmemtype.h"
@@ -127,6 +131,10 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
 {
 	LLMemType mt1(LLMemType::MTYPE_STARTUP);
 	
+#if WINDOWS_CRT_MEM_CHECKS && !INCLUDE_VLD
+	_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); // dump memory leaks on exit
+#endif
+	
 	// *FIX: global
 	gIconResource = MAKEINTRESOURCE(IDI_LL_ICON);
 
@@ -156,7 +164,32 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
 		// the assumption is that the error handler is responsible for doing
 		// app cleanup if there was a problem.
 		//
-		viewer_app_ptr->cleanup();
+#if WINDOWS_CRT_MEM_CHECKS
+    llinfos << "CRT Checking memory:" << llendflush;
+	if (!_CrtCheckMemory())
+	{
+		llwarns << "_CrtCheckMemory() failed at prior to cleanup!" << llendflush;
+	}
+	else
+	{
+		llinfos << " No corruption detected." << llendflush;
+	}
+#endif
+	
+	viewer_app_ptr->cleanup();
+	
+#if WINDOWS_CRT_MEM_CHECKS
+    llinfos << "CRT Checking memory:" << llendflush;
+	if (!_CrtCheckMemory())
+	{
+		llwarns << "_CrtCheckMemory() failed after cleanup!" << llendflush;
+	}
+	else
+	{
+		llinfos << " No corruption detected." << llendflush;
+	}
+#endif
+	 
 	}
 	delete viewer_app_ptr;
 	viewer_app_ptr = NULL;
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index c5823ce0de9672b4c99e664d870e958aa793e81f..2d7d2ee15d64e4b7157f011b2e6914267b330c6e 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -41,6 +41,7 @@
 #include "lldir.h"
 
 #include "llagent.h"
+#include "llappviewer.h"	// for gLastVersionChannel
 #include "llfloateravatarpicker.h"
 #include "llviewerwindow.h"
 #include "llbutton.h"
@@ -591,7 +592,7 @@ struct LLAddFriendData
 };
 
 // static
-void LLPanelFriends::callbackAddFriend(S32 option, const std::string& text, void* data)
+void LLPanelFriends::callbackAddFriendWithMessage(S32 option, const std::string& text, void* data)
 {
 	LLAddFriendData* add = (LLAddFriendData*)data;
 	if (option == 0)
@@ -601,6 +602,22 @@ void LLPanelFriends::callbackAddFriend(S32 option, const std::string& text, void
 	delete add;
 }
 
+// static
+void LLPanelFriends::callbackAddFriend(S32 option, void* data)
+{
+	LLAddFriendData* add = (LLAddFriendData*)data;
+	if (option == 0)
+	{
+		// Servers older than 1.25 require the text of the message to be the
+		// calling card folder ID for the offering user. JC
+		LLUUID calling_card_folder_id = 
+			gInventory.findCategoryUUIDForType(LLAssetType::AT_CALLINGCARD);
+		std::string message = calling_card_folder_id.asString();
+		requestFriendship(add->mID, add->mName, message);
+	}
+	delete add;
+}
+
 // static
 void LLPanelFriends::onPickAvatar(const std::vector<std::string>& names,
 									const std::vector<LLUUID>& ids,
@@ -625,10 +642,20 @@ void LLPanelFriends::requestFriendshipDialog(const LLUUID& id,
 	data->mID = id;
 	data->mName = name;
 	
-	// TODO: accept a line of text with this dialog
 	LLStringUtil::format_map_t args;
 	args["[NAME]"] = name;
-	gViewerWindow->alertXmlEditText("AddFriend", args, NULL, NULL, callbackAddFriend, data);
+
+	// Look for server versions like: Second Life Server 1.24.4.95600
+	if (gLastVersionChannel.find(" 1.24.") != std::string::npos)
+	{
+		// Old and busted server version, doesn't support friend
+		// requests with messages.
+		gViewerWindow->alertXml("AddFriend", args, callbackAddFriend, data);
+	}
+	else
+	{
+		gViewerWindow->alertXmlEditText("AddFriendWithMessage", args, NULL, NULL, callbackAddFriendWithMessage, data);
+	}
 }
 
 // static
diff --git a/indra/newview/llfloaterfriends.h b/indra/newview/llfloaterfriends.h
index c8cdce49a737df59ff07fa629a5f860345d40507..e3f3f96d00cfbd96fb25d1a80a35608e9e2d1cfa 100644
--- a/indra/newview/llfloaterfriends.h
+++ b/indra/newview/llfloaterfriends.h
@@ -119,7 +119,8 @@ class LLPanelFriends : public LLPanel, public LLEventTimer
 
 	// callback methods
 	static void onSelectName(LLUICtrl* ctrl, void* user_data);
-	static void callbackAddFriend(S32 option, const std::string& text, void* user_data);
+	static void callbackAddFriendWithMessage(S32 option, const std::string& text, void* user_data);
+	static void callbackAddFriend(S32 option, void* user_data);
 	static void onPickAvatar(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* user_data);
 	static void onMaximumSelect(void* user_data);
 
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 32dcf3ae0a59b537b1b38976fc955e1e150eb44b..3d29bb328662b3e9456acda13e72230151621de0 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -114,8 +114,7 @@ BOOL LLFloaterImagePreview::postBuild()
 		mSculptedPreview = new LLImagePreviewSculpted(256, 256);
 		mSculptedPreview->setPreviewTarget(mRawImagep, 2.0f);
 
-		if ((mRawImagep->getWidth() <= LL_IMAGE_REZ_LOSSLESS_CUTOFF) &&
-			(mRawImagep->getHeight() <= LL_IMAGE_REZ_LOSSLESS_CUTOFF))
+		if (mRawImagep->getWidth() * mRawImagep->getHeight () <= LL_IMAGE_REZ_LOSSLESS_CUTOFF * LL_IMAGE_REZ_LOSSLESS_CUTOFF)
 			childEnable("lossless_check");
 	}
 	else
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 670541abe4b6886bfe7f0af5f6d5e9aec66a2bb5..02ea02a291510e5b22d254ae0b6bd752e38dd454 100644
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
@@ -157,8 +157,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
 	msg->getU32Fast(_PREHASH_RequestData, _PREHASH_TotalObjectCount, total_count);
 	msg->getU32Fast(_PREHASH_RequestData, _PREHASH_ReportType, mCurrentMode);
 
-	LLCtrlListInterface *list = childGetListInterface("objects_list");
-	if (!list) return;
+	LLScrollListCtrl *list = getChild<LLScrollListCtrl>("objects_list");
 	
 	S32 block_count = msg->getNumberOfBlocks("ReportData");
 	for (S32 block = 0; block < block_count; ++block)
@@ -206,16 +205,16 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
 		element["columns"][3]["column"] = "location";
 		element["columns"][3]["value"] = llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z);
 		element["columns"][3]["font"] = "SANSSERIF";
-		element["columns"][3]["column"] = "time";
-		element["columns"][3]["value"] = formatted_time((time_t)time_stamp);
-		element["columns"][3]["font"] = "SANSSERIF";
+		element["columns"][4]["column"] = "time";
+		element["columns"][4]["value"] = formatted_time((time_t)time_stamp);
+		element["columns"][4]["font"] = "SANSSERIF";
 
 		if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS
 			&& have_extended_data)
 		{
-			element["columns"][4]["column"] = "Mono Time";
-			element["columns"][4]["value"] = llformat("%0.3f", mono_score);
-			element["columns"][4]["font"] = "SANSSERIF";
+			element["columns"][5]["column"] = "Mono Time";
+			element["columns"][5]["value"] = llformat("%0.3f", mono_score);
+			element["columns"][5]["font"] = "SANSSERIF";
 		}
 		
 		list->addElement(element);
@@ -228,13 +227,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
 
 	if (total_count == 0 && list->getItemCount() == 0)
 	{
-		LLSD element;
-		element["id"] = LLUUID::null;
-		element["columns"][0]["column"] = "name";
-		element["columns"][0]["value"] = getString("none_descriptor");
-		element["columns"][0]["font"] = "SANSSERIF";
-
-		list->addElement(element);
+		list->addCommentText(getString("none_descriptor"));
 	}
 	else
 	{
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 6b89d52b689c42e5d1a18d81f8a9c9842de33914..a021a66af2e176c954afcadcde67f43ccf41e68c 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -1111,44 +1111,3 @@ void LLViewerObjectList::renderObjectBeacons()
 }
 
 
-void pre_show_depth_buffer()
-{
-	glClear(GL_STENCIL_BUFFER_BIT);
-	glEnable(GL_STENCIL_TEST);
-	glStencilFunc(GL_ALWAYS,0,0);
-	glStencilOp(GL_INCR,GL_INCR,GL_INCR);
-}
-
-void post_show_depth_buffer()
-{
-	int xsize =500, ysize =500;
-	U8 *buf = new U8[xsize*ysize];
-
-	glReadPixels(0,0,xsize,ysize,GL_STENCIL_INDEX,GL_UNSIGNED_BYTE, buf);
-
-	int total = 0;
-	int i;
-	for (i=0;i<xsize*ysize;i++) 
-	{
-		total += buf[i];
-		buf[i] <<= 3;
-	}
-
-	float DC = (float)total/(float)(ysize*xsize);
-	int DCline = llfloor((xsize-20) * DC / 10.0f);
-	int stride = xsize / 10;
-
-	int y = 2;
-
-	for (i=0;i<DCline;i++)
-	{
-		if (i % stride == 0) i+=2;
-		if (i > xsize) y=6;
-		buf[ysize*(y+0)+i]=255;
-		buf[ysize*(y+1)+i]=255;
-		buf[ysize*(y+2)+i]=255;
-	}
-	glDrawPixels(xsize,ysize,GL_RED,GL_UNSIGNED_BYTE,buf);
-
-	delete [] buf;
-}
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index b890781ab2b425bb8948e67220e2d9aa64e9c082..9ee3840f7fdc77f8a48922d1dd19b8e7b0a6f9da 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -292,6 +292,28 @@ void LLInventoryModel::getDirectDescendentsOf(const LLUUID& cat_id,
 	items = get_ptr_in_map(mParentChildItemTree, cat_id);
 }
 
+// SJB: Added version to lock the arrays to catch potential logic bugs
+void LLInventoryModel::lockDirectDescendentArrays(const LLUUID& cat_id,
+												  cat_array_t*& categories,
+												  item_array_t*& items)
+{
+	getDirectDescendentsOf(cat_id, categories, items);
+	if (categories)
+	{
+		mCategoryLock[cat_id] = true;
+	}
+	if (items)
+	{
+		mItemLock[cat_id] = true;
+	}
+}
+
+void LLInventoryModel::unlockDirectDescendentArrays(const LLUUID& cat_id)
+{
+	mCategoryLock[cat_id] = false;
+	mItemLock[cat_id] = false;
+}
+
 // findCategoryUUIDForType() returns the uuid of the category that
 // specifies 'type' as what it defaults to containing. The category is
 // not necessarily only for that type. *NOTE: This will create a new
@@ -619,6 +641,26 @@ U32 LLInventoryModel::updateItem(const LLViewerInventoryItem* item)
 	return mask;
 }
 
+LLInventoryModel::cat_array_t* LLInventoryModel::getUnlockedCatArray(const LLUUID& id)
+{
+	cat_array_t* cat_array = get_ptr_in_map(mParentChildCategoryTree, id);
+	if (cat_array)
+	{
+		llassert_always(mCategoryLock[id] == false);
+	}
+	return cat_array;
+}
+
+LLInventoryModel::item_array_t* LLInventoryModel::getUnlockedItemArray(const LLUUID& id)
+{
+	item_array_t* item_array = get_ptr_in_map(mParentChildItemTree, id);
+	if (item_array)
+	{
+		llassert_always(mItemLock[id] == false);
+	}
+	return item_array;
+}
+
 // Calling this method with an inventory category will either change
 // an existing item with the matching id, or it will add the category.
 void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat)
@@ -645,12 +687,12 @@ void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat)
 		{
 			// need to update the parent-child tree
 			cat_array_t* cat_array;
-			cat_array = get_ptr_in_map(mParentChildCategoryTree, old_parent_id);
+			cat_array = getUnlockedCatArray(old_parent_id);
 			if(cat_array)
 			{
 				cat_array->removeObj(old_cat);
 			}
-			cat_array = get_ptr_in_map(mParentChildCategoryTree, new_parent_id);
+			cat_array = getUnlockedCatArray(new_parent_id);
 			if(cat_array)
 			{
 				cat_array->put(old_cat);
@@ -673,13 +715,15 @@ void LLInventoryModel::updateCategory(const LLViewerInventoryCategory* cat)
 
 		// make sure this category is correctly referenced by it's parent.
 		cat_array_t* cat_array;
-		cat_array = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+		cat_array = getUnlockedCatArray(cat->getParentUUID());
 		if(cat_array)
 		{
 			cat_array->put(new_cat);
 		}
 
 		// make space in the tree for this category's children.
+		llassert_always(mCategoryLock[new_cat->getUUID()] == false);
+		llassert_always(mItemLock[new_cat->getUUID()] == false);
 		cat_array_t* catsp = new cat_array_t;
 		item_array_t* itemsp = new item_array_t;
 		mParentChildCategoryTree[new_cat->getUUID()] = catsp;
@@ -707,9 +751,9 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id)
 	if(cat && (cat->getParentUUID() != cat_id))
 	{
 		cat_array_t* cat_array;
-		cat_array = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+		cat_array = getUnlockedCatArray(cat->getParentUUID());
 		if(cat_array) cat_array->removeObj(cat);
-		cat_array = get_ptr_in_map(mParentChildCategoryTree, cat_id);
+		cat_array = getUnlockedCatArray(cat_id);
 		cat->setParent(cat_id);
 		if(cat_array) cat_array->put(cat);
 		addChangedMask(LLInventoryObserver::STRUCTURE, object_id);
@@ -719,9 +763,9 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id)
 	if(item && (item->getParentUUID() != cat_id))
 	{
 		item_array_t* item_array;
-		item_array = get_ptr_in_map(mParentChildItemTree, item->getParentUUID());
+		item_array = getUnlockedItemArray(item->getParentUUID());
 		if(item_array) item_array->removeObj(item);
-		item_array = get_ptr_in_map(mParentChildItemTree, cat_id);
+		item_array = getUnlockedItemArray(cat_id);
 		item->setParent(cat_id);
 		if(item_array) item_array->put(item);
 		addChangedMask(LLInventoryObserver::STRUCTURE, object_id);
@@ -742,25 +786,25 @@ void LLInventoryModel::deleteObject(const LLUUID& id)
 		mCategoryMap.erase(id);
 		mItemMap.erase(id);
 		//mInventory.erase(id);
-		item_array_t* item_list = get_ptr_in_map(mParentChildItemTree, parent_id);
+		item_array_t* item_list = getUnlockedItemArray(parent_id);
 		if(item_list)
 		{
 			LLViewerInventoryItem* item = (LLViewerInventoryItem*)((LLInventoryObject*)obj);
 			item_list->removeObj(item);
 		}
-		cat_array_t* cat_list = get_ptr_in_map(mParentChildCategoryTree, parent_id);
+		cat_array_t* cat_list = getUnlockedCatArray(parent_id);
 		if(cat_list)
 		{
 			LLViewerInventoryCategory* cat = (LLViewerInventoryCategory*)((LLInventoryObject*)obj);
 			cat_list->removeObj(cat);
 		}
-		item_list = get_ptr_in_map(mParentChildItemTree, id);
+		item_list = getUnlockedItemArray(id);
 		if(item_list)
 		{
 			delete item_list;
 			mParentChildItemTree.erase(id);
 		}
-		cat_list = get_ptr_in_map(mParentChildCategoryTree, id);
+		cat_list = getUnlockedCatArray(id);
 		if(cat_list)
 		{
 			delete cat_list;
@@ -1999,11 +2043,13 @@ void LLInventoryModel::buildParentChildMap()
 		cats.put(cat);
 		if (mParentChildCategoryTree.count(cat->getUUID()) == 0)
 		{
+			llassert_always(mCategoryLock[cat->getUUID()] == false);
 			catsp = new cat_array_t;
 			mParentChildCategoryTree[cat->getUUID()] = catsp;
 		}
 		if (mParentChildItemTree.count(cat->getUUID()) == 0)
 		{
+			llassert_always(mItemLock[cat->getUUID()] == false);
 			itemsp = new item_array_t;
 			mParentChildItemTree[cat->getUUID()] = itemsp;
 		}
@@ -2028,7 +2074,7 @@ void LLInventoryModel::buildParentChildMap()
 	for(i = 0; i < count; ++i)
 	{
 		LLViewerInventoryCategory* cat = cats.get(i);
-		catsp = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+		catsp = getUnlockedCatArray(cat->getParentUUID());
 		if(catsp)
 		{
 			catsp->put(cat);
@@ -2061,7 +2107,7 @@ void LLInventoryModel::buildParentChildMap()
 				cat->setParent(gAgent.getInventoryRootID());
 			}
 			cat->updateServer(TRUE);
-			catsp = get_ptr_in_map(mParentChildCategoryTree, cat->getParentUUID());
+			catsp = getUnlockedCatArray(cat->getParentUUID());
 			if(catsp)
 			{
 				catsp->put(cat);
@@ -2097,7 +2143,7 @@ void LLInventoryModel::buildParentChildMap()
 	{
 		LLPointer<LLViewerInventoryItem> item;
 		item = items.get(i);
-		itemsp = get_ptr_in_map(mParentChildItemTree, item->getParentUUID());
+		itemsp = getUnlockedItemArray(item->getParentUUID());
 		if(itemsp)
 		{
 			itemsp->put(item);
@@ -2114,7 +2160,7 @@ void LLInventoryModel::buildParentChildMap()
 			// we update server here, the client might crash.
 			//item->updateServer();
 			lost_item_ids.push_back(item->getUUID());
-			itemsp = get_ptr_in_map(mParentChildItemTree, item->getParentUUID());
+			itemsp = getUnlockedItemArray(item->getParentUUID());
 			if(itemsp)
 			{
 				itemsp->put(item);
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index 4889d622dc6396db91922b9ad1114a52c23db784..40dd55dda276b6d9a8b341a8d3b9dcf1a254ec31 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -148,7 +148,13 @@ class LLInventoryModel
 	void getDirectDescendentsOf(const LLUUID& cat_id,
 								cat_array_t*& categories,
 								item_array_t*& items) const;
-
+	
+	// SJB: Added version to lock the arrays to catch potential logic bugs
+	void lockDirectDescendentArrays(const LLUUID& cat_id,
+									cat_array_t*& categories,
+									item_array_t*& items);
+	void unlockDirectDescendentArrays(const LLUUID& cat_id);
+	
 	// Starting with the object specified, add it's descendents to the
 	// array provided, but do not add the inventory object specified
 	// by id. There is no guaranteed order. Neither array will be
@@ -401,6 +407,10 @@ class LLInventoryModel
 	
 	bool messageUpdateCore(LLMessageSystem* msg, bool do_accounting);
 
+protected:
+	cat_array_t* getUnlockedCatArray(const LLUUID& id);
+	item_array_t* getUnlockedItemArray(const LLUUID& id);
+	
 protected:
 	// Varaibles used to track what has changed since the last notify.
 	U32 mModifyMask;
@@ -418,6 +428,9 @@ class LLInventoryModel
 	cat_map_t mCategoryMap;
 	item_map_t mItemMap;
 
+	std::map<LLUUID, bool> mCategoryLock;
+	std::map<LLUUID, bool> mItemLock;
+	
 	// cache recent lookups
 	mutable LLPointer<LLViewerInventoryItem> mLastItem;
 
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index f7f46b0c30ae6b37c9fc2302c9dc425ff389ef6c..7a8497aa2ef8fe8e3dc8f709c7ca2e8cb1267b58 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -375,7 +375,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
 
 	// change z sort of clickable text to be behind buttons
 	sendChildToBack(getChildView("channel_text"));
-	sendChildToBack(getChildView("version_text"));
 	sendChildToBack(getChildView("forgot_password_text"));
 
 	LLLineEditor* edit = getChild<LLLineEditor>("password_edit");
@@ -418,20 +417,17 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
 
 	setDefaultBtn("connect_btn");
 
-	childSetAction("quit_btn", onClickQuit, this);
+	// childSetAction("quit_btn", onClickQuit, this);
 
-	LLTextBox* version_text = getChild<LLTextBox>("version_text");
+	std::string channel = gSavedSettings.getString("VersionChannelName");
 	std::string version = llformat("%d.%d.%d (%d)",
 		LL_VERSION_MAJOR,
 		LL_VERSION_MINOR,
 		LL_VERSION_PATCH,
 		LL_VIEWER_BUILD );
-	version_text->setText(version);
-	version_text->setClickedCallback(onClickVersion);
-	version_text->setCallbackUserData(this);
-
 	LLTextBox* channel_text = getChild<LLTextBox>("channel_text");
-	channel_text->setText(gSavedSettings.getString("VersionChannelName"));
+	channel_text->setTextArg("[CHANNEL]", channel);
+	channel_text->setTextArg("[VERSION]", version);
 	channel_text->setClickedCallback(onClickVersion);
 	channel_text->setCallbackUserData(this);
 	
@@ -1106,6 +1102,8 @@ void LLPanelLogin::onClickNewAccount(void*)
 }
 
 
+// *NOTE: This function is dead as of 2008 August.  I left it here in case
+// we suddenly decide to put the Quit button back. JC
 // static
 void LLPanelLogin::onClickQuit(void*)
 {
diff --git a/indra/newview/llsky.h b/indra/newview/llsky.h
index 35d669152ef189a4fa447ee4133318f22c3aa54c..45dbfcfa056069f93d9023fde4a3e6721d4e153b 100644
--- a/indra/newview/llsky.h
+++ b/indra/newview/llsky.h
@@ -57,7 +57,6 @@ class LLSky
 	~LLSky();
 
 	void init(const LLVector3 &sun_direction);
-	void free();
 
 	void cleanup();
 
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index e9b09599e2fd055c79d123949cf39120ca773a1b..7ea791d25330a1386241bc086ec14dc45e3003b4 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -2149,7 +2149,8 @@ void renderBoundingBox(LLDrawable* drawable)
 	if (vobj && vobj->onActiveList())
 	{
 		gGL.flush();
-		glLineWidth(4.f*sinf(gFrameTimeSeconds*2.f)+1.f);
+		glLineWidth(4.f*(sinf(gFrameTimeSeconds*2.f)*0.25f+0.75f));
+		stop_glerror();
 		drawBoxOutline(pos,size);
 		gGL.flush();
 		glLineWidth(1.f);
@@ -2347,16 +2348,19 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable>
 		if (!mCamera || mCamera->AABBInFrustumNoFarClip(group->mBounds[0], group->mBounds[1]))
 		{
 			node->accept(this);
+			stop_glerror();
 
 			for (U32 i = 0; i < node->getChildCount(); i++)
 			{
 				traverse(node->getChild(i));
+				stop_glerror();
 			}
 			
 			//draw tight fit bounding boxes for spatial group
 			if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCTREE))
 			{	
 				renderOctree(group);
+				stop_glerror();
 			}
 
 			//render visibility wireframe
@@ -2368,6 +2372,7 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable>
 				gGLLastMatrix = NULL;
 				glLoadMatrixd(gGLModelView);
 				renderVisibility(group, mCamera);
+				stop_glerror();
 				gGLLastMatrix = NULL;
 				glPopMatrix();
 				gGL.color4f(1,1,1,1);
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index deb817d2ab6d56e3ab365c63a98b46d022a4944c..3d53eaa631f6777915b06dc5916b0624e1fadbd2 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -792,6 +792,14 @@ bool LLTextureCacheRemoteWorker::doWrite()
 //virtual
 bool LLTextureCacheWorker::doWork(S32 param)
 {
+	//allocate a new local apr_pool
+	LLAPRPool pool ;
+
+	//save the current mFileAPRPool to avoid breaking anything.
+	apr_pool_t* old_pool = mCache->getFileAPRPool() ;
+	//make mFileAPRPool to point to the local one
+	mCache->setFileAPRPool(pool.getAPRPool()) ;
+
 	bool res = false;
 	if (param == 0) // read
 	{
@@ -805,6 +813,10 @@ bool LLTextureCacheWorker::doWork(S32 param)
 	{
 		llassert_always(0);
 	}
+
+	//set mFileAPRPool back, the local one will be released automatically.
+	mCache->setFileAPRPool(old_pool) ;
+
 	return res;
 }
 
diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h
index da7a6c3f124bf2a340816c10f45dc3c182de9604..f635679819a5cab2cacacd4e9a1417462b783412 100644
--- a/indra/newview/lltexturecache.h
+++ b/indra/newview/lltexturecache.h
@@ -114,6 +114,9 @@ class LLTextureCache : public LLWorkerThread
 	std::string getTextureFileName(const LLUUID& id);
 	void addCompleted(Responder* responder, bool success);
 	
+protected:
+	void setFileAPRPool(apr_pool_t* pool) { mFileAPRPool = pool ; }
+
 private:
 	void setDirNames(ELLPath location);
 	void readHeaderCache(apr_pool_t* poolp = NULL);
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index b444cb8ce620df400b31cced14153a04d6d8fb87..cc6af1043d4098014e35ef1250edf896199f1cb2 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -106,7 +106,7 @@ void LLToolPie::leftMouseCallback(const LLPickInfo& pick_info)
 BOOL LLToolPie::handleRightMouseDown(S32 x, S32 y, MASK mask)
 {
 	// don't pick transparent so users can't "pay" transparent objects
-	gViewerWindow->pickAsync(x, y, mask, rightMouseCallback, FALSE);
+	gViewerWindow->pickAsync(x, y, mask, rightMouseCallback, FALSE, TRUE);
 	mPieMouseButtonDown = TRUE; 
 	// don't steal focus from UI
 	return FALSE;
diff --git a/indra/newview/llurl.cpp b/indra/newview/llurl.cpp
index 454dd5047e8fe768fa19710c2d05462d857b762f..70cf5ab4382212915abc9d26f9d4c31f91a13189 100644
--- a/indra/newview/llurl.cpp
+++ b/indra/newview/llurl.cpp
@@ -57,7 +57,7 @@ LLURL::LLURL(const char * url)
 
 LLURL::~LLURL()
 {
-	free();
+	cleanup();
 }
 
 void LLURL::init(const char * url)
@@ -140,7 +140,7 @@ void LLURL::init(const char * url)
 //	llinfos << "  Tag : <" << mTag << ">" << llendl;
 }
 
-void LLURL::free()
+void LLURL::cleanup()
 {
 }
 
diff --git a/indra/newview/llurl.h b/indra/newview/llurl.h
index 99f93b921317b22386224c36a1d08e9510261307..8c77916aa03f77e77a97671f062d7f6731e1e808 100644
--- a/indra/newview/llurl.h
+++ b/indra/newview/llurl.h
@@ -71,7 +71,7 @@ class LLURL
 	virtual ~LLURL();
 
 	virtual void init (const char * url);
-	virtual void free ();
+	virtual void cleanup ();
 
 	bool operator==(const LLURL &rhs) const;
 	bool operator!=(const LLURL &rhs) const;
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index a62bf9b9cf0f7f46167062a0d7ea1d3b1793b577..98413065af1dd3f6f2f889656097186005c75105 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -424,22 +424,7 @@ bool handleVoiceClientPrefsChanged(const LLSD& newvalue)
 {
 	if(gVoiceClient)
 	{
-		// Note: Ignore the specific event value, look up the ones we want
-
-		gVoiceClient->setVoiceEnabled(gSavedSettings.getBOOL("EnableVoiceChat"));
-		gVoiceClient->setUsePTT(gSavedSettings.getBOOL("PTTCurrentlyEnabled"));
-		std::string keyString = gSavedSettings.getString("PushToTalkButton");
-		gVoiceClient->setPTTKey(keyString);
-		gVoiceClient->setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle"));
-		gVoiceClient->setEarLocation(gSavedSettings.getS32("VoiceEarLocation"));
-		std::string serverName = gSavedSettings.getString("VivoxDebugServerName");
-		gVoiceClient->setVivoxDebugServerName(serverName);
-
-		std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice");
-		gVoiceClient->setCaptureDevice(inputDevice);
-		std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
-		gVoiceClient->setRenderDevice(outputDevice);
-		gVoiceClient->setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled"));
+		gVoiceClient->updateSettings();
 	}
 	return true;
 }
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index eef43af4c37fba7a0b5c7e7d0b5d67f155f3c552..9e5b566e60261e8f9ae96339ee98d384315f1785 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -470,12 +470,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 	//
 	//
 	LLAppViewer::instance()->pingMainloopTimeout("Display:RenderSetup");
-	stop_glerror();
-	if (gSavedSettings.getBOOL("ShowDepthBuffer"))
-	{
-		pre_show_depth_buffer();
-	}
-
 	stop_glerror();
 
 	///////////////////////////////////////
@@ -1088,11 +1082,6 @@ void render_ui_3d()
 
 	// Debugging stuff goes before the UI.
 
-	if (gSavedSettings.getBOOL("ShowDepthBuffer"))
-	{
-		post_show_depth_buffer();
-	}
-
 	// Coordinate axes
 	if (gSavedSettings.getBOOL("ShowAxes"))
 	{
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index f5d822f2e3be0b1126ece11c007763f402beb2aa..ea1ef2a6a6c6640774c17eb281a167e2d29a7f9f 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -473,6 +473,9 @@ void LLViewerMedia::initBrowser()
 	buildMediaManagerData( init_data );
 	LLMediaManager::initBrowser( init_data );
 	delete init_data;
+
+	// We use a custom user agent with viewer version and skin name.
+	LLViewerMediaImpl::updateBrowserUserAgent();
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
@@ -538,9 +541,6 @@ void LLViewerMedia::buildMediaManagerData( LLMediaManagerData* init_data )
 	init_data->setBrowserProfileName( profile_name );
 	init_data->setBrowserParentWindow( gViewerWindow->getMediaWindow() );
 
-	// We use a custom user agent with viewer version and skin name.
-	LLViewerMediaImpl::updateBrowserUserAgent();
-
 	// Users can change skins while client is running, so make sure
 	// we pick up on changes.
 	gSavedSettings.getControl("SkinCurrent")->getSignal()->connect( 
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 26d526c98896fd4250aa9f239a4d5bb6341b4090..7681e98eae9a3c53e35044e5f20cdb4045e554be 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -146,7 +146,6 @@
 #include "llinventoryview.h"
 #include "llkeyboard.h"
 #include "llpanellogin.h"
-#include "llfloaterlandmark.h"
 #include "llmenucommands.h"
 #include "llmenugl.h"
 #include "llmorphview.h"
@@ -208,9 +207,6 @@
 
 #include "lltexlayer.h"
 
-void init_landmark_menu(LLMenuGL* menu);
-void clear_landmark_menu(LLMenuGL* menu);
-
 void init_client_menu(LLMenuGL* menu);
 void init_server_menu(LLMenuGL* menu);
 
@@ -256,7 +252,6 @@ LLPieMenu	*gPieAttachment = NULL;
 LLPieMenu	*gPieLand	= NULL;
 
 // local constants
-const std::string LANDMARK_MENU_NAME("Landmarks");
 const std::string CLIENT_MENU_NAME("Advanced");
 const std::string SERVER_MENU_NAME("Admin");
 
@@ -274,7 +269,6 @@ LLPieMenu* gDetachPieMenu = NULL;
 LLPieMenu* gDetachScreenPieMenu = NULL;
 LLPieMenu* gDetachBodyPartPieMenus[8];
 
-LLMenuGL* gLandmarkMenu = NULL;
 LLMenuItemCallGL* gAFKMenu = NULL;
 LLMenuItemCallGL* gBusyMenu = NULL;
 
@@ -336,8 +330,6 @@ void handle_audio_status_3(void*);
 void handle_audio_status_4(void*);
 #endif
 void manage_landmarks(void*);
-void create_new_landmark(void*);
-void landmark_menu_action(void*);
 void reload_ui(void*);
 void handle_agent_stop_moving(void*);
 void print_packets_lost(void*);
@@ -497,55 +489,6 @@ BOOL enable_region_owner(void*);
 void menu_toggle_attached_lights(void* user_data);
 void menu_toggle_attached_particles(void* user_data);
 
-class LLLandmarkObserver : public LLInventoryObserver
-{
-public:
-	LLLandmarkObserver();
-	virtual ~LLLandmarkObserver();
-
-	virtual void changed(U32 mask)
-	{
-		// JC - Disabled for now - slows down client or causes crashes
-		// in inventory code.
-		//
-		// Also, this may not be faster than just rebuilding the menu each time.
-		// I believe gInventory.getObject() is not fast.
-		//
-		//const std::set<LLUUID>& changed_ids = gInventory.getChangedIDs();
-		//std::set<LLUUID>::const_iterator id_it;
-		//BOOL need_to_rebuild_menu = FALSE;
-		//for(id_it = changed_ids.begin(); id_it != changed_ids.end(); ++id_it)
-		//{
-		//	LLInventoryObject* objectp = gInventory.getObject(*id_it);
-		//	if (objectp && (objectp->getType() == LLAssetType::AT_LANDMARK || objectp->getType() == LLAssetType::AT_CATEGORY))
-		//	{
-		//		need_to_rebuild_menu = TRUE;
-		//	}
-		//}
-		//if (need_to_rebuild_menu)
-		//{
-		//	init_landmark_menu(gLandmarkMenu);
-		//}
-	}
-};
-
-// For debugging only, I think the inventory observer doesn't get 
-// called if the inventory is loaded from cache.
-void build_landmark_menu(void*)
-{
-	init_landmark_menu(gLandmarkMenu);
-}
-
-LLLandmarkObserver::LLLandmarkObserver()
-{
-	gInventory.addObserver(this);
-}
-
-LLLandmarkObserver::~LLLandmarkObserver()
-{
-	gInventory.removeObserver(this);
-}
-
 class LLMenuParcelObserver : public LLParcelObserver
 {
 public:
@@ -555,7 +498,6 @@ class LLMenuParcelObserver : public LLParcelObserver
 };
 
 static LLMenuParcelObserver* gMenuParcelObserver = NULL;
-static LLLandmarkObserver* gLandmarkObserver = NULL;
 
 LLMenuParcelObserver::LLMenuParcelObserver()
 {
@@ -729,17 +671,6 @@ void init_menus()
 	// TomY TODO convert these two
 	LLMenuGL*menu;
 
-	// JC - Maybe we don't want a global landmark menu
-	/*
-	menu = new LLMenuGL(LANDMARK_MENU_NAME);
-	// Defer init_landmark_menu() until inventory observer reports that we actually
-	// have inventory.  Otherwise findCategoryByUUID() will create an empty
-	// Landmarks folder in inventory. JC
-	gMenuBarView->appendMenu( menu );
-	menu->updateParent(LLMenuGL::sMenuContainer);
-	gLandmarkMenu = menu;
-	*/
-
 	menu = new LLMenuGL(CLIENT_MENU_NAME);
 	init_client_menu(menu);
 	gMenuBarView->appendMenu( menu );
@@ -755,9 +686,6 @@ void init_menus()
 	// Let land based option enable when parcel changes
 	gMenuParcelObserver = new LLMenuParcelObserver();
 
-	// Let landmarks menu update when landmarks are added/removed
-	gLandmarkObserver = new LLLandmarkObserver();
-
 	//
 	// Debug menu visiblity
 	//
@@ -775,64 +703,6 @@ void init_menus()
 
 
 
-void init_landmark_menu(LLMenuGL* menu)
-{
-	if (!menu) return;
-
-	// clear existing menu, as we might be rebuilding as result of inventory update
-	clear_landmark_menu(menu);
-
-	// *TODO: Translate
-	menu->append(new LLMenuItemCallGL("Organize Landmarks", 
-			&manage_landmarks, NULL));
-	menu->append(new LLMenuItemCallGL("New Landmark...", 
-			&create_new_landmark, NULL));
-	menu->appendSeparator();
-	
-	// now collect all landmarks in inventory and build menu...
-	LLInventoryModel::cat_array_t* cats;
-	LLInventoryModel::item_array_t* items;
-	gInventory.getDirectDescendentsOf(gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK), cats, items);
-	if(items)
-	{
-		S32 count = items->count();
-		for(S32 i = 0; i < count; ++i)
-		{
-			LLInventoryItem* item = items->get(i);
-			std::string landmark_name = item->getName();
-			LLUUID* landmark_id_ptr = new LLUUID( item->getUUID() );
-			LLMenuItemCallGL* menu_item =
-				new LLMenuItemCallGL(landmark_name, landmark_menu_action, 
-					NULL, NULL,	landmark_id_ptr);
-			menu->append(menu_item);
-		}
-	}
-}
-
-void clear_landmark_menu(LLMenuGL* menu)
-{
-	if (!menu) return;
-
-	// We store the UUIDs of the landmark inventory items in the userdata
-	// field of the menus.  Therefore when we clean up the menu we need to
-	// delete that data.
-	const LLView::child_list_t* child_list = menu->getChildList();
-	LLView::child_list_const_iter_t it = child_list->begin();
-	for ( ; it != child_list->end(); ++it)
-	{
-		LLView* view = *it;
-		LLMenuItemCallGL* menu_item = dynamic_cast<LLMenuItemCallGL*>(view);
-		
-		if (menu_item && menu_item->getMenuCallback() == landmark_menu_action)
-		{
-			void* user_data = menu_item->getUserData();
-			delete (LLUUID*)user_data;
-		}
-	}
-
-	menu->empty();
-}
-
 void init_client_menu(LLMenuGL* menu)
 {
 	LLMenuGL* sub_menu = NULL;
@@ -1364,12 +1234,10 @@ void init_debug_rendering_menu(LLMenuGL* menu)
 	sub_menu->append(new LLMenuItemCheckGL("Raycasting",	&LLPipeline::toggleRenderDebug, NULL,
 													&LLPipeline::toggleRenderDebugControl,
 													(void*)LLPipeline::RENDER_DEBUG_RAYCAST));
+	sub_menu->append(new LLMenuItemCheckGL("Sculpt",	&LLPipeline::toggleRenderDebug, NULL,
+													&LLPipeline::toggleRenderDebugControl,
+													(void*)LLPipeline::RENDER_DEBUG_SCULPTED));
 	
-	sub_menu->append(new LLMenuItemCheckGL("Show Depth Buffer",
-										   &menu_toggle_control,
-										   NULL,
-										   &menu_check_control,
-										   (void*)"ShowDepthBuffer"));
 	sub_menu->append(new LLMenuItemToggleGL("Show Select Buffer", &gDebugSelect));
 
 	sub_menu->append(new LLMenuItemCallGL("Vectorize Perf Test", &run_vectorize_perf_test));
@@ -1607,14 +1475,9 @@ static std::vector<LLPointer<view_listener_t> > sMenus;
 //-----------------------------------------------------------------------------
 void cleanup_menus()
 {
-	clear_landmark_menu(gLandmarkMenu);
-
 	delete gMenuParcelObserver;
 	gMenuParcelObserver = NULL;
 
-	delete gLandmarkObserver;
-	gLandmarkObserver = NULL;
-
 	delete gPieSelf;
 	gPieSelf = NULL;
 
@@ -1677,6 +1540,8 @@ class LLObjectTouch : public view_listener_t
 		LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
 		if (!object) return true;
 
+		LLPickInfo pick = LLToolPie::getInstance()->getPick();
+
 		LLMessageSystem	*msg = gMessageSystem;
 
 		msg->newMessageFast(_PREHASH_ObjectGrab);
@@ -1686,6 +1551,13 @@ class LLObjectTouch : public view_listener_t
 		msg->nextBlockFast( _PREHASH_ObjectData);
 		msg->addU32Fast(    _PREHASH_LocalID, object->mLocalID);
 		msg->addVector3Fast(_PREHASH_GrabOffset, LLVector3::zero );
+		msg->nextBlock("SurfaceInfo");
+		msg->addVector3("UVCoord", LLVector3(pick.mUVCoords));
+		msg->addVector3("STCoord", LLVector3(pick.mSTCoords));
+		msg->addS32Fast(_PREHASH_FaceIndex, pick.mObjectFace);
+		msg->addVector3("Position", pick.mIntersection);
+		msg->addVector3("Normal", pick.mNormal);
+		msg->addVector3("Binormal", pick.mBinormal);
 		msg->sendMessage( object->getRegion()->getHost());
 
 		// *NOTE: Hope the packets arrive safely and in order or else
@@ -1697,6 +1569,13 @@ class LLObjectTouch : public view_listener_t
 		msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
 		msg->nextBlockFast(_PREHASH_ObjectData);
 		msg->addU32Fast(_PREHASH_LocalID, object->mLocalID);
+		msg->nextBlock("SurfaceInfo");
+		msg->addVector3("UVCoord", LLVector3(pick.mUVCoords));
+		msg->addVector3("STCoord", LLVector3(pick.mSTCoords));
+		msg->addS32Fast(_PREHASH_FaceIndex, pick.mObjectFace);
+		msg->addVector3("Position", pick.mIntersection);
+		msg->addVector3("Normal", pick.mNormal);
+		msg->addVector3("Binormal", pick.mBinormal);
 		msg->sendMessage(object->getRegion()->getHost());
 
 		return true;
@@ -3154,60 +3033,6 @@ void handle_audio_status_4(void*)
 }
 #endif
 
-void manage_landmarks(void*)
-{
-	LLFloaterLandmark::showInstance(1);
-}
-
-void create_new_landmark(void*)
-{
-	// Note this is temporary cut and paste of legacy functionality.
-	// TODO: Make this spawn a floater allowing user customize before creating the inventory object
-
-	LLViewerRegion* agent_region = gAgent.getRegion();
-	if(!agent_region)
-	{
-		llwarns << "No agent region" << llendl;
-		return;
-	}
-	LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
-	if (!agent_parcel)
-	{
-		llwarns << "No agent parcel" << llendl;
-		return;
-	}
-	if (!agent_parcel->getAllowLandmark()
-		&& !LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
-	{
-		gViewerWindow->alertXml("CannotCreateLandmarkNotOwner");
-		return;
-	}
-
-	LLUUID folder_id;
-	folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
-	std::string pos_string;
-	gAgent.buildLocationString(pos_string);
-
-	create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-		folder_id, LLTransactionID::tnull,
-		pos_string, pos_string, // name, desc
-		LLAssetType::AT_LANDMARK,
-		LLInventoryType::IT_LANDMARK,
-		NOT_WEARABLE, PERM_ALL, 
-		NULL);
-}
-
-void landmark_menu_action(void* userdata)
-{
-	LLUUID item_id = *(LLUUID*)userdata;
-
-	LLViewerInventoryItem* itemp = gInventory.getItem(item_id);
-	if (itemp)
-	{
-		open_landmark(itemp, itemp->getName(), FALSE);
-	}
-}
-
 void reload_ui(void *)
 {
 	LLUICtrlFactory::getInstance()->rebuild();
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 46fc91aa5a6903ce990bb5d865836527d6223a5e..72d63085036be370b32b56f910ed018119ef8a93 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -757,7 +757,6 @@ void send_stats()
 	S32 window_height = gViewerWindow->getWindowDisplayHeight();
 	S32 window_size = (window_width * window_height) / 1024;
 	misc["string_1"] = llformat("%d", window_size);
-	misc["string_1"] = llformat("%.dx%d", window_width, window_height);
 	// misc["string_2"] = 
 // 	misc["int_1"] = LLFloaterDirectory::sOldSearchCount; // Steve: 1.18.6
 // 	misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 58d947787eb723fe5377809944509a6b2e7ca09e..821e306145afb2d95be87652a9d59489860195b8 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -174,7 +174,7 @@ class LLViewerWindow : public LLWindowCallbacks
 	/*virtual*/ void handleDataCopy(LLWindow *window, S32 data_type, void *data);
 	/*virtual*/ BOOL handleTimerEvent(LLWindow *window);
 	/*virtual*/ BOOL handleDeviceChange(LLWindow *window);
-
+	/*virtual*/ void handlePingWatchdog(LLWindow *window, const char * msg);
 
 
 	//
@@ -240,6 +240,7 @@ class LLViewerWindow : public LLWindowCallbacks
 	void			setCursor( ECursorType c );
 	void			showCursor();
 	void			hideCursor();
+	BOOL            getCursorHidden() { return mCursorHidden; }
 	void			moveCursorToCenter();								// move to center of window
 													
 	void			setShowProgress(const BOOL show);
@@ -402,10 +403,12 @@ class LLViewerWindow : public LLWindowCallbacks
 	BOOL			mSuppressToolbox;	// sometimes hide the toolbox, despite
 										// having a camera tool selected
 	BOOL			mHideCursorPermanent;	// true during drags, mouselook
+	BOOL            mCursorHidden;
 	LLPickInfo		mLastPick;
 	LLPickInfo		mHoverPick;
 	std::vector<LLPickInfo> mPicks;
 	LLRect			mPickScreenRegion; // area of frame buffer for rendering pick frames (generally follows mouse to avoid going offscreen)
+	LLTimer         mPickTimer;        // timer for scheduling n picks per second
 
 	std::string		mOverlayTitle;		// Used for special titles such as "Second Life - Special E3 2003 Beta"
 
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index d5d7056ef72fdaa9e8951d758ad3fccf69733af6..0ccba521fa3805caa41e2f126b77c9116011fbf2 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -6269,10 +6269,6 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object)
 	mDrawable->mXform.setPosition(rel_pos);
 	mDrawable->mXform.setRotation(mDrawable->getWorldRotation() * inv_obj_rot);
 
-	//in case the viewerobject is not updated in time
-	mDrawable->getVObj()->setPosition(sit_object->getWorldPosition()) ;
-	mDrawable->getVObj()->setRotation(sit_object->getWorldRotation()) ;
-
 	gPipeline.markMoved(mDrawable, TRUE);
 	mIsSitting = TRUE;
 	mRoot.getXform()->setParent(&sit_object->mDrawable->mXform); // LLVOAvatar::sitOnObject
@@ -6333,10 +6329,6 @@ void LLVOAvatar::getOffObject()
 	mDrawable->mXform.setPosition(cur_position_world);
 	mDrawable->mXform.setRotation(cur_rotation_world);	
 	
-	//in case the viewerobject is not updated from sim in time
-	mDrawable->getVObj()->setPosition(cur_position_world);
-	mDrawable->getVObj()->setRotation(cur_rotation_world);
-
 	gPipeline.markMoved(mDrawable, TRUE);
 
 	mIsSitting = FALSE;
@@ -8894,6 +8886,11 @@ U32 LLVOAvatar::getVisibilityRank()
 
 void LLVOAvatar::setVisibilityRank(U32 rank)
 {
+	if (mDrawable.isNull() || mDrawable->isDead())
+	{ //do nothing
+		return;
+	}
+
 	BOOL stale = gFrameTimeSeconds - mLastFadeTime > 10.f;
 	
 	//only raise visibility rank or trigger a fade out every 10 seconds
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 3cf0eb839dad3fa71a5b6a4fd8ea8dd0b902530f..8b1eba11a0194f14801512cc823b9d043881ff07 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -839,19 +839,12 @@ LLVoiceClient::LLVoiceClient()
 	mCaptureDeviceDirty = false;
 	mRenderDeviceDirty = false;
 
-	// Load initial state from prefs.
-	mVoiceEnabled = gSavedSettings.getBOOL("EnableVoiceChat");
-	mUsePTT = TRUE; //gSavedSettings.getBOOL("EnablePushToTalk");
-	std::string keyString = gSavedSettings.getString("PushToTalkButton");
-	setPTTKey(keyString);
-	mPTTIsToggle = gSavedSettings.getBOOL("PushToTalkToggle");
-	mEarLocation = gSavedSettings.getS32("VoiceEarLocation");
-	setVoiceVolume(gSavedSettings.getBOOL("MuteVoice") ? 0.f : gSavedSettings.getF32("AudioLevelVoice"));
-	std::string captureDevice = gSavedSettings.getString("VoiceInputAudioDevice");
-	setCaptureDevice(captureDevice);
-	std::string renderDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
-	setRenderDevice(renderDevice);
-	mLipSyncEnabled = gSavedSettings.getBOOL("LipSyncEnabled");
+	// Use default values for everything then call updateSettings() after preferences are loaded
+	mVoiceEnabled = false;
+	mUsePTT = true;
+	mPTTIsToggle = false;
+	mEarLocation = 0;
+	mLipSyncEnabled = false;
 	
 	mTuningMode = false;
 	mTuningEnergy = 0.0f;
@@ -895,12 +888,11 @@ LLVoiceClient::~LLVoiceClient()
 
 //----------------------------------------------
 
-
-
 void LLVoiceClient::init(LLPumpIO *pump)
 {
 	// constructor will set up gVoiceClient
 	LLVoiceClient::getInstance()->mPump = pump;
+	LLVoiceClient::getInstance()->updateSettings();
 }
 
 void LLVoiceClient::terminate()
@@ -923,6 +915,25 @@ void LLVoiceClient::terminate()
 	}
 }
 
+//---------------------------------------------------
+
+void LLVoiceClient::updateSettings()
+{
+	setVoiceEnabled(gSavedSettings.getBOOL("EnableVoiceChat"));
+	setUsePTT(gSavedSettings.getBOOL("PTTCurrentlyEnabled"));
+	std::string keyString = gSavedSettings.getString("PushToTalkButton");
+	setPTTKey(keyString);
+	setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle"));
+	setEarLocation(gSavedSettings.getS32("VoiceEarLocation"));
+	std::string serverName = gSavedSettings.getString("VivoxDebugServerName");
+	setVivoxDebugServerName(serverName);
+
+	std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice");
+	setCaptureDevice(inputDevice);
+	std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
+	setRenderDevice(outputDevice);
+	setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled"));
+}
 
 /////////////////////////////
 // utility functions
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 2e1efce6fbb9fb09dd2ab7b36e3f5a1063fc653b..c1f54d09f127c6c550b36fb6ec91df0113f392be 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -99,7 +99,9 @@ class LLVoiceClient: public LLSingleton<LLVoiceClient>
 			serviceTypeC		// one-to-one and small group chat
 		};
 		static F32 OVERDRIVEN_POWER_LEVEL;
-				
+
+		void updateSettings(); // call after loading settings and whenever they change
+	
 		/////////////////////////////
 		// session control messages
 		void connect();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index c6a7e9e28dee2bb677853c87bb8f84bb890f40bc..74af22dbc955f878cc8badc7de8cb2186aa261f0 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -68,7 +68,8 @@
 const S32 MIN_QUIET_FRAMES_COALESCE = 30;
 const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
 const F32 FORCE_CULL_AREA = 8.f;
-const S32 SCULPT_REZ = 64;
+// sadly - we can't lower sculptie rez below b/c residents have a LOT of content that depends on the 128
+const S32 SCULPT_REZ = 128;
 
 BOOL gAnimateTextures = TRUE;
 extern BOOL gHideSelectedObjects;
@@ -530,7 +531,13 @@ void LLVOVolume::updateTextures()
 			gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
 			mSculptChanged = TRUE;
 		}
-		
+
+		if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SCULPTED))
+			{
+				setDebugText(llformat("T%d C%d V%d\n%dx%d",
+									  texture_discard, current_discard, getVolume()->getSculptLevel(),
+									  mSculptTexture->getHeight(), mSculptTexture->getWidth()));
+			}
 	}
 
 
diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp
index 9f1d8abca790acfa32dc2100fca894b5241c2133..d9c6b6c58aa5fed2e42394d4f8cb56607f31f7ac 100644
--- a/indra/newview/llxmlrpctransaction.cpp
+++ b/indra/newview/llxmlrpctransaction.cpp
@@ -134,7 +134,7 @@ void LLXMLRPCValue::appendDouble(const char* id, double v)
 	XMLRPC_AddValueToVector(mV, XMLRPC_CreateValueDouble(id, v));
 }
 
-void LLXMLRPCValue::free()
+void LLXMLRPCValue::cleanup()
 {
 	XMLRPC_CleanupValue(mV);
 	mV = NULL;
diff --git a/indra/newview/llxmlrpctransaction.h b/indra/newview/llxmlrpctransaction.h
index 0fc89e781338fe92c64f155df00340faaf4c1cf5..d703f07d8bc912d72586f83fd3242fbb93c4ab7c 100644
--- a/indra/newview/llxmlrpctransaction.h
+++ b/indra/newview/llxmlrpctransaction.h
@@ -74,7 +74,7 @@ class LLXMLRPCValue
 	void appendDouble(const char*, double);
 	void appendValue(const char*, LLXMLRPCValue&);
 	
-	void free();
+	void cleanup();
 		// only call this on the top level created value
 	
 	XMLRPC_VALUE getValue() const;
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index f3168be46c2762446f08853e8852941ee431675b..7dd9ab5e1e4dacc6a7909521b06c679aa4f70145 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4520,6 +4520,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
 		return;
 	}
 
+	LLVertexBuffer::unbind();
 	LLGLState::checkStates();
 	LLGLState::checkTextureChannels();
 
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index a6f76df47aeda4e2af2f598f6ad796d94609f6ec..4ba6f39456b0debdb9e6966861badd0be0a42426 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -340,7 +340,8 @@ class LLPipeline
 		RENDER_DEBUG_LIGHTS				= 0x100000,
 		RENDER_DEBUG_BATCH_SIZE			= 0x200000,
 		RENDER_DEBUG_RAYCAST            = 0x400000,
-		RENDER_DEBUG_SHAME				= 0x800000
+		RENDER_DEBUG_SHAME				= 0x800000,
+		RENDER_DEBUG_SCULPTED           = 0x1000000
 	};
 
 public:
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 6490d8b5a2df68f986a0c56f672bf10eccc8cf9c..9107b3ae8a5758ad42c0152975ada7ad79e90869 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -3,30 +3,30 @@
 	<text_editor name="credits_editor">
 		Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, Ben, Bunny, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Hunter, Ian, Jeff, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, BillTodd, Ryan, Zach, Sarah, Nova, Otakon, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, DanceStar, Jeska, Hungry, Torley, Kona, Callum, Charity, Ventrella, Jack, Uncle, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Monroe, David, Tess, Lizzie, Patsy, Pony, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, James, Katie, Dawn, Katt, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn und vielen anderen.
 
-  Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: aaron23 decuir, Abra Miles, absolute balderdash, adelle fitzgerald, Aeron Kohime, Aki Shichiroji, Alger Meads, Alissa Sabre, AlwaysIcey Mapholisto, Arawn Spitteler, Aren Mandala, Arianna Wrigglesworth, Bagushii Kohime, Balpien Hammerer, Blinking2342 Blinker, byakuya runo, Capucchy Streeter, Chandra Jun, Coyote Pace, Crusher Soderstrom, Cummere Mayo, cyberrosa Rossini, Dael Ra, danana dodonpa, Darek Deluca, Davec Horsforth, django yifu, draco crane, Dre Dagostino, Ephyu Reino, etan quan, Fenrix Murakami, Fledhyris Proudhon, Fred Wardhani, Frederich Courier, garth fairchang, Gellan Glenelg, Geraldine Giha, GOLAN Eilde, gonzo joubert, Hachiro Yokosuka, Hampton Hax, harleywood guru, Hevenz Vansant, imnotgoing sideways, Jaden Giles, Jeanette Janus, Karl Dorance, keaton Akina, Khashai Steinbeck, KiPSOFT Tuqiri, kirstenlee Cinquetti, Kitty Barnett, Laurent Vesta, Lazure Ryba, Lima Vesperia, Linzi Bingyi, Lisa Lowe, LuDon Ninetails, Mark Rosenbaum, McCabe Maxsted, Michi Lumin, Midi Aeon, ml0rtd kit, Mo Eriksen, Morice Flanagan, Mysterion Aeon, Nad Gough, norgan torok, Pygar Bu, Qie Niangao, rachel corleone, Rado Arado, roberto salubrius, Royer Pessoa, samia bechir, Sasha Nurmi, Sean Heying, Selkit Diller, Shadow Pidgeon, simon kline, Smokie Ember, Soap Clawtooth, Strife Onizuka, Tal Chernov, Talan Hyun, tangletwigs fairymeadow, Tanya Spinotti, Tayra Dagostino, Teebone Aeon, Theremes Langdon, Thraxis Epsilon, tucor Capalini, Vasko Hawker, VenusMari Zapedzki, Vex Streeter, Viktoria Dovgal, Vincent Nacon, Viridian Exonar, Vivienne Schell, WarKirby Magojiro, Wilton Lundquist, Yukinoroh Kamachi, Zyzzy Zarf
+Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen:aaron23 decuir, Abra Miles, absolute balderdash, adelle fitzgerald, Aeron Kohime, Aki Shichiroji, Alger Meads, Alissa Sabre, AlwaysIcey Mapholisto, Arawn Spitteler, Aren Mandala, Arianna Wrigglesworth, Bagushii Kohime, Balpien Hammerer, Blinking2342 Blinker, byakuya runo, Capucchy Streeter, Chandra Jun, Coyote Pace, Crusher Soderstrom, Cummere Mayo, cyberrosa Rossini, Dael Ra, danana dodonpa, Darek Deluca, Davec Horsforth, django yifu, draco crane, Dre Dagostino, Ephyu Reino, etan quan, Fenrix Murakami, Fledhyris Proudhon, Fred Wardhani, Frederich Courier, garth fairchang, Gellan Glenelg, Geraldine Giha, GOLAN Eilde, gonzo joubert, Hachiro Yokosuka, Hampton Hax, harleywood guru, Hevenz Vansant, imnotgoing sideways, Jaden Giles, Jeanette Janus, Karl Dorance, keaton Akina, Khashai Steinbeck, KiPSOFT Tuqiri, kirstenlee Cinquetti, Kitty Barnett, Laurent Vesta, Lazure Ryba, Lima Vesperia, Linzi Bingyi, Lisa Lowe, LuDon Ninetails, Mark Rosenbaum, McCabe Maxsted, Michi Lumin, Midi Aeon, ml0rtd kit, Mo Eriksen, Morice Flanagan, Mysterion Aeon, Nad Gough, norgan torok, Pygar Bu, Qie Niangao, rachel corleone, Rado Arado, roberto salubrius, Royer Pessoa, samia bechir, Sasha Nurmi, Sean Heying, Selkit Diller, Shadow Pidgeon, simon kline, Smokie Ember, Soap Clawtooth, Strife Onizuka, Tal Chernov, Talan Hyun, tangletwigs fairymeadow, Tanya Spinotti, Tayra Dagostino, Teebone Aeon, Theremes Langdon, Thraxis Epsilon, tucor Capalini, Vasko Hawker, VenusMari Zapedzki, Vex Streeter, Viktoria Dovgal, Vincent Nacon, Viridian Exonar, Vivienne Schell, WarKirby Magojiro, Wilton Lundquist, Yukinoroh Kamachi, Zyzzy Zarf
 
-  3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
-  APR Copyright (C) 2000-2004 The Apache Software Foundation
-  cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
-  expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
-  FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
-  GL Copyright (C) 1999-2004 Brian Paul.
-  Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
-  jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
-  jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
-  ogg/vorbis Copyright (C) 2001, Xiphophorus
-  OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
-  SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
-  SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
-  xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
-  zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler.
+3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
+APR Copyright (C) 2000-2004 The Apache Software Foundation
+cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
+expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
+GL Copyright (C) 1999-2004 Brian Paul.
+Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ogg/vorbis Copyright (C) 2001, Xiphophorus
+OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler.
 
-  Alle Rechte vorbehalten.  Details siehe licenses.txt.
+Alle Rechte vorbehalten.Details siehe licenses.txt.
 
-  Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf. G.722.1 Anhang C)
+Voice-Chat-Audiocoding:Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C)
 
 
-  What happens to a dream deferred? --Langston Hughes
+Was geschieht, wenn Träume aufgeschoben werden?- Langston Hughes
 	</text_editor>
 	<text name="you_are_at">
 		Sie befinden sich in [POSITION]
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 52cd7a2a6da470d06b41e5de705482e30fee85f3..b75eeba248e4d57c67debeedaf09e969c2df01c1 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -113,6 +113,10 @@
 			<text name="sale_pending_text">
 				(Wird verkauft)
 			</text>
+			<string name="no_selection_text">
+				Keine Parzelle ausgewählt.
+Öffnen Sie &quot;Welt&quot; &gt; &quot;Land-Info&quot; oder wählen Sie eine andere Parzelle aus, um Informationen darüber anzuzeigen.
+			</string>
 		</panel>
 		<panel label="Vertrag" name="land_covenant_panel">
 			<text type="string" length="1" name="covenant_timestamp_text">
@@ -192,27 +196,33 @@
 			<text left="204" name="owner_objects_text" width="48">
 				[COUNT]
 			</text>
-			<button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60" />
+			<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" />
+			     right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
+			     width="119" />
 			<text left="14" name="Set to group:" width="200">
 				Der Gruppe übereignen:
 			</text>
 			<text left="204" name="group_objects_text" width="48">
 				[COUNT]
 			</text>
-			<button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60" />
+			<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" />
+			     right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
+			     width="119" />
 			<text left="14" name="Owned by others:" width="128">
 				Im Eigentum anderer:
 			</text>
 			<text left="204" name="other_objects_text" width="48">
 				[COUNT]
 			</text>
-			<button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60" />
+			<button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135"
+			     width="60" />
 			<button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOther..."
-			     right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119" />
+			     right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
+			     width="119" />
 			<text left="14" name="Selected / sat upon:" width="140">
 				Ausgewählt/gesessen auf:
 			</text>
diff --git a/indra/newview/skins/default/xui/de/floater_im.xml b/indra/newview/skins/default/xui/de/floater_im.xml
index 4507ee08fd9ba4f8a2a5fe9070823df73abadccb..e62ff2ae2179af33784166f5b095f731f031273a 100644
--- a/indra/newview/skins/default/xui/de/floater_im.xml
+++ b/indra/newview/skins/default/xui/de/floater_im.xml
@@ -7,7 +7,7 @@
 		[FIRST] [LAST] ist offline.
 	</text>
 	<string name="muted_message">
-		Einwohner ist stummgeschaltet.
+		Sie haben diesen Einwohner stummgeschaltet.Wenn Sie ihm eine Nachricht senden, wird die Stummschaltung automatisch aufgehoben.
 	</string>
 	<text name="generic_request_error">
 		Fehler bei Anfrage, bitte versuchen Sie es später.
diff --git a/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
index 7b656f549e2944df5298281a70e76aee0eb8436c..8d499bc30033fd16e00ba6d41bcc721c0250718a 100644
--- a/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/de/floater_live_lsleditor.xml
@@ -2,6 +2,7 @@
 <floater name="script ed float" title="Skript: Neues Skript">
 	<button label="Zurücksetzen" label_selected="Zurücksetzen" name="Reset" />
 	<check_box label="Läuft" name="running" />
+	<check_box label="Mono" name="mono" />
 	<text name="not_allowed">
 		Sie können dieses Skript nicht anzeigen.
 	</text>
diff --git a/indra/newview/skins/default/xui/de/floater_mem_leaking.xml b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4fe3058dfe6af23c2ef1d83b727e2861a1762d22
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_mem_leaking.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="MemLeak" title="Speicherverlust-Simulation">
+	<spinner label="Verlustgeschwindigkeit (Bytes pro Frame):" name="leak_speed" />
+	<spinner label="Max. Speicherverlust (MB):" name="max_leak" />
+	<text name="total_leaked_label">
+		Aktueller Speicherverlust:[SIZE] KB
+	</text>
+	<text name="note_label_1">
+		[NOTE1]
+	</text>
+	<text name="note_label_2">
+		[NOTE2]
+	</text>
+	<button label="Start" name="start_btn" />
+	<button label="Stopp" name="stop_btn" />
+	<button label="Freigeben" name="release_btn" />
+	<button label="Schließen" name="close_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_postcard.xml b/indra/newview/skins/default/xui/de/floater_postcard.xml
index 0168d5494332510671df83b3812ea147f88f4f38..639a8ffdd1c26217852f0550ed04f5d63d78e9ce 100644
--- a/indra/newview/skins/default/xui/de/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/de/floater_postcard.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Postcard" title="Postkarte senden">
+<floater name="Postcard" title="Foto per E-Mail senden">
 	<text name="to_label">
 		E-Mail des Empfängers:
 	</text>
-	<line_editor left="145" name="to_form" width="125"/>
+	<line_editor left="145" name="to_form" width="125" />
 	<text name="from_label">
 		Ihre E-Mail:
 	</text>
-	<line_editor left="145" name="from_form" width="125"/>
+	<line_editor left="145" name="from_form" width="125" />
 	<text name="name_label">
 		Ihr Name:
 	</text>
-	<line_editor left="145" name="name_form" width="125"/>
+	<line_editor left="145" name="name_form" width="125" />
 	<text name="subject_label">
 		Betreff:
 	</text>
-	<line_editor label="Betreff hier eingeben." name="subject_form" left="145" width="125"/>
+	<line_editor label="Betreff hier eingeben." left="145" name="subject_form" width="125" />
 	<text name="msg_label">
 		Nachricht:
 	</text>
@@ -27,9 +27,8 @@
 	<check_box label="Ab-18-Inhalt" name="mature_check"
 	     tool_tip="Diese Postkarte enthält nicht jugendfreie Inhalte." />
 	<button label="?" name="publish_help_btn" />
-	<text name="fine_print" >
-		Wenn sich der Empfänger Ihrer Postkarte bei SL anmeldet, erhalten Sie einen
-Empfehlungsbonus.
+	<text name="fine_print">
+		Wenn sich der Empfänger bei SL anmeldet, erhalten Sie einen Empfehlungsbonus.
 	</text>
 	<button label="Abbrechen" name="cancel_btn" />
 	<button label="Senden" name="send_btn" />
@@ -39,4 +38,7 @@ Empfehlungsbonus.
 	<text name="default_message">
 		Sehen Sie hier!
 	</text>
+	<string name="upload_message">
+		Wird gesendet...
+	</string>
 </floater>
diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
index 2c92e70681befc8c8f3983c9d0dd2ba0518e4076..a262c170175e13aa0d9c75dad61c54142b0a0090 100644
--- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
@@ -43,6 +43,99 @@ dann auf das Objekt:
 		<combo_item name="Selectcategory">
 			Kategorie auswählen
 		</combo_item>
+		<combo_item name="Select_category">
+			Kategorie auswählen
+		</combo_item>
+		<combo_item name="Age__Age_play">
+			Alter&gt; Age-Play
+		</combo_item>
+		<combo_item name="Age__Adult_resident_on_Teen_Second_Life">
+			Alter&gt; Erwachsener Einwohner in Teen Second Life
+		</combo_item>
+		<combo_item name="Age__Underage_resident_on_Adult_Second_Life">
+			Alter &gt; Minderjähriger Einwohner in Adult Second Life
+		</combo_item>
+		<combo_item name="Assault__Combat_sandbox___unsafe_area">
+			Angriff&gt; Kampf-Sandbox / unsichere Region
+		</combo_item>
+		<combo_item name="Assault__Safe_area">
+			Angriff&gt; Sichere Region
+		</combo_item>
+		<combo_item name="Assault__Weapons_testing_sandbox">
+			Angriff &gt; Sandbox für Waffentest
+		</combo_item>
+		<combo_item name="Copyright_or_intellectual_property_violation">
+			Urheberrechtsverletzung
+		</combo_item>
+		<combo_item name="Commerce__Failure_to_deliver_product_or_service">
+			Handel &gt; Produkt nicht geliefer oder Dienstleistung nicht erbracht
+		</combo_item>
+		<combo_item name="Disclosure__First_Life_information">
+			Offenlegung &gt; Private Benutzerdaten
+		</combo_item>
+		<combo_item name="Disclosure__Remotely_monitoring chat">
+			Offenlegung &gt; Abhören eines Chats aus der Ferne
+		</combo_item>
+		<combo_item name="Disclosure__Second_Life_information_chat_IMs">
+			Offenlegung &gt; Second Life-Informationen/Chat/IMs
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
+			Ruhestörung &gt; Unfaire Nutzung von Regionsressourcen
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
+			Ruhestörung &gt; Exzessive Nutzung geskripteter Objekte
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Object_littering">
+			Ruhestörung &gt; Wildes Erzeugen von Objekten
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Repetitive_spam">
+			Ruhestörung &gt; Ständige Spam-Wiederholung
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
+			Ruhestörung &gt; Unerwünschte Spam-Werbung
+		</combo_item>
+		<combo_item name="Fraud__L$">
+			Betrug &gt; L$
+		</combo_item>
+		<combo_item name="Fraud__Land">
+			Betrug&gt; Land
+		</combo_item>
+		<combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
+			Betrug &gt; Schneeballsystem oder Kettenbrief
+		</combo_item>
+		<combo_item name="Fraud__US$">
+			Betrug &gt; US$
+		</combo_item>
+		<combo_item name="Harassment__Advert_farms___visual_spam">
+			Belästigung &gt; Werbefarmen / visueller Spam
+		</combo_item>
+		<combo_item name="Harassment__Defaming_individuals_or_groups">
+			Belästigung &gt; Diffamieren von Einzelpersonen/Gruppen
+		</combo_item>
+		<combo_item name="Harassment__Impeding_movement">
+			Belästigung &gt; Bewegungseinschränkung
+		</combo_item>
+		<combo_item name="Harassment__Sexual_harassment">
+			Belästigung &gt; Sexuelle Belästigung
+		</combo_item>
+		<combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
+			Belästigung &gt; Anstiften Dritter zur Missachtung der Nutzungsbedingungen
+		</combo_item>
+		<combo_item name="Harassment__Verbal_abuse">
+			Belästigung &gt; Beschimpfung
+		</combo_item>
+		<combo_item name="Indecency__Broadly_offensive_content_or_conduct">
+			Unanständigkeit &gt; Anstößige Inhalte oder Handlungen in der Öffentlichkeit
+		</combo_item>
+		<combo_item name="Indecency__Broadly_visible_mature_content">
+			Unanständigkeit &gt; Nicht jugendfreier Inhalt in der Öffentlichkeit
+		</combo_item>
+		<combo_item name="Indecency__Inappropriate_avatar_name">
+			Unanständigkeit &gt; Anstößiger Avatarname
+		</combo_item>
+		<combo_item name="Indecency__Mature_content_in_PG_region">
+			Unanständigkeit &gt; Nicht jugendfreier Inhalt in &quot;Jugendfrei&quot;-Region
+		</combo_item>
 		<combo_item name="Intolerance">
 			Intoleranz
 		</combo_item>
@@ -64,6 +157,24 @@ dann auf das Objekt:
 		<combo_item name="Parcel">
 			Parzelle
 		</combo_item>
+		<combo_item name="Land__Abuse_of_sandbox_resources">
+			Land &gt; Missbrauch der Sandbox-Ressourcen
+		</combo_item>
+		<combo_item name="Land__Encroachment__Objects_textures">
+			Land &gt; Unbefugte Nutzung &gt; Objekte/Texturen
+		</combo_item>
+		<combo_item name="Land__Encroachment__Particles">
+			Land &gt; Unbefugte Nutzung &gt; Partikel
+		</combo_item>
+		<combo_item name="Land__Encroachment__Trees_plants">
+			Land &gt; Unbefugte Nutzung &gt; Bäume/Pflanzen
+		</combo_item>
+		<combo_item name="Trademark_violation">
+			Markenrechtsverletzung
+		</combo_item>
+		<combo_item name="Wagering_gambling">
+			Wetten/Glücksspiel
+		</combo_item>
 		<combo_item name="Other">
 			Sonstige
 		</combo_item>
@@ -73,6 +184,8 @@ dann auf das Objekt:
 	</text>
 	<button label="Einwohner auswählen" label_selected="" name="select_abuser"
 	     tool_tip="Den Namen des Beschuldigten aus einer Liste wählen" />
+	<check_box label="Name des Täters ist nicht bekannt" name="omit_abuser_name"
+	     tool_tip="Wählen Sie diese Option, wenn Ihnen der Name des Täters unbekannt ist" />
 	<text name="abuser_name_title2">
 		Ort des Missbrauchs:
 	</text>
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index 70d09ecc278d538f45b6239294d712afb52e0d57..38eb7137051f48970b5fc234bdecde3decd52df1 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -1,23 +1,26 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="Snapshot" title="Foto-Vorschau">
 	<text name="type_label">
-		Was möchten Sie tun?
+		Zweck des Fotos
 	</text>
 	<radio_group label="Fototyp" name="snapshot_type_radio">
 		<radio_item name="postcard">
-			Postkarte senden
+			Per E-Mail senden
 		</radio_item>
 		<radio_item name="texture">
-			Foto hochladen
+			Im Inventar speichern (L$10)
 		</radio_item>
 		<radio_item name="local">
-			Foto auf Festplatte speichern
+			Auf Festplatte speichern
 		</radio_item>
 	</radio_group>
 	<button label="Mehr &gt;&gt;" name="more_btn" tool_tip="Erweiterte Optionen" />
 	<button label="&lt;&lt; Weniger" name="less_btn" tool_tip="Erweiterte Optionen" />
 	<text name="type_label2">
-		Welche Bildgröße benötigen Sie?
+		Größe
+	</text>
+	<text name="format_label">
+		Format
 	</text>
 	<combo_box label="Auflösung" name="postcard_size_combo">
 		<combo_item name="640x480">
@@ -79,6 +82,17 @@
 			Benutzerdefiniert
 		</combo_item>
 	</combo_box>
+	<combo_box label="Format" name="local_format_combo">
+		<combo_item name="PNG">
+			PNG
+		</combo_item>
+		<combo_item name="JPEG">
+			JPEG
+		</combo_item>
+		<combo_item name="BMP">
+			BMP
+		</combo_item>
+	</combo_box>
 	<spinner label="Breite" name="snapshot_width" />
 	<spinner label="Höhe" name="snapshot_height" />
 	<slider label="Bildqualität" name="image_quality_slider" />
@@ -105,10 +119,10 @@
 	<check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check" />
 	<check_box label="Frame einfrieren (Vollbildvorschau)" name="freeze_frame_check" />
 	<button label="Foto aktualisieren" name="new_snapshot_btn" />
-	<check_box label="Automatisches Foto" name="auto_snapshot_check" />
-	<button label="Hochladen (10 L$)" name="upload_btn" />
+	<check_box label="Automatisch aktualisieren" name="auto_snapshot_check" />
+	<button label="Speichern (L$10)" name="upload_btn" />
 	<button label="Senden" name="send_btn" />
-	<button label="Speichern" name="save_btn" />
+	<button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern" />
 	<button label="Abbrechen" name="discard_btn" />
 	<text name="unknown">
 		unbekannt
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 8edb0d4cadccafc7c79982d7a5e21a8c56c1ebca..03401cee9cfe15a4bf280a10c56151bbdf04ff72 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -79,6 +79,9 @@
 			Groß
 		</combo_item>
 	</combo_box>
+	<text name="Strength:">
+		Stärke:
+	</text>
 	<button label="Auf Auswahl anwenden" label_selected="Auf Auswahl anwenden"
 	     name="button apply to selection" tool_tip="Ausgewähltes Land ändern" />
 	<check_box label="Eigentümer anzeigen" name="checkbox show owners" />
@@ -142,6 +145,9 @@
 			<text name="Price:  L$">
 				Preis:  L$
 			</text>
+			<text name="Cost">
+				Preis:L$
+			</text>
 			<radio_group name="sale type">
 				<radio_item name="Original">
 					Original
@@ -218,6 +224,21 @@
 			<text name="text modify warning">
 				Gesamtes Objekt muss gewählt werden, um Berechtigungen festzulegen.
 			</text>
+			<string name="Cost Default">
+				Preis:L$
+			</string>
+			<string name="Cost Total">
+				Summe:L$
+			</string>
+			<string name="Cost Per Unit">
+				Stückpreis:L$
+			</string>
+			<string name="Cost Mixed">
+				Mischpreis
+			</string>
+			<string name="Sale Mixed">
+				Mischverkauf
+			</string>
 		</panel>
 		<panel label="Objekt" name="Object">
 			<text name="select_single">
@@ -376,6 +397,10 @@
 			</text>
 			<texture_picker label="Textur für gestaltetes Primitiv" name="sculpt texture control"
 			     tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
+			<check_box label="Spiegeln" name="sculpt mirror control"
+			     tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln." />
+			<check_box label="Wenden" name="sculpt invert control"
+			     tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen." />
 			<text name="label sculpt type">
 				Naht
 			</text>
diff --git a/indra/newview/skins/default/xui/de/floater_top_objects.xml b/indra/newview/skins/default/xui/de/floater_top_objects.xml
index e13ccfe0bced66516fddc19884f57582a15eafca..d7abf5c62d265ce8c4879a35e440e7447c4e0558 100644
--- a/indra/newview/skins/default/xui/de/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/de/floater_top_objects.xml
@@ -8,19 +8,20 @@
 		<column label="Name" name="name" />
 		<column label="Owner" name="owner" />
 		<column label="Location" name="location" />
+		<column label="Uhrzeit" name="time" />
 	</scroll_list>
 	<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
 	     follows="left|bottom|right" font="SansSerifSmall" height="20" left="80"
 	     name="id_editor" text_readonly_color="white" width="244" />
-        <text name="id_text">
+	<text name="id_text">
 		Objekt-ID:
 	</text>
 	<button bottom_delta="0" follows="bottom|right" height="20" label="Beacon anzeigen"
 	     name="show_beacon_btn" right="-10" width="110" />
-        <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
+	<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
 	     follows="left|bottom|right" font="SansSerifSmall" height="20" left="80"
 	     name="object_name_editor" text_readonly_color="white" width="244" />
-        <text name="obj_name_text">
+	<text name="obj_name_text">
 		Objektname:
 	</text>
 	<button bottom_delta="0" follows="bottom|right" height="20" label="Filter"
@@ -28,19 +29,19 @@
 	<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="true"
 	     follows="left|bottom|right" font="SansSerifSmall" height="20" left="106"
 	     name="owner_name_editor" text_readonly_color="white" width="218" />
-        <text name="owner_name_text">
+	<text name="owner_name_text">
 		Eigentümername:
 	</text>
 	<button bottom_delta="0" follows="bottom|right" height="20" label="Filter"
 	     name="filter_owner_btn" right="-10" width="110" />
-        <button bottom="35" follows="bottom|left" height="20" label="Auswahl zurückgeben" left="10"
-	     name="return_selected_btn" width="134" />
-        <button bottom="35" follows="bottom|left" height="20" label="Alle zurückgeben" left="150"
-	     name="return_all_btn" width="134" />
+	<button bottom="35" follows="bottom|left" height="20" label="Auswahl zurückgeben"
+	     left="10" name="return_selected_btn" width="134" />
+	<button bottom="35" follows="bottom|left" height="20" label="Alle zurückgeben"
+	     left="150" name="return_all_btn" width="134" />
 	<button bottom="10" follows="bottom|left" height="20" label="Auswahl deaktivieren"
 	     left="10" name="disable_selected_btn" width="134" />
-	<button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren" left="150"
-	     name="disable_all_btn" width="134" />
+	<button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren"
+	     left="150" name="disable_all_btn" width="134" />
 	<button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren"
 	     name="refresh_btn" right="-10" width="110" />
 	<text name="top_scripts_title">
diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml
index de582203bca1ad539aa1baa075eb59c9e2910c5e..bb797551e4aec80ffbbcd4dcf7e924c623bf100e 100644
--- a/indra/newview/skins/default/xui/de/floater_tos.xml
+++ b/indra/newview/skins/default/xui/de/floater_tos.xml
@@ -13,6 +13,7 @@
 	<text name="tos_title">
 		Nutzungsvereinbarung
 	</text>
+	<check_box label="Ich stimme den Nutzungsbedingungen zu" name="agree_chk" />
 	<text name="tos_heading">
 		Lesen Sie die folgenden Nutzungsbedingungen sorgfältig durch. Sie müssen dieser Vereinbarung zustimmen,
 um Second Life benutzen zu können.
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index c7d20e76190cfd8069f24090ace7c2f930711a78..0934a28105cfb2a5db7738768abd4cb701af5919 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -142,6 +142,7 @@
 		<menu_item_call label="Als abwesend anzeigen" name="Set Away" />
 		<menu_item_call label="Als beschäftigt anzeigen" name="Set Busy" />
 		<menu_item_call label="Alle Animationen stoppen" name="Stop All Animations" />
+		<menu_item_call label="Tasten freigeben" name="Release Keys" />
 		<menu_item_separator label="-----------" name="separator4" />
 		<menu_item_call label="Kontostatistik..." name="Account History..." />
 		<menu_item_call label="Mein Konto verwalten..." name="Manage My Account..." />
@@ -208,12 +209,15 @@
 		<menu_item_separator label="-----------" name="separator6" />
 		<menu_item_call label="Skriptwarnung/Fehlerfenster anzeigen"
 		     name="Show Script Warning/Error Window" />
-		<menu_item_call label="Skripts in Auswahl neu kompilieren"
-		     name="Recompile Scripts in Selection" />
-		<menu_item_call label="Skripts zurücksetzen ausgewählte" name="Reset Scripts in Selection" />
-		<menu_item_call label="Skripts so einstellen, dass sie in Auswahl ausgeführt werden"
+		<menu_item_call label="Skripte in Auswahl neu kompilieren"
+		     name="Recompile Scripts in Selection">
+			<menu_item_call label="Mono" name="Mono" />
+			<menu_item_call label="LSL" name="LSL" />
+		</menu_item_call>
+		<menu_item_call label="Skripte in Auswahl zurücksetzen" name="Reset Scripts in Selection" />
+		<menu_item_call label="Skripte in Auswahl so einstellen, dass sie ausgeführt werden"
 		     name="Set Scripts to Running in Selection" />
-		<menu_item_call label="Skripts so einstellen, dass sie in Auswahl nicht ausgeführt werden"
+		<menu_item_call label="Skripte in Auswahl so einstellen, dass sie nicht ausgeführt werden"
 		     name="Set Scripts to Not Running in Selection" />
 	</menu>
 	<menu label="Hilfe" name="Help">
diff --git a/indra/newview/skins/default/xui/de/mime_types.xml b/indra/newview/skins/default/xui/de/mime_types.xml
index 03fd660a6fd24bf312cb42209fcb73801f5440ac..57b074e77af3222fae8e81b322e061c064627a67 100644
--- a/indra/newview/skins/default/xui/de/mime_types.xml
+++ b/indra/newview/skins/default/xui/de/mime_types.xml
@@ -59,12 +59,12 @@
 	</scheme>
 	<mimetype name="blank">
 		<label name="blank_label">
-			- Keine - 
+			- Keine -
 		</label>
 	</mimetype>
 	<mimetype name="none/none">
 		<label name="none/none_label">
-			- Keine - 
+			- Keine -
 		</label>
 	</mimetype>
 	<mimetype name="audio/*">
@@ -112,6 +112,11 @@
 			Rich Text (RTF)
 		</label>
 	</mimetype>
+	<mimetype name="application/smil">
+		<label name="application/smil_label">
+			Synchronized Multimedia Integration Language (SMIL)
+		</label>
+	</mimetype>
 	<mimetype name="application/xhtml+xml">
 		<label name="application/xhtml+xml_label">
 			Webseite (XHTML)
@@ -222,4 +227,4 @@
 			Video (AVI)
 		</label>
 	</mimetype>
-</mimetypes>
\ No newline at end of file
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml
index ac087443e195b5d89230a13370490dc8149d4f56..b024f7a121d8128658c87f2e2c2b909f34a54ad2 100644
--- a/indra/newview/skins/default/xui/de/panel_login.xml
+++ b/indra/newview/skins/default/xui/de/panel_login.xml
@@ -30,11 +30,14 @@
 	<button label="Neues Konto..." label_selected="Neues Konto..." name="new_account_btn" />
 	<button label="Einstellungen..." label_selected="Einstellungen..."
 	     name="preferences_btn" />
-	<button label="Verbinden" label_selected="Verbinden" name="connect_btn" />
+	<button label="Second Life betreten" label_selected="Verbinden" name="connect_btn" />
 	<button label="Beenden" label_selected="Beenden" name="quit_btn" />
 	<text name="version_text">
 		1.23.4 (5)
 	</text>
+	<text name="create_new_account_text">
+		Neues Konto erstellen.
+	</text>
 	<text name="channel_text">
 		[Viewer Channel Name]
 	</text>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index 036b916a4c1ac33dd0babe448e5fafadd051e18b..63120d330d248d7b1a1fcc227033c417cf3040c5 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -17,6 +17,8 @@
 	<text type="string" length="1" name="text_box2">
 		Chat-Farbe:
 	</text>
+	<color_swatch label="Sie" name="user" />
+	<color_swatch label="Andere" name="agent" />
 	<color_swatch label="IM" name="im" />
 	<color_swatch label="System" name="system" />
 	<color_swatch label="Chat" name="users" />
@@ -47,6 +49,7 @@
 	<check_box label="Pfeiltasten bewegen immer den Avatar beim Chatten"
 	     name="arrow_keys_move_avatar_check" />
 	<check_box label="Zeitstempel in Chat anzeigen" name="show_timestamps_check" />
+	<check_box label="Tipp-Animation abspielen" name="play_typing_animation" />
 	<text type="string" length="1" name="text_box7">
 		Blasen-Chat:
 	</text>
@@ -57,5 +60,5 @@
 	</text>
 	<check_box label="Skriptfehler und Warnungen als normalen Chat anzeigen"
 	     name="script_errors_as_chat" />
-	<color_swatch label="Farbe" name="script_error" />
+	<color_swatch label="Fehler" name="script_error" />
 </panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 26e8459b49312459c2df8e19ed93c880afda19e6..fbf57426e04871b0985724f31ad76dbffe94a46e 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -119,4 +119,6 @@
 			Español (Spanisch) - Beta
 		</combo_item>
 	</combo_box>
+	<check_box label="Objekten Sprache mitteilen" name="language_is_public"
+	     tool_tip="In-Welt-Objekten wird Ihre bevorzugte Spracheinstellung mitgeteilt." />
 </panel>
diff --git a/indra/newview/skins/default/xui/de/panel_region_debug.xml b/indra/newview/skins/default/xui/de/panel_region_debug.xml
index e31754da7fe36f2c2ec151e89f984df7da475870..1d77eac6651ae06fc9f2d87098d1783736a48857 100644
--- a/indra/newview/skins/default/xui/de/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_debug.xml
@@ -16,11 +16,23 @@
 	     tool_tip="Physik in dieser Region deaktivieren" />
 	<button label="?" name="disable_physics_help" />
 	<button label="Übernehmen" name="apply_btn" />
-	<button label="Avatar wählen..." name="choose_avatar_btn" />
+	<line_editor name="target_avatar_name">
+		(keiner)
+	</line_editor>
+	<button label="Auswählen..." name="choose_avatar_btn" />
 	<button label="Skriptobjekte des Avatars auf fremdem Land zurückgeben"
 	     name="return_scripted_other_land_btn" />
 	<button label="ALLE Skriptobjekte des Avatars zurückgeben"
 	     name="return_scripted_all_btn" />
+	<check_box label="Nur Objekte mit Skripten zurückgeben" name="return_scripts"
+	     tool_tip="Es werden nur die Objekte zurückgegeben, die über Skripte verfügen." />
+	<check_box label="Nur Objekte auf dem Land eines anderen Einwohners zurückgeben"
+	     name="return_other_land"
+	     tool_tip="Es werden nur die Objekte zurückgegeben, die sich auf dem Land eines anderen Einwohners befinden" />
+	<check_box label="Objekte in jeder Region dieses Grundstücks zurückgeben"
+	     name="return_estate_wide"
+	     tool_tip="Es werden die Objekte in allen Regionen dieses Grundstücks zurückgegeben" />
+	<button label="Zurückgeben" name="return_btn" />
 	<button label="Top-Kollisionsobjekte..." name="top_colliders_btn"
 	     tool_tip="Liste der Objekte mit den meisten potenziellen Kollisionen" />
 	<button label="?" name="top_colliders_help" />
diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml
index 6dd4be0ad72b02afd8191c6b1cafde3b7f53f3e7..94d7d18514c149ac8fd58d521ca500be55161f23 100644
--- a/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml
@@ -24,6 +24,12 @@
 	     tool_tip="Einwohner ohne Altersprüfung verbannen. Weitere Informationen finden Sie auf support.secondlife.com." />
 	<check_box label="Voice-Chat erlauben" name="voice_chat_check" />
 	<button label="?" name="voice_chat_help" />
+	<text name="abuse_email_text">
+		E-Mail-Adresse für Missbrauchsmeldungen:
+	</text>
+	<string name="email_unsupported">
+		Funktion nicht unterstützt
+	</string>
 	<button label=" ?" name="abuse_email_address_help" />
 	<button label="?" name="estate_manager_help" />
 	<button label="Hinzufügen..." name="add_estate_manager_btn" />
diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml
index c46fa0d0f982b3fc4941f82eee66af0a8943ddf6..26042bd773d8deb446ea84414f4aa1fb20d25fcb 100644
--- a/indra/newview/skins/default/xui/de/role_actions.xml
+++ b/indra/newview/skins/default/xui/de/role_actions.xml
@@ -144,7 +144,7 @@
 		     name="land gardening" />
 	</action_set>
 	<action_set
-	     description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter 'Auswahl-Tool' &gt; 'Bearbeiten' auf der Registerkarte 'Allgemein' vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie 'Bearbeiten', um seine Einstellungen anzuzeigen."
+	     description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos; vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie &apos;Bearbeiten&apos;, um seine Einstellungen anzuzeigen."
 	     name="Object Management">
 		<action description="Objekte an Gruppe übertragen"
 		     longdescription="Objekte an eine Gruppe übertragen können Sie unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos;."
@@ -184,4 +184,17 @@
 		     longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter &apos;Anfragen&apos; über Anfragen abstimmen."
 		     name="proposal vote" />
 	</action_set>
+	<action_set
+	     description="Diese Fähigkeiten ermöglichen es, den Zugang zu Gruppen-Chat und Gruppen-Voice-Chat zu steuern."
+	     name="Chat">
+		<action description="Gruppen-Chat beitreten"
+		     longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten."
+		     name="join group chat" />
+		<action description="Gruppen-Voice-Chat beitreten"
+		     longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Voice-Chat beitreten.HINWEIS:Sie benötigen die Fähigkeit &apos;Gruppen-Chat beitreten&apos;, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten."
+		     name="join voice chat" />
+		<action description="Gruppen-Chat moderieren"
+		     longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern."
+		     name="moderate group chat" />
+	</action_set>
 </role_actions>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index be64d7f3581c63e44b1cca741429278ef351b339..6a9a9cce6af08513155058557a67bab3e0af3296 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -18,6 +18,9 @@
 	<string name="LoginInitializingBrowser">
 		Integrierter Webbrowser wird initialisiert...
 	</string>
+	<string name="LoginInitializingMultimedia">
+		Multimedia wird initialisiert...
+	</string>
 	<string name="LoginVerifyingCache">
 		Cache-Dateien werden überprüft (dauert 60-90 Sekunden)...
 	</string>
@@ -48,6 +51,9 @@
 	<string name="LoginDownloadingClothing">
 		Kleidung wird geladen...
 	</string>
+	<string name="AgentLostConnection">
+		In dieser Region kann es zu Problemen kommen. Bitte überprüfen Sie Ihre Internetverbindung.
+	</string>
 	<string name="TooltipPerson">
 		Person
 	</string>
@@ -120,9 +126,15 @@
 	<string name="TooltipLand">
 		Land:
 	</string>
+	<string name="TooltipMustSingleDrop">
+		Sie können nur ein einzelnes Objekt hierher ziehen
+	</string>
 	<string name="RetrievingData">
 		Laden...
 	</string>
+	<string name="ReleaseNotes">
+		Versionshinweise
+	</string>
 	<string name="LoadingData">
 		Wird geladen...
 	</string>
@@ -387,4 +399,16 @@
 	<string name="anim_yes_head">
 		Ja
 	</string>
+	<string name="texture_loading">
+		Wird geladen...
+	</string>
+	<string name="worldmap_offline">
+		Offline
+	</string>
+	<string name="whisper">
+		Flüstert:
+	</string>
+	<string name="shout">
+		Ruft:
+	</string>
 </strings>
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index 57faea08c22b7aabf4b0bcacbbc345d22563230f..6f6ec42802d05cf0b323cfae9c34424dd6bc1c6e 100644
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -1,32 +1,32 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="floater_about" title="Second Lifeについて">
 	<text_editor name="credits_editor">
-		Second Life は、 Philip、 Tessa、 Andrew、 Cory、 Ben、 Bunny、 Char、 Charlie、 Colin、 Dan、 Daniel、 Doug、 Eric、 Hamlet、 Haney、 Hunter、 Ian、 Jeff、 Jim、 John、 Lee、 Mark、 Peter、 Phoenix、 Richard、 Robin、 Xenon、 Steve、 Tanya、 Eddie、 Frank、 Bruce、 Aaron、 Alice、 Bob、 Debra、 Eileen、 Helen、 Janet、 Louie、 Leviathania、 Stefan、 Ray、 Kevin、 Tom、 Mikeb、 MikeT、 Burgess、 Elena、 Tracy、 BillTodd、 Ryan、 Zach、 Sarah、 Nova、 Otakon、 Tim、 Stephanie、 Michael、 Evan、 Nicolas、 Catherine、 Rachelle、 Dave、 Holly、 Bub、 Kelly、 Magellan、 Ramzi、 Don、 Sabin、 Jill、 Rheya、 DanceStar、 Jeska、 Hungry、 Torley、 Kona、 Callum、 Charity、 Ventrella、 Jack、 Uncle、 Vektor、 Iris、 Chris、 Nicole、 Mick、 Reuben、 Blue、 Babbage、 Yedwab、 Deana、 Lauren、 Brent、 Pathfinder、 Chadrick、 Altruima、 Jesse、 Monroe、 David、 Tess、 Lizzie、 Patsy、 Pony、 Isaac、 Lawrence、 Cyn、 Bo、 Gia、 Annette、 Marius、 Tbone、 Jonathan、 Karen、 Ginsu、 Yuko、 Makiko、 Thomas、 Harry、 Seth、 Alexei、 Brian、 Guy、 Runitai、 Ethan、 Data、 Cornelius、 Kenny、 Swiss、 Zero、 Natria、 Wendy、 Stephen、 Teeple、 Thumper、 Lucy、 Dee、 Mia、 Liana、 Warren、 Branka、 Aura、 beez、 Milo、 Hermia、 Red、 Thrax、 Joe、 Sally、 Magenta、 Paul、 Jose、 Rejean、 Henrik、 Lexie、 Amber、 Logan、 Xan、 Nora、 Morpheus、 Donovan、 Leyla、 MichaelFrancis、 Beast、 Cube、 Bucky、 Joshua、 Stryfe、 Harmony、 Teresa、 Claudia、 Walker、 Glenn、 Fritz、 Fordak、 June、 Cleopetra、 Jean、 Ivy、 Betsy、 Roosevelt、 Spike、 Ken、 Which、 Tofu、 Chiyo、 Rob、 Zee、 dustin、 George、 Del、 Matthew、 Cat、 Jacqui、 Lightfoot、 Adrian、 Viola、 Alfred、 Noel、 Irfan、 Sunil、 Yool、 Rika、 Jane、 Xtreme、 Frontier、 a2、 Neo、 Siobhan、 Yoz、 Justin、 Elle、 Qarl、 Benjamin、 Isabel、 Gulliver、 Everett、 Christopher、 Izzy、 Stephany、 Garry、 Sejong、 Sean、 Tobin、 Iridium、 Meta、 Anthony、 Jeremy、 JP、 Jake、 Maurice、 Madhavi、 Leopard、 Kyle、 Joon、 Kari、 Bert、 Belinda、 Jon、 Kristi、 Bridie、 Pramod、 KJ、 Socrates、 Maria、 Ivan、 Aric、 Yamasaki、 Adreanne、 Jay、 MitchK、 Ceren、 Coco、 Durl、 Jenny、 Periapse、 Kartic、 Storrs、 Lotte、 Sandy、 Colossus、 Zen、 BigPapi、 Brad、 Pastrami、 Kurz、 Mani、 Neuro、 Jaime、 MJ、 Rowan、 Sgt、 Elvis、 Gecko、 Samuel、 Sardonyx、 Leo、 Bryan、 Niko、 Soft、 Poppy、 Rachel、 Aki、 Angelo、 Banzai、 Alexa、 Sue、 CeeLo、 Bender、 CG、 Gillian、 Pelle、 Nick、 Echo、 Zara、 Christine、 Shamiran、 Emma、 Blake、 Keiko、 Plexus、 Joppa、 Sidewinder、 Erica、 Ashlei、 Twilight、 Kristen、 Brett、 Q、 Enus、 Simon、 Bevis、 Kraft、 Kip、 Chandler、 Ron、 LauraP、 Ram、 KyleJM、 Scouse、 Prospero、 Melissa、 Marty、 Nat、 Hamilton、 Kend、 Lordan、 Jimmy、 Kosmo、 Seraph、 Green、 Ekim、 Wiggo、 JT、 Rome、 Doris、 Miz、 Benoc、 Whump、 Trinity、 Patch、 Kate、 TJ、 Bao、 Joohwan、 Christy、 Sofia、 Matias、 Cogsworth、 Johan、 Oreh、 Cheah、 Angela、 Brandy、 Mango、 Lan、 Aleks、 Gloria、 Heidy、 Mitchell、 Space、 Colton、 Bambers、 Einstein、 Maggie、 Malbers、 Rose、 Winnie、 Stella、 Milton、 Rothman、 Niall、 Marin、 Allison、 James、 Katie、 Dawn、 Katt、 Kalpana、 Judy、 Andrea、 Ambroff、 Infinity、 Gail、 Rico、 Raymond、 Yi、 William、 Christa、 M、 Teagan、 Scout、 Molly、 Dante、 Corr、 Dynamike、 Usi、 Kaylee、 Lil、 Danica、 Sascha、 Kelv、 Jacob、 Nya、 Rodney、 Brandon、 Elsie、 Blondin、 Grant、 Katrin、 Nyx、 Gabriel、 Locklainn、 Claire、 Devin、 Minerva、 Monty、 Austin、 Bradford、 Si、 Keira、 H、 Caitlin、 Dita、 Makai、 Jenn と、その他多数の人達によって作成されました。
+		Second Lifeは、Philip、Tessa、Andrew、Cory、Ben、Bunny、Char、Charlie、Colin、Dan、Daniel、Doug、Eric、Hamlet、Haney、Hunter、Ian、Jeff、Jim、John、Lee、Mark、Peter、Phoenix、Richard、Robin、Xenon、Steve、Tanya、Eddie、Frank、Bruce、Aaron、Alice、Bob、Debra、Eileen、Helen、Janet、Louie、Leviathania、Stefan、Ray、Kevin、Tom、Mikeb、MikeT、Burgess、Elena、Tracy、BillTodd、Ryan、Zach、Sarah、Nova、Otakon、Tim、Stephanie、Michael、Evan、Nicolas、Catherine、Rachelle、Dave、Holly、Bub、Kelly、Magellan、Ramzi、Don、Sabin、Jill、Rheya、DanceStar、Jeska、Hungry、Torley、Kona、Callum、Charity、Ventrella、Jack、Uncle、Vektor、Iris、Chris、Nicole、Mick、Reuben、Blue、Babbage、Yedwab、Deana、Lauren、Brent、Pathfinder、Chadrick、Altruima、Jesse、Monroe、David、Tess、Lizzie、Patsy、Pony、Isaac、Lawrence、Cyn、Bo、Gia、Annette、Marius、Tbone、Jonathan、Karen、Ginsu、Yuko、Makiko、Thomas、Harry、Seth、Alexei、Brian、Guy、Runitai、Ethan、Data、Cornelius、Kenny、Swiss、Zero、Natria、Wendy、Stephen、Teeple、Thumper、Lucy、Dee、Mia、Liana、Warren、Branka、Aura、beez、Milo、Hermia、Red、Thrax、Joe、Sally、Magenta、Paul、Jose、Rejean、Henrik、Lexie、Amber、Logan、Xan、Nora、Morpheus、Donovan、Leyla、MichaelFrancis、Beast、Cube、Bucky、Joshua、Stryfe、Harmony、Teresa、Claudia、Walker、Glenn、Fritz、Fordak、June、Cleopetra、Jean、Ivy、Betsy、Roosevelt、Spike、Ken、Which、Tofu、Chiyo、Rob、Zee、dustin、George、Del、Matthew、Cat、Jacqui、Lightfoot、Adrian、Viola、Alfred、Noel、Irfan、Sunil、Yool、Rika、Jane、Xtreme、Frontier、a2、Neo、Siobhan、Yoz、Justin、Elle、Qarl、Benjamin、Isabel、Gulliver、Everett、Christopher、Izzy、Stephany、Garry、Sejong、Sean、Tobin、Iridium、Meta、Anthony、Jeremy、JP、Jake、Maurice、Madhavi、Leopard、Kyle、Joon、Kari、Bert、Belinda、Jon、Kristi、Bridie、Pramod、KJ、Socrates、Maria、Ivan、Aric、Yamasaki、Adreanne、Jay、MitchK、Ceren、Coco、Durl、Jenny、Periapse、Kartic、Storrs、Lotte、Sandy、Colossus、Zen、BigPapi、Brad、Pastrami、Kurz、Mani、Neuro、Jaime、MJ、Rowan、Sgt、Elvis、Gecko、Samuel、Sardonyx、Leo、Bryan、Niko、Soft、Poppy、Rachel、Aki、Angelo、Banzai、Alexa、Sue、CeeLo、Bender、CG、Gillian、Pelle、Nick、Echo、Zara、Christine、Shamiran、Emma、Blake、Keiko、Plexus、Joppa、Sidewinder、Erica、Ashlei、Twilight、Kristen、Brett、Q、Enus、Simon、Bevis、Kraft、Kip、Chandler、Ron、LauraP、Ram、KyleJM、Scouse、Prospero、Melissa、Marty、Nat、Hamilton、Kend、Lordan、Jimmy、Kosmo、Seraph、Green、Ekim、Wiggo、JT、Rome、Doris、Miz、Benoc、Whump、Trinity、Patch、Kate、TJ、Bao、Joohwan、Christy、Sofia、Matias、Cogsworth、Johan、Oreh、Cheah、Angela、Brandy、Mango、Lan、Aleks、Gloria、Heidy、Mitchell、Space、Colton、Bambers、Einstein、Maggie、Malbers、Rose、Winnie、Stella、Milton、Rothman、Niall、Marin、Allison、James、Katie、Dawn、Katt、Kalpana、Judy、Andrea、Ambroff、Infinity、Gail、Rico、Raymond、Yi、William、Christa、M、Teagan、Scout、Molly、Dante、Corr、Dynamike、Usi、Kaylee、Lil、Danica、Sascha、Kelv、Jacob、Nya、Rodney、Brandon、Elsie、Blondin、Grant、Katrin、Nyx、Gabriel、Locklainn、Claire、Devin、Minerva、Monty、Austin、Bradford、Si、Keira、H、Caitlin、Dita、Makai、Jennと、その他多数の人達によって作成されました。
 
-このバージョンをこれまでで最高のものになるようご協力をいただいた以下の住人の皆様に深く感謝いたします。aaron23 decuir、 Abra Miles、 absolute balderdash、 adelle fitzgerald、 Aeron Kohime、 Aki Shichiroji、 Alger Meads、 Alissa Sabre、 AlwaysIcey Mapholisto、 Arawn Spitteler、 Aren Mandala、 Arianna Wrigglesworth、 Bagushii Kohime、 Balpien Hammerer、 Blinking2342 Blinker、 byakuya runo、 Capucchy Streeter、 Chandra Jun、 Coyote Pace、 Crusher Soderstrom、 Cummere Mayo、 cyberrosa Rossini、 Dael Ra、 danana dodonpa、 Darek Deluca、 Davec Horsforth、 django yifu、 draco crane、 Dre Dagostino、 Ephyu Reino、 etan quan、 Fenrix Murakami、 Fledhyris Proudhon、 Fred Wardhani、 Frederich Courier、 garth fairchang、 Gellan Glenelg、 Geraldine Giha、 GOLAN Eilde、 gonzo joubert、 Hachiro Yokosuka、 Hampton Hax、 harleywood guru、 Hevenz Vansant、 imnotgoing sideways、 Jaden Giles、 Jeanette Janus、 Karl Dorance、 keaton Akina、 Khashai Steinbeck、 KiPSOFT Tuqiri、 kirstenlee Cinquetti、 Kitty Barnett、 Laurent Vesta、 Lazure Ryba、 Lima Vesperia、 Linzi Bingyi、 Lisa Lowe、 LuDon Ninetails、 Mark Rosenbaum、 McCabe Maxsted、 Michi Lumin、 Midi Aeon、 ml0rtd kit、 Mo Eriksen、 Morice Flanagan、 Mysterion Aeon、 Nad Gough、 norgan torok、 Pygar Bu、 Qie Niangao、 rachel corleone、 Rado Arado、 roberto salubrius、 Royer Pessoa、 samia bechir、 Sasha Nurmi、 Sean Heying、 Selkit Diller、 Shadow Pidgeon、 simon kline、 Smokie Ember、 Soap Clawtooth、 Strife Onizuka、 Tal Chernov、 Talan Hyun、 tangletwigs fairymeadow、 Tanya Spinotti、 Tayra Dagostino、 Teebone Aeon、 Theremes Langdon、 Thraxis Epsilon、 tucor Capalini、 Vasko Hawker、 VenusMari Zapedzki、 Vex Streeter、 Viktoria Dovgal、 Vincent Nacon、 Viridian Exonar、 Vivienne Schell、 WarKirby Magojiro、 Wilton Lundquist、 Yukinoroh Kamachi、 Zyzzy Zarf
+  このバージョンをこれまでで最高のものになるようご協力をいただいた以下の住人の皆様に深く感謝いたします。 aaron23 decuir、Abra Miles、absolute balderdash、adelle fitzgerald、Aeron Kohime、Aki Shichiroji、Alger Meads、Alissa Sabre、AlwaysIcey Mapholisto、Arawn Spitteler、Aren Mandala、Arianna Wrigglesworth、Bagushii Kohime、Balpien Hammerer、Blinking2342 Blinker、byakuya runo、Capucchy Streeter、Chandra Jun、Coyote Pace、Crusher Soderstrom、Cummere Mayo、cyberrosa Rossini、Dael Ra、danana dodonpa、Darek Deluca、Davec Horsforth、django yifu、draco crane、Dre Dagostino、Ephyu Reino、etan quan、Fenrix Murakami、Fledhyris Proudhon、Fred Wardhani、Frederich Courier、garth fairchang、Gellan Glenelg、Geraldine Giha、GOLAN Eilde、gonzo joubert、Hachiro Yokosuka、Hampton Hax、harleywood guru、Hevenz Vansant、imnotgoing sideways、Jaden Giles、Jeanette Janus、Karl Dorance、keaton Akina、Khashai Steinbeck、KiPSOFT Tuqiri、kirstenlee Cinquetti、Kitty Barnett、Laurent Vesta、Lazure Ryba、Lima Vesperia、Linzi Bingyi、Lisa Lowe、LuDon Ninetails、Mark Rosenbaum、McCabe Maxsted、Michi Lumin、Midi Aeon、ml0rtd kit、Mo Eriksen、Morice Flanagan、Mysterion Aeon、Nad Gough、norgan torok、Pygar Bu、Qie Niangao、rachel corleone、Rado Arado、roberto salubrius、Royer Pessoa、samia bechir、Sasha Nurmi、Sean Heying、Selkit Diller、Shadow Pidgeon、simon kline、Smokie Ember、Soap Clawtooth、Strife Onizuka、Tal Chernov、Talan Hyun、tangletwigs fairymeadow、Tanya Spinotti、Tayra Dagostino、Teebone Aeon、Theremes Langdon、Thraxis Epsilon、tucor Capalini、Vasko Hawker、VenusMari Zapedzki、Vex Streeter、Viktoria Dovgal、Vincent Nacon、Viridian Exonar、Vivienne Schell、WarKirby Magojiro、Wilton Lundquist、Yukinoroh Kamachi、Zyzzy Zarf
 
-3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
-APR Copyright (C) 2000-2004 The Apache Software Foundation
-cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
-expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
-FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
-GL Copyright (C) 1999-2004 Brian Paul.
-Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
-jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
-jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
-ogg/vorbis Copyright (C) 2001, Xiphophorus
-OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
-SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
-SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
-xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
-zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
+  3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
+  APR Copyright (C) 2000-2004 The Apache Software Foundation
+  cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
+  expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+  FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
+  GL Copyright (C) 1999-2004 Brian Paul.
+  Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+  jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+  jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+  ogg/vorbis Copyright (C) 2001, Xiphophorus
+  OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+  SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+  SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+  xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+  zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
 
-無断複写・転載を禁じます。詳細はlicenses.txtを参照してください。
+  無断転写、複製、転載を禁じます。  詳細はlicenses.txtを参照してください。
 
-Voice chat Audio coding:Polycom(R) Siren14(TM) (ITU-T Rec.G.722.1 Annex C)
+  Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
 
 
-しあわせはあったかい子犬-- チャールズ・M・シュルツ
+  後回しにされた夢はどうなるの? --ラングストン・ヒューズ
 	</text_editor>
 	<text name="you_are_at">
 		[POSITION]中
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index cbefed4760944ed6d79dbb9faa0ad83f3e3be469..adc85df627c5fa55f636ded25006e2fb39db1da9 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -115,6 +115,10 @@
 			<text name="sale_pending_text">
 				(購入審査中)
 			</text>
+			<string name="no_selection_text">
+				区画が選定されていません。
+[世界]メニュー&gt;[土地情報]に進むか、別の区画を選択して、詳細を表示します。
+			</string>
 		</panel>
 		<panel label="約款" name="land_covenant_panel">
 			<text type="string" length="1" name="covenant_timestamp_text">
diff --git a/indra/newview/skins/default/xui/ja/floater_im.xml b/indra/newview/skins/default/xui/ja/floater_im.xml
index 1be8e7b60ae2ba3bed70850de236ca2d221773b9..4887beefd689316e37734ed3c28b21527e3b82cd 100644
--- a/indra/newview/skins/default/xui/ja/floater_im.xml
+++ b/indra/newview/skins/default/xui/ja/floater_im.xml
@@ -7,7 +7,7 @@
 		[FIRST] [LAST]はオフラインです。
 	</text>
 	<string name="muted_message">
-		住人はミュートされています。
+		あなたはこの住人をミュートしています。 メッセージを送信すると、ミュートは自動的に解除されます。
 	</string>
 	<text name="generic_request_error">
 		要求中にエラーが発生しました。後でもう一度試してください。
diff --git a/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
index b7ce98cf2d670b91701fc2281426668ec7b6f307..d28c673be56df62106d1583bf2779e086e768bcb 100644
--- a/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
@@ -2,6 +2,7 @@
 <floater name="script ed float" title="スクリプト:新しいスクリプト">
 	<button label="リセット" label_selected="リセット" name="Reset" />
 	<check_box label="実行中" name="running" />
+	<check_box label="モノ" name="mono" />
 	<text name="not_allowed">
 		あなたはこのスクリプトを見ることができません。
 	</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bdec7e5e630bd31ed50f5e133f5a1fa04dc3251a
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="MemLeak" title="メモリ・リーク・シミュレーション">
+	<spinner label="リークスピード(1フレームごとのバイト数):"
+	     name="leak_speed" />
+	<spinner label="リークした最大メモリ数(MB):" name="max_leak" />
+	<text name="total_leaked_label">
+		現在のリークメモリサイズ: [SIZE] KB
+	</text>
+	<text name="note_label_1">
+		[NOTE1]
+	</text>
+	<text name="note_label_2">
+		[NOTE2]
+	</text>
+	<button label="é–‹å§‹" name="start_btn" />
+	<button label="停止" name="stop_btn" />
+	<button label="解放" name="release_btn" />
+	<button label="閉じる" name="close_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_postcard.xml b/indra/newview/skins/default/xui/ja/floater_postcard.xml
index eb318f6a8ca23d92e0676b23c49b2c23493b7051..1689ec74f464edbf939d3f39f63a78db6882422b 100644
--- a/indra/newview/skins/default/xui/ja/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/ja/floater_postcard.xml
@@ -1,37 +1,37 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Postcard" title="ポストカードを送る">
+<floater name="Postcard" title="スナップショットを電子メールで送信">
 	<text name="to_label">
 		住人の電子メール:
 	</text>
-	<line_editor left="145" name="to_form" width="125"/>
+	<line_editor left="145" name="to_form" width="125" />
 	<text name="from_label">
 		あなたのEメール:
 	</text>
-	<line_editor left="145" name="from_form" width="125"/>
+	<line_editor left="145" name="from_form" width="125" />
 	<text name="name_label">
 		あなたの名前:
 	</text>
-	<line_editor left="145" name="name_form" width="125"/>
+	<line_editor left="145" name="name_form" width="125" />
 	<text name="subject_label">
 		件名:
 	</text>
-	<line_editor label="件名をここにタイプ。" name="subject_form" left="145" width="125" />
+	<line_editor label="件名をここにタイプ。" left="145" name="subject_form"
+	     width="125" />
 	<text name="msg_label">
 		メッセージ:
 	</text>
-	<text_editor name="msg_form"  height="110" bottom_delta="-120">
+	<text_editor bottom_delta="-120" height="110" name="msg_form">
 		メッセージをここにタイプ。
 	</text_editor>
 	<check_box label="ウェブ上で公開" name="allow_publish_check"
 	     tool_tip="このポストカードをウェブ上で公開します。" />
 	<check_box label="成人向けコンテンツ" name="mature_check"
 	     tool_tip="このポストカードには成人向け内容が含まれます。" />
-	<button label="?" name="publish_help_btn" left="300" />
+	<button label="?" left="300" name="publish_help_btn" />
 	<text name="fine_print">
-		あなたのポストカードの受信者がSLに参加すると、あなたは紹介ボーナスを受
-け取ります。
+		あなたの受信者がSLに参加すると、あなたは紹介ボーナスを受け取れます
 	</text>
-	<button label="取り消し" name="cancel_btn" bottom_delta="-52" />
+	<button bottom_delta="-52" label="取り消し" name="cancel_btn" />
 	<button label="送信" name="send_btn" />
 	<text name="default_subject">
 		Second Life からのポストカード。
@@ -39,4 +39,7 @@
 	<text name="default_message">
 		これは絶対チェック!
 	</text>
+	<string name="upload_message">
+		送信中...
+	</string>
 </floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
index e87b7797d340efc7655c209dab16ac72b327b03f..052e560661d7f1e2287d3e66ea590ea7f7fe9398 100644
--- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
@@ -42,8 +42,101 @@
 		<combo_item name="Selectcategory">
 			カテゴリーを選択
 		</combo_item>
+		<combo_item name="Select_category">
+			カテゴリーを選択
+		</combo_item>
+		<combo_item name="Age__Age_play">
+			年齢&gt;年齢偽証
+		</combo_item>
+		<combo_item name="Age__Adult_resident_on_Teen_Second_Life">
+			年齢&gt;成人の住人がTeen Second Life上にいる
+		</combo_item>
+		<combo_item name="Age__Underage_resident_on_Adult_Second_Life">
+			年齢&gt;未成年の住人がAdult Second Life上にいる
+		</combo_item>
+		<combo_item name="Assault__Combat_sandbox___unsafe_area">
+			攻撃&gt;コンバット・サンドボックス/危険なエリア
+		</combo_item>
+		<combo_item name="Assault__Safe_area">
+			攻撃&gt;安全なエリア
+		</combo_item>
+		<combo_item name="Assault__Weapons_testing_sandbox">
+			攻撃&gt;武器テスト用サンドボックス
+		</combo_item>
+		<combo_item name="Copyright_or_intellectual_property_violation">
+			著作権または知的所有権に関する違反
+		</combo_item>
+		<combo_item name="Commerce__Failure_to_deliver_product_or_service">
+			商取引&gt;製品またはサービスの提供が行われない
+		</combo_item>
+		<combo_item name="Disclosure__First_Life_information">
+			開示&gt;1st Lifeの情報
+		</combo_item>
+		<combo_item name="Disclosure__Remotely_monitoring chat">
+			開示&gt;離れたところからチャットをモニターしている
+		</combo_item>
+		<combo_item name="Disclosure__Second_Life_information_chat_IMs">
+			開示&gt;Second Lifeの情報/チャット/IM
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
+			平穏を乱す行為&gt;地域リソースの使用が不公平
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
+			平穏を乱す行為&gt;スクリプト・オブジェクトの乱用
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Object_littering">
+			平穏を乱す行為&gt;オブジェクトの捨て置き
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Repetitive_spam">
+			平穏を乱す行為&gt;繰り返しスパム
+		</combo_item>
+		<combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
+			平穏を乱す行為&gt;不要な広告スパム
+		</combo_item>
+		<combo_item name="Fraud__L$">
+			詐欺&gt; L$
+		</combo_item>
+		<combo_item name="Fraud__Land">
+			詐欺&gt;土地
+		</combo_item>
+		<combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
+			詐欺&gt;マルチ商法またはチェーン・メール
+		</combo_item>
+		<combo_item name="Fraud__US$">
+			詐欺&gt; US$
+		</combo_item>
+		<combo_item name="Harassment__Advert_farms___visual_spam">
+			嫌がらせ&gt;広告委託/視覚的なスパム
+		</combo_item>
+		<combo_item name="Harassment__Defaming_individuals_or_groups">
+			嫌がらせ&gt;個人またはグループの中傷
+		</combo_item>
+		<combo_item name="Harassment__Impeding_movement">
+			嫌がらせ&gt;移動の妨害
+		</combo_item>
+		<combo_item name="Harassment__Sexual_harassment">
+			嫌がらせ&gt;性的な嫌がらせ
+		</combo_item>
+		<combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
+			嫌がらせ&gt;利用規約(ToS)に違反する行為を行うよう他者を勧誘/扇動
+		</combo_item>
+		<combo_item name="Harassment__Verbal_abuse">
+			嫌がらせ&gt;暴言
+		</combo_item>
+		<combo_item name="Indecency__Broadly_offensive_content_or_conduct">
+			わいせつ&gt;著しく不快であると見なされるコンテンツまたは行為
+		</combo_item>
+		<combo_item name="Indecency__Broadly_visible_mature_content">
+			わいせつ&gt;あからさまに見せつけられる成人向けと見なされるコンテンツ
+		</combo_item>
+		<combo_item name="Indecency__Inappropriate_avatar_name">
+			わいせつ&gt;不適切なアバター名
+		</combo_item>
+		<combo_item name="Indecency__Mature_content_in_PG_region">
+			わいせつ&gt;PG地域で成人向けと見なされるコンテンツ
+		</combo_item>
 		<combo_item name="Intolerance">
-			非許容
+			不寛容
 		</combo_item>
 		<combo_item name="Harassment">
 			嫌がらせ
@@ -63,6 +156,24 @@
 		<combo_item name="Parcel">
 			区画
 		</combo_item>
+		<combo_item name="Land__Abuse_of_sandbox_resources">
+			土地&gt;サンドボックス・リソースの乱用
+		</combo_item>
+		<combo_item name="Land__Encroachment__Objects_textures">
+			土地&gt;不法侵入&gt;オブジェクト/テクスチャー
+		</combo_item>
+		<combo_item name="Land__Encroachment__Particles">
+			土地&gt;不法侵入&gt;パーティクル
+		</combo_item>
+		<combo_item name="Land__Encroachment__Trees_plants">
+			土地&gt;不法侵入&gt;樹木/植物
+		</combo_item>
+		<combo_item name="Trademark_violation">
+			商標権の侵害
+		</combo_item>
+		<combo_item name="Wagering_gambling">
+			賭け/ギャンブル
+		</combo_item>
 		<combo_item name="Other">
 			その他
 		</combo_item>
@@ -72,6 +183,8 @@
 	</text>
 	<button label="住人を選択" label_selected="" name="select_abuser"
 	     tool_tip="嫌がらせをした人の名前をリストから選択してください。" />
+	<check_box label="嫌がらせをした人の名前が不明" name="omit_abuser_name"
+	     tool_tip="嫌がらせをした人の名前を提供できないかについて、これを確認" />
 	<text name="abuser_name_title2">
 		嫌がらせの起きた場所:
 	</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index 694ea4e5069ff0b7f8f47eca196755cba54491ea..57cd2d47c629c5cd8bb00399e6ab88571990b831 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -1,23 +1,26 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="Snapshot" title="プレビュー">
 	<text name="type_label">
-		何をしたいですか?
+		スナップショットの送り先
 	</text>
 	<radio_group label="スナップショット・タイプ" name="snapshot_type_radio">
 		<radio_item name="postcard">
-			ポストカード送信
+			電子メールで送信
 		</radio_item>
 		<radio_item name="texture">
-			アップロード
+			持ち物に保存(L$10)
 		</radio_item>
 		<radio_item name="local">
-			ハード・ドライブに保存
+			ハードディスクに保存
 		</radio_item>
 	</radio_group>
 	<button label="全表示 &gt;&gt;" name="more_btn" tool_tip="高度なオプション" />
 	<button label="&lt;&lt; 簡易" name="less_btn" tool_tip="高度なオプション" />
 	<text name="type_label2">
-		どんな大きさの画像が必要ですか?
+		サイズ
+	</text>
+	<text name="format_label">
+		フォーマット
 	</text>
 	<combo_box label="解像度" name="postcard_size_combo">
 		<combo_item name="640x480">
@@ -79,6 +82,17 @@
 			カスタム
 		</combo_item>
 	</combo_box>
+	<combo_box label="フォーマット" name="local_format_combo">
+		<combo_item name="PNG">
+			PNG
+		</combo_item>
+		<combo_item name="JPEG">
+			JPEG
+		</combo_item>
+		<combo_item name="BMP">
+			BMP
+		</combo_item>
+	</combo_box>
 	<spinner label="å¹…" name="snapshot_width" />
 	<spinner label="高さ" name="snapshot_height" />
 	<slider label="画質" name="image_quality_slider" />
@@ -105,10 +119,10 @@
 	<check_box label="比率の制限" name="keep_aspect_check" />
 	<check_box label="フレームをフリーズ(全画面)" name="freeze_frame_check" />
 	<button label="スナップショットを更新" name="new_snapshot_btn" />
-	<check_box label="自動スナップショット" name="auto_snapshot_check" />
-	<button label="アップロードL$10" name="upload_btn" />
+	<check_box label="自動更新" name="auto_snapshot_check" />
+	<button label="保存(L$10)" name="upload_btn" />
 	<button label="送信" name="send_btn" />
-	<button label="保存" name="save_btn" />
+	<button label="保存" name="save_btn" tool_tip="画像をファイルに保存" />
 	<button label="キャンセル" name="discard_btn" />
 	<text name="unknown">
 		未知
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index 3ec14a7cd0c09e67ccd52b51bef7f3f5396e9058..e755b7c267d51423074ff2e1c7fdfbadd774cf8f 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -89,6 +89,9 @@
 			大
 		</combo_item>
 	</combo_box>
+	<text name="Strength:">
+		強度:
+	</text>
 	<button label="選択対象に適用" label_selected="選択対象に適用"
 	     name="button apply to selection" tool_tip="選択した土地を修正" />
 	<check_box label="オーナーを表示" left="140" name="checkbox show owners" />
@@ -153,6 +156,9 @@
 			<text name="Price:  L$">
 				料金:L$
 			</text>
+			<text name="Cost">
+				価格:  L$
+			</text>
 			<radio_group left="30" name="sale type">
 				<radio_item name="Original">
 					オリジナル
@@ -229,6 +235,21 @@
 			<text name="text modify warning">
 				権限を設定するには、オブジェクト全体を選択する必要があります。
 			</text>
+			<string name="Cost Default">
+				価格:           L$
+			</string>
+			<string name="Cost Total">
+				合計価格:  L$
+			</string>
+			<string name="Cost Per Unit">
+				単価:     L$
+			</string>
+			<string name="Cost Mixed">
+				混合価格
+			</string>
+			<string name="Sale Mixed">
+				混合販売
+			</string>
 		</panel>
 		<panel label="オブジェクト" name="Object">
 			<text name="select_single">
@@ -385,6 +406,10 @@
 			</text>
 			<texture_picker label="変形テクスチャー" name="sculpt texture control"
 			     tool_tip="クリックして写真を選択してください。" />
+			<check_box label="ミラー" name="sculpt mirror control"
+			     tool_tip="スカルプトされたプリムをX軸上で反転" />
+			<check_box label="裏返し" name="sculpt invert control"
+			     tool_tip="スカルプトされたプリムのノーマルを逆転させ、裏返しに表示" />
 			<text name="label sculpt type">
 				縫い目のタイプ
 			</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
index 879e2d8f64ba4c897d9ae32d3110fa9342139e5a..819a71593271c7c26f615b048098b9f27d519378 100644
--- a/indra/newview/skins/default/xui/ja/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
@@ -8,6 +8,7 @@
 		<column label="名前" name="name" />
 		<column label="所有者" name="owner" />
 		<column label="ロケーション" name="location" />
+		<column label="時間" name="time" />
 	</scroll_list>
 	<text name="id_text">
 		物体ID:
diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml
index ee01a2b2d26931ffa2f27ab6053d6a673e7aac8d..31e3a240459a4ce52b2107cd6de9ce1c54aa68a0 100644
--- a/indra/newview/skins/default/xui/ja/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tos.xml
@@ -13,6 +13,7 @@
 	<text name="tos_title">
 		利用規約
 	</text>
+	<check_box label="利用規約に同意します" name="agree_chk" />
 	<text name="tos_heading">
 		以下の利用規約を注意深くお読みください。 SecondLifeへログインするには、
 規約に同意しなければなりません。
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index 278e43ff2352b0a1e5a648a0a271eca90b67b893..ef68d38717b523012e072d92ff707c1b32bbe20c 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -146,6 +146,7 @@
 		<menu_item_call label="退席中に設定" name="Set Away" />
 		<menu_item_call label="ビジーに設定" name="Set Busy" />
 		<menu_item_call label="アニメーションをすべて停止" name="Stop All Animations" />
+		<menu_item_call label="キーを解除" name="Release Keys" />
 		<menu_item_separator label="-----------" name="separator4" />
 		<menu_item_call label="口座履歴..." name="Account History..." />
 		<menu_item_call label="自分の口座の管理..." name="Manage My Account..." />
@@ -216,7 +217,10 @@
 		<menu_item_call label="スクリプト警告/エラー・ウィンドウを表示"
 		     name="Show Script Warning/Error Window" />
 		<menu_item_call label="選択したスクリプトを再コンパイル"
-		     name="Recompile Scripts in Selection" />
+		     name="Recompile Scripts in Selection">
+			<menu_item_call label="モノ" name="Mono" />
+			<menu_item_call label="LSL" name="LSL" />
+		</menu_item_call>
 		<menu_item_call label="選択したスクリプトをリセット"
 		     name="Reset Scripts in Selection" />
 		<menu_item_call label="選択したスクリプトを起動する"
diff --git a/indra/newview/skins/default/xui/ja/mime_types.xml b/indra/newview/skins/default/xui/ja/mime_types.xml
index 9bebc7cd8ff4222c06a60cfa99fab243b3a8fb02..3d5f43a8055350638b77c6cd02d00db089e01e0a 100644
--- a/indra/newview/skins/default/xui/ja/mime_types.xml
+++ b/indra/newview/skins/default/xui/ja/mime_types.xml
@@ -112,6 +112,11 @@
 			リッチ・テキスト (RTF)
 		</label>
 	</mimetype>
+	<mimetype name="application/smil">
+		<label name="application/smil_label">
+			同期マルチメディア統合言語(SMIL)
+		</label>
+	</mimetype>
 	<mimetype name="application/xhtml+xml">
 		<label name="application/xhtml+xml_label">
 			ウェブ・ページ (XHTML)
@@ -222,4 +227,4 @@
 			ムービー (AVI)
 		</label>
 	</mimetype>
-</mimetypes>
\ No newline at end of file
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index f908a1fc4700a9d92a67b38d482fc9d3449a7e06..c3b95f61b94fda03f0551a76fcb5ee4792e6b49d 100644
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -30,11 +30,14 @@
 	<button label="新規アカウント..." label_selected="新規アカウント..."
 	     name="new_account_btn" />
 	<button label="環境設定..." label_selected="環境設定..." name="preferences_btn" />
-	<button label="接続" label_selected="接続" name="connect_btn" />
+	<button label="Second Lifeに入る" label_selected="接続" name="connect_btn" />
 	<button label="終了" label_selected="終了" name="quit_btn" />
 	<text name="version_text">
 		1.23.4 (5)
 	</text>
+	<text name="create_new_account_text">
+		新しいアカウントを作成します。
+	</text>
 	<text name="channel_text">
 		[Viewer Channel Name]
 	</text>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index 12f009f4e5d49f41d897593834a2493d27f15415..d4f5a6bba43ef01eb054037fc345712b32f7092f 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -17,6 +17,8 @@
 	<text type="string" length="1" name="text_box2">
 		チャット・カラー:
 	</text>
+	<color_swatch label="è²´æ–¹" name="user" />
+	<color_swatch label="その他" name="agent" />
 	<color_swatch label="IM" name="im" />
 	<color_swatch label="システム" name="system" />
 	<color_swatch label="チャット" name="users" />
@@ -47,6 +49,8 @@
 	     name="arrow_keys_move_avatar_check" />
 	<check_box label="チャットにタイムスタンプを表示"
 	     name="show_timestamps_check" />
+	<check_box label="タイピング動作のアニメーションを再生"
+	     name="play_typing_animation" />
 	<text type="string" length="1" name="text_box7">
 		チャットの吹き出し:
 	</text>
@@ -57,5 +61,5 @@
 	</text>
 	<check_box label="スクリプト・エラーと警告をチャット同様に表示"
 	     name="script_errors_as_chat" />
-	<color_swatch label="色" name="script_error" />
+	<color_swatch label="エラー" name="script_error" />
 </panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index 213d1ed834665d3fd8f0105566a39c1b0e3bf98b..afa74afde5a85f70d614d8bbc4acd852436358f5 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -126,4 +126,6 @@
 			Español (スペイン語) – ベータ
 		</combo_item>
 	</combo_box>
+	<check_box label="言語をオブジェクトと共有" name="language_is_public"
+	     tool_tip="優先言語をインワールドのオブジェクトが認識する" />
 </panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
index 321c261aaa27ea59a26f1666afc2ba6d2b2e7c3a..5a3a33496eb0a85e1bada50631e3391014647211 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
@@ -16,12 +16,25 @@
 	     tool_tip="この地域の物理作用をすべて無効化" />
 	<button label="?" name="disable_physics_help" />
 	<button label="適用" name="apply_btn" />
-	<button label="アバターを選択..." name="choose_avatar_btn" />
+	<line_editor name="target_avatar_name">
+		(なし)
+	</line_editor>
+	<button label="選択..." name="choose_avatar_btn" />
 	<button
 	     label="人の土地のアバター・スクリプト・オブジェクトを返却"
 	     name="return_scripted_other_land_btn" />
 	<button label="アバターのスクリプト・オブジェクトをすべて返却"
 	     name="return_scripted_all_btn" />
+	<check_box label="スクリプトのあるオブジェクトのみを返却"
+	     name="return_scripts"
+	     tool_tip="スクリプトがあるオブジェクトのみを返却" />
+	<check_box label="他人の土地にあるオブジェクトのみを返却"
+	     name="return_other_land"
+	     tool_tip="他人に属する土地にあるオブジェクトのみを返却" />
+	<check_box label="この不動産の各地域のオブジェクトを返却"
+	     name="return_estate_wide"
+	     tool_tip="この不動産に含まれているすべての地域のオブジェクトを返却" />
+	<button label="返却" name="return_btn" />
 	<button label="上部コライダー取得" name="top_colliders_btn"
 	     tool_tip="衝突する可能性が最も高いオブジェクトのリスト" />
 	<button label="?" name="top_colliders_help" />
diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
index d2fd70ee5432d5b777876fcf5331df899ae8f1b3..26b3432e1f6da6b54400c6e2e9a85ee09f3274fe 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
@@ -24,6 +24,12 @@
 	     tool_tip="年齢確認を済ませていない住人を排除する詳細については、support.secondlife.comを参照してください。" />
 	<check_box label="ボイスチャットを許可" name="voice_chat_check" />
 	<button label="?" name="voice_chat_help" />
+	<text name="abuse_email_text">
+		嫌がらせに関するメール先:
+	</text>
+	<string name="email_unsupported">
+		サポートされていない機能
+	</string>
 	<button label="?" name="abuse_email_address_help" />
 	<text name="estate_manager_label">
 		不動産マネージャー:
diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml
index c0c98b3159596862cb434097e387f25d0c373489..2ad66072b03652eac602b4dec04e1487513d4a52 100644
--- a/indra/newview/skins/default/xui/ja/role_actions.xml
+++ b/indra/newview/skins/default/xui/ja/role_actions.xml
@@ -5,13 +5,13 @@
 	     name="Membership">
 		<action description="このグループに人を招待"
 		     longdescription="グループに人を招待するには、[メンバーと役割]タブ>[メンバー]サブタブの[新しい人を招待...]ボタンを使います。"
-		     name="member invite"  value="1" />
+		     name="member invite" value="1" />
 		<action description="メンバーをこのグループから追放"
 		     longdescription="メンバーをこのグループから追放するには、[メンバーと役割]タブ &gt; [役割]サブタブの[グループから追放]を使います。 オーナーは、他のオーナー以外の任意のメンバーを追放できます。 オーナーでないユーザーがグループからメンバーを追放できるのは、そのメンバーが「全員」の役割にのみ所属しており、他の役割に所属していない場合だけです。 役割からメンバーを除外するには、「役割からメンバーを除外」能力を有している必要があります。"
-		     name="member eject"  value="2" />
+		     name="member eject" value="2" />
 		<action description="[会員募集]に切り替え、[入会費]を変更。"
 		     longdescription="招待状なしに新メンバーが加入できるように[会員募集]に切り替え、[一般]タブの[グループ環境設定]セクションから[入会費]を変更します。"
-		     name="member options"  value="3" />
+		     name="member options" value="3" />
 	</action_set>
 	<action_set
 	     description="これらの能力には、グループ内の役割を追加、削除、変更し、役割にメンバーを追加、削除し、さらに役割へ能力を割り当てる権限が含まれます。"
@@ -181,4 +181,25 @@
 		     longdescription="この能力を持つ役割のメンバーは、グループ情報>提案タブで提案に投票することができます。"
 		     name="proposal vote" value="45" />
 	</action_set>
+	<action_set
+	     description="
+これらのアビリティには、グループ・チャット・セッションやグループ・ボイス・チャットへのアクセスの許可や制限の権限が含まれます。
+"
+	     name="Chat">
+		<action description="グループ・チャットに参加する"
+		     longdescription="
+このアビリティを持つ役割のメンバーは、グループ・チャット・セッションにテキストおよびボイスで参加できます。
+"
+		     name="join group chat" />
+		<action description="グループ・ボイス・チャットに参加する"
+		     longdescription="
+このアビリティを持つ役割のメンバーは、グループ・ボイス・チャット・セッションに参加できます。  注: ボイス・チャット・セッションにアクセスするには、グループ・チャットに参加するアビリティが必要です。
+"
+		     name="join voice chat" />
+		<action description="グループ・チャットを管理する"
+		     longdescription="
+このアビリティを持つ役割のメンバーは、グループ・ボイス・チャット・セッションおよびグループ・テキスト・チャット・セッションへのアクセスや参加をコントロールすることができます。
+"
+		     name="moderate group chat" />
+	</action_set>
 </role_actions>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 700f6bd4401875461666fe860fa64168552d73f5..8ff99144c6e55cf9802949f71839d262057b9c8f 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -18,6 +18,9 @@
 	<string name="LoginInitializingBrowser">
 		埋め込みWebブラウザを初期化しています...
 	</string>
+	<string name="LoginInitializingMultimedia">
+		マルチメディアを初期化しています...
+	</string>
 	<string name="LoginVerifyingCache">
 		キャッシュ・ファイルを検証しています(所要時間は60~90秒)...
 	</string>
@@ -48,6 +51,9 @@
 	<string name="LoginDownloadingClothing">
 		服をダウンロードしています...
 	</string>
+	<string name="AgentLostConnection">
+		この地域には、問題が発生している可能性があります。  インターネット接続を確認してください。
+	</string>
 	<string name="TooltipPerson">
 		人
 	</string>
@@ -120,9 +126,15 @@
 	<string name="TooltipLand">
 		土地:
 	</string>
+	<string name="TooltipMustSingleDrop">
+		1つのアイテムのみをここにドラッグできます
+	</string>
 	<string name="RetrievingData">
 		検索中...
 	</string>
+	<string name="ReleaseNotes">
+		リリースノート
+	</string>
 	<string name="LoadingData">
 		ロード中...
 	</string>
@@ -387,4 +399,16 @@
 	<string name="anim_yes_head">
 		頷く
 	</string>
+	<string name="texture_loading">
+		ロード中...
+	</string>
+	<string name="worldmap_offline">
+		オフライン
+	</string>
+	<string name="whisper">
+		ささやく:
+	</string>
+	<string name="shout">
+		叫ぶ:
+	</string>
 </strings>
diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp
index 40dbc3bbd06ec6ac1050397dc753a2eafb2a62db..beec31a0083fd56311114bb92bb660ff5357e62b 100644
--- a/indra/win_crash_logger/llcrashloggerwindows.cpp
+++ b/indra/win_crash_logger/llcrashloggerwindows.cpp
@@ -29,6 +29,8 @@
 * $/LicenseInfo$
 */
 
+#include "linden_common.h"
+
 #include "stdafx.h"
 #include "resource.h"
 #include "llcrashloggerwindows.h"
diff --git a/indra/win_crash_logger/llcrashloggerwindows.h b/indra/win_crash_logger/llcrashloggerwindows.h
index 45c3b4772bd61bb01149effe56bdecced91d22b6..e3120138ce3e19e16a8c8dc91cc54feb2b818f48 100644
--- a/indra/win_crash_logger/llcrashloggerwindows.h
+++ b/indra/win_crash_logger/llcrashloggerwindows.h
@@ -32,7 +32,6 @@
 #ifndef LLCRASHLOGGERWINDOWS_H
 #define LLCRASHLOGGERWINDOWS_H
 
-#include "linden_common.h"
 #include "llcrashlogger.h"
 #include "windows.h"
 #include "llstring.h"
diff --git a/indra/win_crash_logger/win_crash_logger.cpp b/indra/win_crash_logger/win_crash_logger.cpp
index c6b4ff1c34d0ec1ba2727601608d8829a128c83c..8f339d666105820dedb3481e150025b54cef8a4f 100644
--- a/indra/win_crash_logger/win_crash_logger.cpp
+++ b/indra/win_crash_logger/win_crash_logger.cpp
@@ -33,6 +33,8 @@
 //
 
 // Must be first include, precompiled headers.
+#include "linden_common.h"
+
 #include "stdafx.h"
 
 #include <stdlib.h>