diff --git a/doc/contributions.txt b/doc/contributions.txt
index 42ee00f952790f193a29b993a37fc88899929563..fb3f7ea466cb200b4768e2dc241c4a25c9f1464f 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -149,6 +149,7 @@ Fremont Cunningham
 	VWR-1147
 Geneko Nemeth
 	CT-117
+	VWR-11069
 Gigs Taggart
 	SVC-493
 	VWR-6
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 1a7f7ac1a0da82d6b2bbbaa95072c2ed51097426..7d01ba059c8b8fd50dd4138912842513f2028af6 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -1651,9 +1651,13 @@ void LLPathParams::copyParams(const LLPathParams &params)
 	setSkew(params.getSkew());
 }
 
+S32 profile_delete_lock = 1 ; 
 LLProfile::~LLProfile()
 {
-	
+	if(profile_delete_lock)
+	{
+		llerrs << "LLProfile should not be deleted here!" << llendl ;
+	}
 }
 
 
@@ -1710,7 +1714,11 @@ LLVolume::~LLVolume()
 {
 	sNumMeshPoints -= mMesh.size();
 	delete mPathp;
+
+	profile_delete_lock = 0 ;
 	delete mProfilep;
+	profile_delete_lock = 1 ;
+
 	mPathp = NULL;
 	mProfilep = NULL;
 	mVolumeFaces.clear();
@@ -1755,6 +1763,20 @@ BOOL LLVolume::generate()
 		mLODScaleBias.setVec(0.6f, 0.6f, 0.6f);
 	}
 	
+	//********************************************************************
+	//debug info, to be removed
+	if((U32)(mPathp->mPath.size() * mProfilep->mProfile.size()) > (1u << 20))
+	{
+		llinfos << "sizeS: " << mPathp->mPath.size() << " sizeT: " << mProfilep->mProfile.size() << llendl ;
+		llinfos << "path_detail : " << path_detail << " split: " << split << " profile_detail: " << profile_detail << llendl ;
+		llinfos << mParams << llendl ;
+		llinfos << "more info to check if mProfilep is deleted or not." << llendl ;
+		llinfos << mProfilep->mNormals.size() << " : " << mProfilep->mFaces.size() << " : " << mProfilep->mEdgeNormals.size() << " : " << mProfilep->mEdgeCenters.size() << llendl ;
+
+		llerrs << "LLVolume corrupted!" << llendl ;
+	}
+	//********************************************************************
+
 	BOOL regenPath = mPathp->generate(mParams.getPathParams(), path_detail, split);
 	BOOL regenProf = mProfilep->generate(mParams.getProfileParams(), mPathp->isOpen(),profile_detail, split);
 
@@ -1763,16 +1785,20 @@ BOOL LLVolume::generate()
 		S32 sizeS = mPathp->mPath.size();
 		S32 sizeT = mProfilep->mProfile.size();
 
-		//debug info
+		//********************************************************************
+		//debug info, to be removed
 		if((U32)(sizeS * sizeT) > (1u << 20))
 		{
 			llinfos << "regenPath: " << (S32)regenPath << " regenProf: " << (S32)regenProf << llendl ;
 			llinfos << "sizeS: " << sizeS << " sizeT: " << sizeT << llendl ;
 			llinfos << "path_detail : " << path_detail << " split: " << split << " profile_detail: " << profile_detail << llendl ;
 			llinfos << mParams << llendl ;
+			llinfos << "more info to check if mProfilep is deleted or not." << llendl ;
+			llinfos << mProfilep->mNormals.size() << " : " << mProfilep->mFaces.size() << " : " << mProfilep->mEdgeNormals.size() << " : " << mProfilep->mEdgeCenters.size() << llendl ;
 
 			llerrs << "LLVolume corrupted!" << llendl ;
 		}
+		//********************************************************************
 
 		sNumMeshPoints -= mMesh.size();
 		mMesh.resize(sizeT * sizeS);
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h
index 38e8f806e29c02cc04c61a26b18b5b2180564040..ab30d78333d45371b6a5cb381e3400858f56cdbf 100644
--- a/indra/llmath/llvolume.h
+++ b/indra/llmath/llvolume.h
@@ -672,9 +672,7 @@ class LLProfile
 		  mConcave(FALSE),
 		  mDirty(TRUE),
 		  mTotalOut(0),
-		  mTotal(2),
-		  mMinX(0.f),
-		  mMaxX(0.f)
+		  mTotal(2)
 	{
 	}
 
@@ -722,9 +720,6 @@ class LLProfile
 
 	S32			  mTotalOut;
 	S32			  mTotal;
-
-	F32			  mMaxX;
-	F32			  mMinX;
 };
 
 //-------------------------------------------------------------------
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 74b2d292e9cc3949f6e225d8859636adeff66769..3e1c160198fa834d6b5af3f3ea677706cc9b25a4 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -62,8 +62,56 @@ S32 LLImageGL::sCount					= 0;
 BOOL LLImageGL::sGlobalUseAnisotropic	= FALSE;
 F32 LLImageGL::sLastFrameTime			= 0.f;
 
+S32 LLImageGL::sMaxTextureSize          = 0 ;
+
 std::set<LLImageGL*> LLImageGL::sImageList;
 
+//**************************************************************************************
+//below are functions for debug use
+//do not delete them even though they are not currently being used.
+void check_all_images()
+{
+	for (std::set<LLImageGL*>::iterator iter = LLImageGL::sImageList.begin();
+		 iter != LLImageGL::sImageList.end(); iter++)
+	{
+		LLImageGL* glimage = *iter;
+		if (glimage->getTexName() && glimage->isGLTextureCreated())
+		{
+			gGL.getTexUnit(0)->bind(glimage) ;
+			glimage->checkTexSize() ;
+			gGL.getTexUnit(0)->unbind(glimage->getTarget()) ;
+		}
+	}
+}
+
+void LLImageGL::checkTexSize() const
+{
+	if (gDebugGL && mTarget == GL_TEXTURE_2D)
+	{
+		GLint texname;
+		glGetIntegerv(GL_TEXTURE_BINDING_2D, &texname);
+		if (texname != mTexName)
+		{
+			llerrs << "Invalid texture bound!" << llendl;
+		}
+		stop_glerror() ;
+		LLGLint x = 0, y = 0 ;
+		glGetTexLevelParameteriv(mTarget, 0, GL_TEXTURE_WIDTH, (GLint*)&x);
+		glGetTexLevelParameteriv(mTarget, 0, GL_TEXTURE_HEIGHT, (GLint*)&y) ;
+		stop_glerror() ;
+		if(!x || !y)
+		{
+			return ;
+		}
+		if(x != (mWidth >> mCurrentDiscardLevel) || y != (mHeight >> mCurrentDiscardLevel))
+		{
+			llerrs << "wrong texture size and discard level!" << llendl ;
+		}
+	}
+}
+//end of debug functions
+//**************************************************************************************
+
 //----------------------------------------------------------------------------
 
 //static
@@ -149,17 +197,22 @@ void LLImageGL::destroyGL(BOOL save_state)
 	{
 		gGL.getTexUnit(stage)->unbind(LLTexUnit::TT_TEXTURE);
 	}
+	
 	for (std::set<LLImageGL*>::iterator iter = sImageList.begin();
 		 iter != sImageList.end(); iter++)
 	{
 		LLImageGL* glimage = *iter;
-		if (glimage->mTexName && glimage->mComponents)
+		if (glimage->mTexName)
 		{
-			if (save_state && glimage->isInitialized())
+			if (save_state && glimage->isGLTextureCreated() && glimage->mComponents)
 			{
 				glimage->mSaveData = new LLImageRaw;
-				glimage->readBackRaw(glimage->mCurrentDiscardLevel, glimage->mSaveData, false);
+				if(!glimage->readBackRaw(glimage->mCurrentDiscardLevel, glimage->mSaveData, false))
+				{
+					glimage->mSaveData = NULL ;
+				}
 			}
+
 			glimage->destroyGLTexture();
 			stop_glerror();
 		}
@@ -173,9 +226,13 @@ void LLImageGL::restoreGL()
 		 iter != sImageList.end(); iter++)
 	{
 		LLImageGL* glimage = *iter;
-		if (glimage->mSaveData.notNull() && glimage->mSaveData->getComponents())
+		if(glimage->getTexName())
+		{
+			llerrs << "tex name is not 0." << llendl ;
+		}
+		if (glimage->mSaveData.notNull())
 		{
-			if (glimage->getComponents())
+			if (glimage->getComponents() && glimage->mSaveData->getComponents())
 			{
 				glimage->createGLTexture(glimage->mCurrentDiscardLevel, glimage->mSaveData);
 				stop_glerror();
@@ -283,7 +340,7 @@ void LLImageGL::init(BOOL usemipmaps)
 	mFormatSwapBytes = FALSE;
 	mHasExplicitFormat = FALSE;
 
-	mInitialized = true;
+	mGLTextureCreated = FALSE ;
 }
 
 void LLImageGL::cleanup()
@@ -322,6 +379,16 @@ void LLImageGL::setSize(S32 width, S32 height, S32 ncomponents)
 {
 	if (width != mWidth || height != mHeight || ncomponents != mComponents)
 	{
+		if(width > 1024 || height > 1024)
+		{
+			llwarns << "texture size is big: width: " << width << " height: " << height << llendl ;
+			if(!sMaxTextureSize)
+			{
+				glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*)&sMaxTextureSize) ;
+			}
+			llwarns << "max texture size is: " << sMaxTextureSize << llendl ;
+		}
+
 		// Check if dimensions are a power of two!
 		if (!checkSize(width,height))
 		{
@@ -645,7 +712,7 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips)
 		mHasMipMaps = FALSE;
 	}
 	stop_glerror();
-	mInitialized = true;
+	mGLTextureCreated = true;
 }
 
 BOOL LLImageGL::setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height)
@@ -735,9 +802,8 @@ BOOL LLImageGL::setSubImage(const U8* datap, S32 data_width, S32 data_height, S3
 
 		glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
 		stop_glerror();
-		mInitialized = true;
+		mGLTextureCreated = true;
 	}
-	
 	return TRUE;
 }
 
@@ -752,7 +818,7 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
 	if (gGL.getTexUnit(0)->bind(this, true))
 	{
 		glCopyTexSubImage2D(GL_TEXTURE_2D, 0, fb_x, fb_y, x_pos, y_pos, width, height);
-		mInitialized = true;
+		mGLTextureCreated = true;
 		stop_glerror();
 		return TRUE;
 	}
@@ -762,6 +828,36 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
 	}
 }
 
+//create an empty GL texture: just create a texture name
+//the texture is assiciate with some image by calling glTexImage outside LLImageGL
+BOOL LLImageGL::createGLTexture()
+{
+	if (gGLManager.mIsDisabled)
+	{
+		llwarns << "Trying to create a texture while GL is disabled!" << llendl;
+		return FALSE;
+	}
+	
+	mGLTextureCreated = false ; //do not save this texture when gl is destroyed.
+
+	llassert(gGLManager.mInited);
+	stop_glerror();
+
+	if(mTexName)
+	{
+		glDeleteTextures(1, (reinterpret_cast<GLuint*>(&mTexName))) ;
+	}
+	
+	glGenTextures(1, (GLuint*)&mTexName);
+	stop_glerror();
+	if (!mTexName)
+	{
+		llerrs << "LLImageGL::createGLTexture failed to make an empty texture" << llendl;
+	}
+
+	return TRUE ;
+}
+
 BOOL LLImageGL::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename/*=0*/)
 {
 	if (gGLManager.mIsDisabled)
@@ -769,6 +865,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S
 		llwarns << "Trying to create a texture while GL is disabled!" << llendl;
 		return FALSE;
 	}
+	mGLTextureCreated = false ;
 	llassert(gGLManager.mInited);
 	stop_glerror();
 
@@ -874,7 +971,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
 #endif
 	}
 
-	mCurrentDiscardLevel = discard_level;
+	mCurrentDiscardLevel = discard_level;	
 
 	setImage(data_in, data_hasmips);
 
@@ -975,7 +1072,7 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
 		discard_level = mCurrentDiscardLevel;
 	}
 	
-	if (mTexName == 0 || discard_level < mCurrentDiscardLevel)
+	if (mTexName == 0 || discard_level < mCurrentDiscardLevel || discard_level > mMaxDiscardLevel )
 	{
 		return FALSE;
 	}
@@ -986,18 +1083,8 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
 	gGL.getTexUnit(0)->unbind(mBindTarget);
 	llverify(gGL.getTexUnit(0)->bind(this));	
 
-	if (gDebugGL)
-	{
-		if (mTarget == GL_TEXTURE_2D)
-		{
-			GLint texname;
-			glGetIntegerv(GL_TEXTURE_BINDING_2D, &texname);
-			if (texname != mTexName)
-			{
-				llerrs << "Invalid texture bound!" << llendl;
-			}
-		}
-	}
+	//debug code, leave it there commented.
+	//checkTexSize() ;
 
 	LLGLint glwidth = 0;
 	glGetTexLevelParameteriv(mTarget, gl_discard, GL_TEXTURE_WIDTH, (GLint*)&glwidth);
@@ -1006,7 +1093,7 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
 		// No mip data smaller than current discard level
 		return FALSE;
 	}
-
+	
 	S32 width = getWidth(discard_level);
 	S32 height = getHeight(discard_level);
 	S32 ncomponents = getComponents();
@@ -1014,6 +1101,13 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
 	{
 		return FALSE;
 	}
+	if(width < glwidth)
+	{
+		llwarns << "texture size is smaller than it should be." << llendl ;
+		llwarns << "width: " << width << " glwidth: " << glwidth << " mWidth: " << mWidth << 
+			" mCurrentDiscardLevel: " << (S32)mCurrentDiscardLevel << " discard_level: " << (S32)discard_level << llendl ;
+		return FALSE ;
+	}
 
 	if (width <= 0 || width > 2048 || height <= 0 || height > 2048 || ncomponents < 1 || ncomponents > 4)
 	{
@@ -1099,7 +1193,7 @@ void LLImageGL::destroyGLTexture()
 
 		glDeleteTextures(1, (GLuint*)&mTexName);
 		mTexName = 0;
-
+		mGLTextureCreated = FALSE ;
 		stop_glerror();
 	}
 }
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index b3aa8f09849cddd533b9ad06cd3dc1b22db11ccf..01159ed744714cf288f840d5a88cd70defefcb28 100644
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -91,6 +91,7 @@ class LLImageGL : public LLRefCount
 
 	void setSize(S32 width, S32 height, S32 ncomponents);
 
+	BOOL createGLTexture() ;
 	BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0);
 	BOOL createGLTexture(S32 discard_level, const U8* data, BOOL data_hasmips = FALSE, S32 usename = 0);
 	void setImage(const LLImageRaw* imageraw);
@@ -114,6 +115,8 @@ class LLImageGL : public LLRefCount
 	S32	 getDiscardLevel() const		{ return mCurrentDiscardLevel; }
 	S32	 getMaxDiscardLevel() const		{ return mMaxDiscardLevel; }
 
+	S32  getCurrentWidth() const { return mWidth ;}
+	S32  getCurrentHeight() const { return mHeight ;}
 	S32	 getWidth(S32 discard_level = -1) const;
 	S32	 getHeight(S32 discard_level = -1) const;
 	U8	 getComponents() const { return mComponents; }
@@ -135,8 +138,8 @@ class LLImageGL : public LLRefCount
 	void setTarget(const LLGLenum target, const LLTexUnit::eTextureType bind_target);
 
 	LLTexUnit::eTextureType getTarget(void) const { return mBindTarget; }
-	bool isInitialized(void) const { return mInitialized; }
-	void setInitialized (bool initialized) { mInitialized = initialized; }
+	bool isGLTextureCreated(void) const { return mGLTextureCreated ; }
+	void setGLTextureCreated (bool initialized) { mGLTextureCreated = initialized; }
 
 	BOOL getUseMipMaps() const { return mUseMipMaps; }
 	void setUseMipMaps(BOOL usemips) { mUseMipMaps = usemips; }
@@ -148,6 +151,8 @@ class LLImageGL : public LLRefCount
 	void updatePickMask(S32 width, S32 height, const U8* data_in);
 	BOOL getMask(const LLVector2 &tc);
 
+	void checkTexSize() const ;
+
 protected:
 	void init(BOOL usemipmaps);
 	virtual void cleanup(); // Clean up the LLImageGL so it can be reinitialized.  Be careful when using this in derived class destructors
@@ -165,21 +170,20 @@ class LLImageGL : public LLRefCount
 	S8 mHasExplicitFormat; // If false (default), GL format is f(mComponents)
 	S8 mAutoGenMips;
 	
+	bool     mGLTextureCreated ;
+	LLGLuint mTexName;
+	U16      mWidth;
+	U16      mHeight;	
+	S8       mCurrentDiscardLevel;
+
 protected:
 	LLGLenum mTarget;		// Normally GL_TEXTURE2D, sometimes something else (ex. cube maps)
 	LLTexUnit::eTextureType mBindTarget;	// Normally TT_TEXTURE, sometimes something else (ex. cube maps)
-	bool mInitialized;
-
-	LLGLuint mTexName;
-
+	
 	LLGLboolean mIsResident;
-
-	U16 mWidth;
-	U16 mHeight;
 	
 	S8 mComponents;
-	S8 mMaxDiscardLevel;
-	S8 mCurrentDiscardLevel;
+	S8 mMaxDiscardLevel;	
 	S8 mDontDiscard;			// Keep full res version of this image (for UI, etc)
 
 	S8 mClampS;					// Need to save clamp state
@@ -210,6 +214,7 @@ class LLImageGL : public LLRefCount
 	static U32 sUniqueCount;				// Tracks number of unique texture binds for current frame
 	static BOOL sGlobalUseAnisotropic;
 
+	static S32 sMaxTextureSize ;
 #if DEBUG_MISS
 	BOOL mMissed; // Missed on last bind?
 	BOOL getMissed() const { return mMissed; };
diff --git a/indra/llrender/llpostprocess.cpp b/indra/llrender/llpostprocess.cpp
index 6aff279a21981a3b068d22289bc28f936d33a6f2..940abb54d441473b4aa73983e2b9bd05ed77f83f 100644
--- a/indra/llrender/llpostprocess.cpp
+++ b/indra/llrender/llpostprocess.cpp
@@ -52,12 +52,14 @@ static const float LUMINANCE_B = 0.114f;
 static const char * const XML_FILENAME = "postprocesseffects.xml";
 
 LLPostProcess::LLPostProcess(void) : 
-					sceneRenderTexture(0), noiseTexture(0),
-					tempBloomTexture(0),
 					initialized(false),  
 					mAllEffects(LLSD::emptyMap()),
 					screenW(1), screenH(1)
 {
+	mSceneRenderTexture = NULL ; 
+	mNoiseTexture = NULL ;
+	mTempBloomTexture = NULL ;
+					
 	/*  Do nothing.  Needs to be updated to use our current shader system, and to work with the move into llrender.
 	std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", XML_FILENAME));
 	LL_DEBUGS2("AppInit", "Shaders") << "Loading PostProcess Effects settings from " << pathName << LL_ENDL;
@@ -111,9 +113,7 @@ LLPostProcess::LLPostProcess(void) :
 
 LLPostProcess::~LLPostProcess(void)
 {
-	glDeleteTextures(1, &sceneRenderTexture);
-	glDeleteTextures(1, &noiseTexture);
-	glDeleteTextures(1, &tempBloomTexture);
+	invalidate() ;
 }
 
 // static
@@ -158,6 +158,13 @@ void LLPostProcess::saveEffect(std::string const & effectName)
 	formatter->format(mAllEffects, effectsXML);
 	*/
 }
+void LLPostProcess::invalidate()
+{
+	mSceneRenderTexture = NULL ;
+	mNoiseTexture = NULL ;
+	mTempBloomTexture = NULL ;
+	initialized = FALSE ;
+}
 
 void LLPostProcess::apply(unsigned int width, unsigned int height)
 {
@@ -173,7 +180,7 @@ void LLPostProcess::initialize(unsigned int width, unsigned int height)
 {
 	screenW = width;
 	screenH = height;
-	createTexture(sceneRenderTexture, screenW, screenH);
+	createTexture(mSceneRenderTexture, screenW, screenH);
 	initialized = true;
 
 	checkError();
@@ -199,16 +206,20 @@ void LLPostProcess::applyShaders(void)
 	}	
 	if (tweaks.useNightVisionShader()){
 		/// If any of the above shaders have been called update the frame buffer;
-		if (tweaks.useColorFilter()){
-			copyFrameBuffer(sceneRenderTexture, screenW, screenH);
+		if (tweaks.useColorFilter())
+		{
+			GLuint tex = mSceneRenderTexture->getTexName() ;
+			copyFrameBuffer(tex, screenW, screenH);
 		}
 		applyNightVisionShader();
 		checkError();
 	}
 	if (tweaks.useBloomShader()){
 		/// If any of the above shaders have been called update the frame buffer;
-		if (tweaks.useColorFilter().asBoolean() || tweaks.useNightVisionShader().asBoolean()){
-			copyFrameBuffer(sceneRenderTexture, screenW, screenH);
+		if (tweaks.useColorFilter().asBoolean() || tweaks.useNightVisionShader().asBoolean())
+		{
+			GLuint tex = mSceneRenderTexture->getTexName() ;
+			copyFrameBuffer(tex, screenW, screenH);
 		}
 		applyBloomShader();
 		checkError();
@@ -306,7 +317,7 @@ void LLPostProcess::createNightVisionShader(void)
 	nightVisionUniforms["noiseStrength"] = 0;
 	nightVisionUniforms["lumWeights"] = 0;	
 
-	createNoiseTexture(noiseTexture);
+	createNoiseTexture(mNoiseTexture);
 }
 
 void LLPostProcess::applyBloomShader(void)
@@ -316,7 +327,7 @@ void LLPostProcess::applyBloomShader(void)
 
 void LLPostProcess::createBloomShader(void)
 {
-	createTexture(tempBloomTexture, unsigned(screenW * 0.5), unsigned(screenH * 0.5));
+	createTexture(mTempBloomTexture, unsigned(screenW * 0.5), unsigned(screenH * 0.5));
 
 	/// Create Bloom Extract Shader
 	bloomExtractUniforms["RenderTexture"] = 0;
@@ -348,7 +359,10 @@ void LLPostProcess::doEffects(void)
 	glPushClientAttrib(GL_ALL_ATTRIB_BITS);
 
 	/// Copy the screen buffer to the render texture
-	copyFrameBuffer(sceneRenderTexture, screenW, screenH);
+	{
+		GLuint tex = mSceneRenderTexture->getTexName() ;
+		copyFrameBuffer(tex, screenW, screenH);
+	}
 
 	/// Clear the frame buffer.
 	glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
@@ -479,43 +493,42 @@ void LLPostProcess::changeOrthogonal(unsigned int width, unsigned int height)
 	viewOrthogonal(width, height);
 }
 
-void LLPostProcess::createTexture(GLuint & texture, unsigned int width, unsigned int height)
+void LLPostProcess::createTexture(LLPointer<LLImageGL>& texture, unsigned int width, unsigned int height)
 {
-	if (texture != 0){
-		glDeleteTextures(1, &texture);
-	}
-
-	std::vector<GLubyte> data(width * height * 4, 0);
-
-	glGenTextures(1, &texture);
-	gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_RECT_TEXTURE, texture);
-	glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 4, width, height, 0,
-		GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
-	glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-}
+	std::vector<GLubyte> data(width * height * 4, 0) ;
 
-void LLPostProcess::createNoiseTexture(GLuint & texture)
-{
-	if (texture != 0){
-		glDeleteTextures(1, &texture);
+	texture = new LLImageGL(FALSE) ;	
+	if(texture->createGLTexture())
+	{
+		gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_RECT_TEXTURE, texture->getTexName());
+		glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 4, width, height, 0,
+			GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
+		glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+		glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+		glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+		glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
 	}
-	glGenTextures(1, &texture);
+}
 
+void LLPostProcess::createNoiseTexture(LLPointer<LLImageGL>& texture)
+{	
 	std::vector<GLubyte> buffer(NOISE_SIZE * NOISE_SIZE);
 	for (unsigned int i = 0; i < NOISE_SIZE; i++){
 		for (unsigned int k = 0; k < NOISE_SIZE; k++){
 			buffer[(i * NOISE_SIZE) + k] = (GLubyte)((double) rand() / ((double) RAND_MAX + 1.f) * 255.f);
 		}
 	}
-	gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, texture);
-	glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, NOISE_SIZE, NOISE_SIZE, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &buffer[0]);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+	texture = new LLImageGL(FALSE) ;
+	if(texture->createGLTexture())
+	{
+		gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, texture->getTexName());
+		glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, NOISE_SIZE, NOISE_SIZE, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &buffer[0]);
+		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+	}
 }
 
 bool LLPostProcess::checkError(void)
diff --git a/indra/llrender/llpostprocess.h b/indra/llrender/llpostprocess.h
index 8e278f8e100b08edcd0ab3a7dfced8b4ab508ba9..e5e34d920cf14f1197c9b53754f6d1bf457ef804 100644
--- a/indra/llrender/llpostprocess.h
+++ b/indra/llrender/llpostprocess.h
@@ -184,21 +184,24 @@ class LLPostProcess
 
 	};
 	
-	GLuint sceneRenderTexture;
-	GLuint noiseTexture;
-	GLuint tempBloomTexture;
 	bool initialized;
 	PostProcessTweaks tweaks;
 
 	// the map of all availible effects
 	LLSD mAllEffects;
 
+private:
+	LLPointer<LLImageGL> mSceneRenderTexture ;
+	LLPointer<LLImageGL> mNoiseTexture ;
+	LLPointer<LLImageGL> mTempBloomTexture ;
+
 public:
 	LLPostProcess(void);
 
 	~LLPostProcess(void);
 
 	void apply(unsigned int width, unsigned int height);
+	void invalidate() ;
 
 	/// Perform global initialization for this class.
 	static void initClass(void);
@@ -252,9 +255,9 @@ class LLPostProcess
 
 	/// OpenGL Helper Functions
 	void getShaderUniforms(glslUniforms & uniforms, GLhandleARB & prog);
-	void createTexture(GLuint & texture, unsigned int width, unsigned int height);
+	void createTexture(LLPointer<LLImageGL>& texture, unsigned int width, unsigned int height);
 	void copyFrameBuffer(GLuint & texture, unsigned int width, unsigned int height);
-	void createNoiseTexture(GLuint & texture);
+	void createNoiseTexture(LLPointer<LLImageGL>& texture);
 	bool checkError(void);
 	void checkShaderError(GLhandleARB shader);
 	void drawOrthoQuad(unsigned int width, unsigned int height, QuadType type);
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 433be9e2eb4b7d2d70e5c71614496cadf983e4af..c7068133d2398a5e98b90b2f70a9b51b6cd640fd 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -187,17 +187,11 @@ bool LLTexUnit::bind(const LLImageGL* texture, bool forceBind)
 		llwarns << "NULL LLTexUnit::bind texture" << llendl;
 		return false;
 	}
-
-	if (!texture->isInitialized() && !forceBind)
-	{
-		return texture->bindDefaultImage(mIndex);
-	}
-
+	
 	if (!texture->getTexName()) //if texture does not exist
 	{
 		return texture->bindDefaultImage(mIndex);
 	}
-
 	// Disabled caching of binding state.
 	activate();
 	enable(texture->getTarget());
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 28b591b7c29111433ff7bf91bf3810224ddd054a..ad980d67fcb0a67ff1841dac0fb52d4ea5a08aef 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -1034,30 +1034,47 @@ void LLMenuItemToggleGL::doIt( void )
 }
 
 
-LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch,
+LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLHandle<LLView> branch,
 										KEY key, MASK mask ) :
 	LLMenuItemGL( name, label, key, mask ),
 	mBranch( branch )
 {
-	mBranch->setVisible( FALSE );
-	mBranch->setParentMenuItem(this);
+	if(!dynamic_cast<LLMenuGL*>(branch.get()))
+	{
+		llerrs << "Non-menu handle passed as branch reference." << llendl;
+	}
+
+	if(getBranch())
+	{
+		getBranch()->setVisible( FALSE );
+		getBranch()->setParentMenuItem(this);
+	}
+}
+
+LLMenuItemBranchGL::~LLMenuItemBranchGL()
+{
+	LLView::deleteViewByHandle(mBranch);
 }
 
 // virtual
 LLView* LLMenuItemBranchGL::getChildView(const std::string& name, BOOL recurse, BOOL create_if_missing) const
 {
 	// richard: this is redundant with parent, remove
-	if (mBranch->getName() == name)
-	{
-		return mBranch;
-	}
-	// Always recurse on branches
-	LLView* child = mBranch->getChildView(name, recurse, FALSE);
-	if (!child)
+	if (getBranch())
 	{
-		child = LLView::getChildView(name, recurse, create_if_missing);
+		if(getBranch()->getName() == name)
+		{
+			return getBranch();
+		}
+
+		// Always recurse on branches
+		LLView* child = getBranch()->getChildView(name, recurse, FALSE);
+		if(child)
+		{
+			return child;
+		}
 	}
-	return child;
+	return LLView::getChildView(name, recurse, create_if_missing);;
 }
 
 // virtual
@@ -1073,15 +1090,19 @@ BOOL LLMenuItemBranchGL::handleMouseUp(S32 x, S32 y, MASK mask)
 
 BOOL LLMenuItemBranchGL::handleAcceleratorKey(KEY key, MASK mask)
 {
-	return mBranch->handleAcceleratorKey(key, mask);
+	if(getBranch())
+	{
+		return getBranch()->handleAcceleratorKey(key, mask);
+	}
+	return FALSE;
 }
 
 // virtual
 LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const
 {
-	if (mBranch)
+	if (getBranch())
 	{
-		return mBranch->getXML();
+		return getBranch()->getXML();
 	}
 
 	return LLMenuItemGL::getXML();
@@ -1092,14 +1113,17 @@ LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const
 // if not, it will be added to the list
 BOOL LLMenuItemBranchGL::addToAcceleratorList(std::list<LLKeyBinding*> *listp)
 {
-	U32 item_count = mBranch->getItemCount();
-	LLMenuItemGL *item;
-
-	while (item_count--)
+	if(getBranch())
 	{
-		if ((item = mBranch->getItem(item_count)))
+		U32 item_count = getBranch()->getItemCount();
+		LLMenuItemGL *item;
+
+		while (item_count--)
 		{
-			return item->addToAcceleratorList(listp);
+			if ((item = getBranch()->getItem(item_count)))
+			{
+				return item->addToAcceleratorList(listp);
+			}
 		}
 	}
 	return FALSE;
@@ -1123,18 +1147,18 @@ void LLMenuItemBranchGL::doIt( void )
 
 	// keyboard navigation automatically propagates highlight to sub-menu
 	// to facilitate fast menu control via jump keys
-	if (LLMenuGL::getKeyboardMode() && !mBranch->getHighlightedItem())
+	if (getBranch() && LLMenuGL::getKeyboardMode() && !getBranch()->getHighlightedItem())
 	{
-		mBranch->highlightNextItem(NULL);
+		getBranch()->highlightNextItem(NULL);
 	}
 }
 
 BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent)
 {
 	BOOL handled = FALSE;
-	if (called_from_parent)
+	if (called_from_parent && getBranch())
 	{
-		handled = mBranch->handleKey(key, mask, called_from_parent);
+		handled = getBranch()->handleKey(key, mask, called_from_parent);
 	}
 
 	if (!handled)
@@ -1148,9 +1172,9 @@ BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent)
 BOOL LLMenuItemBranchGL::handleUnicodeChar(llwchar uni_char, BOOL called_from_parent)
 {
 	BOOL handled = FALSE;
-	if (called_from_parent)
+	if (called_from_parent && getBranch())
 	{
-		handled = mBranch->handleUnicodeChar(uni_char, TRUE);
+		handled = getBranch()->handleUnicodeChar(uni_char, TRUE);
 	}
 
 	if (!handled)
@@ -1166,14 +1190,19 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight )
 {
 	if (highlight == getHighlight()) return;
 
-	BOOL auto_open = getEnabled() && (!mBranch->getVisible() || mBranch->getTornOff());
+	if(!getBranch())
+	{ 
+		return;
+	}
+
+	BOOL auto_open = getEnabled() && (!getBranch()->getVisible() || getBranch()->getTornOff());
 	// torn off menus don't open sub menus on hover unless they have focus
 	if (getMenu()->getTornOff() && !((LLFloater*)getMenu()->getParent())->hasFocus())
 	{
 		auto_open = FALSE;
 	}
 	// don't auto open torn off sub-menus (need to explicitly active menu item to give them focus)
-	if (mBranch->getTornOff())
+	if (getBranch()->getTornOff())
 	{
 		auto_open = FALSE;
 	}
@@ -1187,14 +1216,14 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight )
 	}
 	else
 	{
-		if (mBranch->getTornOff())
+		if (getBranch()->getTornOff())
 		{
-			((LLFloater*)mBranch->getParent())->setFocus(FALSE);
-			mBranch->clearHoverItem();
+			((LLFloater*)getBranch()->getParent())->setFocus(FALSE);
+			getBranch()->clearHoverItem();
 		}
 		else
 		{
-			mBranch->setVisible( FALSE );
+			getBranch()->setVisible( FALSE );
 		}
 	}
 }
@@ -1202,7 +1231,7 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight )
 void LLMenuItemBranchGL::draw()
 {
 	LLMenuItemGL::draw();
-	if (mBranch->getVisible() && !mBranch->getTornOff())
+	if (getBranch() && getBranch()->getVisible() && !getBranch()->getTornOff())
 	{
 		setHighlight(TRUE);
 	}
@@ -1210,33 +1239,33 @@ void LLMenuItemBranchGL::draw()
 
 void LLMenuItemBranchGL::updateBranchParent(LLView* parentp)
 {
-	if (mBranch->getParent() == NULL)
+	if (getBranch() && getBranch()->getParent() == NULL)
 	{
 		// make the branch menu a sibling of my parent menu
-		mBranch->updateParent(parentp);
+		getBranch()->updateParent(parentp);
 	}
 }
 
 void LLMenuItemBranchGL::onVisibilityChange( BOOL new_visibility )
 {
-	if (new_visibility == FALSE && !mBranch->getTornOff())
+	if (new_visibility == FALSE && getBranch() && !getBranch()->getTornOff())
 	{
-		mBranch->setVisible(FALSE);
+		getBranch()->setVisible(FALSE);
 	}
 	LLMenuItemGL::onVisibilityChange(new_visibility);
 }
 
 BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )
 {
-	if (getMenu()->getVisible() && mBranch->getVisible() && key == KEY_LEFT)
+	if (getMenu()->getVisible() && getBranch() && getBranch()->getVisible() && key == KEY_LEFT)
 	{
 		// switch to keyboard navigation mode
 		LLMenuGL::setKeyboardMode(TRUE);
 
-		BOOL handled = mBranch->clearHoverItem();
-		if (mBranch->getTornOff())
+		BOOL handled = getBranch()->clearHoverItem();
+		if (getBranch()->getTornOff())
 		{
-			((LLFloater*)mBranch->getParent())->setFocus(FALSE);
+			((LLFloater*)getBranch()->getParent())->setFocus(FALSE);
 		}
 		if (handled && getMenu()->getTornOff())
 		{
@@ -1247,12 +1276,12 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )
 
 	if (getHighlight() && 
 		getMenu()->isOpen() && 
-		key == KEY_RIGHT && !mBranch->getHighlightedItem())
+		key == KEY_RIGHT && getBranch() && !getBranch()->getHighlightedItem())
 	{
 		// switch to keyboard navigation mode
 		LLMenuGL::setKeyboardMode(TRUE);
 
-		LLMenuItemGL* itemp = mBranch->highlightNextItem(NULL);
+		LLMenuItemGL* itemp = getBranch()->highlightNextItem(NULL);
 		if (itemp)
 		{
 			return TRUE;
@@ -1264,37 +1293,39 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )
 
 void LLMenuItemBranchGL::openMenu()
 {
-	if (mBranch->getTornOff())
+	if(!getBranch()) return;
+
+	if (getBranch()->getTornOff())
 	{
-		gFloaterView->bringToFront((LLFloater*)mBranch->getParent());
+		gFloaterView->bringToFront((LLFloater*)getBranch()->getParent());
 		// this might not be necessary, as torn off branches don't get focus and hence no highligth
-		mBranch->highlightNextItem(NULL);
+		getBranch()->highlightNextItem(NULL);
 	}
-	else if( !mBranch->getVisible() )
+	else if( !getBranch()->getVisible() )
 	{
 		// get valid rectangle for menus
 		const LLRect menu_region_rect = LLMenuGL::sMenuContainer->getMenuRect();
 
-		mBranch->arrange();
+		getBranch()->arrange();
 
-		LLRect rect = mBranch->getRect();
+		LLRect rect = getBranch()->getRect();
 		// calculate root-view relative position for branch menu
 		S32 left = getRect().mRight;
 		S32 top = getRect().mTop - getRect().mBottom;
 
-		localPointToOtherView(left, top, &left, &top, mBranch->getParent());
+		localPointToOtherView(left, top, &left, &top, getBranch()->getParent());
 
 		rect.setLeftTopAndSize( left, top,
 								rect.getWidth(), rect.getHeight() );
 
-		if (mBranch->getCanTearOff())
+		if (getBranch()->getCanTearOff())
 		{
 			rect.translate(0, TEAROFF_SEPARATOR_HEIGHT_PIXELS);
 		}
-		mBranch->setRect( rect );
+		getBranch()->setRect( rect );
 		S32 x = 0;
 		S32 y = 0;
-		mBranch->localPointToOtherView( 0, 0, &x, &y, mBranch->getParent() ); 
+		getBranch()->localPointToOtherView( 0, 0, &x, &y, getBranch()->getParent() ); 
 		S32 delta_x = 0;
 		S32 delta_y = 0;
 		if( y < menu_region_rect.mBottom )
@@ -1308,9 +1339,9 @@ void LLMenuItemBranchGL::openMenu()
 			// move sub-menu over to left side
 			delta_x = llmax(-x, (-1 * (rect.getWidth() + getRect().getWidth())));
 		}
-		mBranch->translate( delta_x, delta_y );
-		mBranch->setVisible( TRUE );
-		mBranch->getParent()->sendChildToFront(mBranch);
+		getBranch()->translate( delta_x, delta_y );
+		getBranch()->setVisible( TRUE );
+		getBranch()->getParent()->sendChildToFront(getBranch());
 	}
 }
 
@@ -1327,7 +1358,7 @@ class LLMenuItemBranchDownGL : public LLMenuItemBranchGL
 protected:
 
 public:
-	LLMenuItemBranchDownGL( const std::string& name, const std::string& label, LLMenuGL* branch,
+	LLMenuItemBranchDownGL( const std::string& name, const std::string& label, LLHandle<LLView> branch,
 							KEY key = KEY_NONE, MASK mask = MASK_NONE );
 
 	virtual std::string getType() const	{ return "menu"; }
@@ -1360,7 +1391,7 @@ class LLMenuItemBranchDownGL : public LLMenuItemBranchGL
 
 LLMenuItemBranchDownGL::LLMenuItemBranchDownGL( const std::string& name,
 												const std::string& label,
-												LLMenuGL* branch, 
+												LLHandle<LLView> branch, 
 												KEY key, MASK mask ) :
 	LLMenuItemBranchGL( name, label, branch, key, mask )
 {
@@ -2258,7 +2289,7 @@ void LLMenuGL::createSpilloverBranch()
 		mSpilloverMenu->setBackgroundColor( mBackgroundColor );
 		mSpilloverMenu->setCanTearOff(FALSE);
 
-		mSpilloverBranch = new LLMenuItemBranchGL(std::string("More"), std::string("More"), mSpilloverMenu);
+		mSpilloverBranch = new LLMenuItemBranchGL(std::string("More"), std::string("More"), mSpilloverMenu->getHandle());
 		mSpilloverBranch->setFontStyle(LLFontGL::ITALIC);
 	}
 }
@@ -2278,9 +2309,6 @@ void LLMenuGL::cleanupSpilloverBranch()
 			mItems.erase(found_iter);
 		}
 
-		delete mSpilloverBranch;
-		mSpilloverBranch = NULL;
-
 		// pop off spillover items
 		while (mSpilloverMenu->getItemCount())
 		{
@@ -2291,6 +2319,12 @@ void LLMenuGL::cleanupSpilloverBranch()
 			mItems.push_back(itemp);
 			addChild(itemp);
 		}
+
+		// Delete the branch, and since the branch will delete the menu,
+		// set the menu* to null.
+		delete mSpilloverBranch;
+		mSpilloverBranch = NULL;
+		mSpilloverMenu = NULL;
 	}
 }
 
@@ -2463,7 +2497,7 @@ BOOL LLMenuGL::appendMenu( LLMenuGL* menu )
 	BOOL success = TRUE;
 
 	LLMenuItemBranchGL* branch = NULL;
-	branch = new LLMenuItemBranchGL( menu->getName(), menu->getLabel(), menu );
+	branch = new LLMenuItemBranchGL( menu->getName(), menu->getLabel(), menu->getHandle() );
 	branch->setJumpKey(menu->getJumpKey());
 	success &= append( branch );
 
@@ -4072,7 +4106,7 @@ BOOL LLMenuBarGL::appendMenu( LLMenuGL* menu )
 	BOOL success = TRUE;
 
 	LLMenuItemBranchGL* branch = NULL;
-	branch = new LLMenuItemBranchDownGL( menu->getName(), menu->getLabel(), menu );
+	branch = new LLMenuItemBranchDownGL( menu->getName(), menu->getLabel(), menu->getHandle());
 	success &= branch->addToAcceleratorList(&mAccelerators);
 	success &= append( branch );
 	branch->setJumpKey(branch->getJumpKey());
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index 30398fb8f8c6a57a392a74c752bfaa73aa63f8cc..a2ef968bcd8855f10957ae444089ee1d17b39215 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -90,6 +90,7 @@ class LLMenuItemGL : public LLView
 	static const LLColor4& getHighlightFGColor() { return sHighlightForeground; }
 
 	LLMenuItemGL( const std::string& name, const std::string& label, KEY key = KEY_NONE, MASK = MASK_NONE );
+	virtual ~LLMenuItemGL() {};
 
 	virtual void setValue(const LLSD& value) { setLabel(value.asString()); }
 
@@ -562,8 +563,11 @@ class LLMenuGL
 class LLMenuItemBranchGL : public LLMenuItemGL
 {
 public:
-	LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch,
+	LLMenuItemBranchGL( const std::string& name, const std::string& label, LLHandle<LLView> branch,
 						KEY key = KEY_NONE, MASK mask = MASK_NONE );
+
+	virtual ~LLMenuItemBranchGL();
+
 	virtual LLXMLNodePtr getXML(bool save_children = true) const;
 
 	virtual std::string getType() const { return "menu"; }
@@ -590,11 +594,11 @@ class LLMenuItemBranchGL : public LLMenuItemGL
 
 	virtual BOOL handleKeyHere(KEY key, MASK mask);
 
-	virtual BOOL isActive() const { return isOpen() && mBranch->getHighlightedItem(); }
+	virtual BOOL isActive() const { return isOpen() && getBranch()->getHighlightedItem(); }
 
-	virtual BOOL isOpen() const { return mBranch->isOpen(); }
+	virtual BOOL isOpen() const { return getBranch() && getBranch()->isOpen(); }
 
-	LLMenuGL *getBranch() const { return mBranch; }
+	LLMenuGL *getBranch() const { return (LLMenuGL*)(mBranch.get()); }
 
 	virtual void updateBranchParent( LLView* parentp );
 
@@ -603,14 +607,14 @@ class LLMenuItemBranchGL : public LLMenuItemGL
 
 	virtual void draw();
 
-	virtual void setEnabledSubMenus(BOOL enabled) { mBranch->setEnabledSubMenus(enabled); }
+	virtual void setEnabledSubMenus(BOOL enabled) { if(getBranch()) getBranch()->setEnabledSubMenus(enabled); }
 
 	virtual void openMenu();
 
 	virtual LLView* getChildView(const std::string& name, BOOL recurse = TRUE, BOOL create_if_missing = TRUE) const;
 
 private:
-	LLMenuGL* mBranch;
+	LLHandle<LLView> mBranch;
 }; // end class LLMenuItemBranchGL
 
 
diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp
index f3a00e07dc4419a5aad6b44d629688b5a449ec8b..16efa4fe2c7c89512f628f43374faaa2e6fd69fc 100644
--- a/indra/mac_crash_logger/llcrashloggermac.cpp
+++ b/indra/mac_crash_logger/llcrashloggermac.cpp
@@ -134,6 +134,8 @@ OSStatus dialogHandler(EventHandlerCallRef handler, EventRef event, void *userda
 					QuitAppModalLoopForWindow(gWindow);
 					result = noErr;
 				break;
+				default:
+					result = eventNotHandledErr;
 			}
 		}
 	}
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 0be8b53d41a4f69a39dfa300497fdbb0b7b04117..750771f6ce22ee21e36701afeaaee2e19e72a425 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1298,6 +1298,7 @@ if (FMOD)
         PROPERTIES
         BUILD_WITH_INSTALL_RPATH 1
         INSTALL_NAME_DIR "@executable_path/../Resources"
+        LINK_FLAGS "-unexported_symbols_list ../newview/fmod_hidden_symbols.exp"
         )
     endif (DARWIN)
     set(FMODWRAPPER_LIBRARY fmodwrapper)
diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi
index f4b7b5d143c9bada9b541ccefdf978c5bd9997f3..d17e860df933ffac36093d13c3bc217bf077a126 100644
Binary files a/indra/newview/installers/windows/lang_zh.nsi and b/indra/newview/installers/windows/lang_zh.nsi differ
diff --git a/indra/newview/installers/windows/language_menu.nsi b/indra/newview/installers/windows/language_menu.nsi
index 473f9e0784743088c2815f2ee429494ed097c5ab..988f452dea0cb8292d045ad590783d529012479f 100644
Binary files a/indra/newview/installers/windows/language_menu.nsi and b/indra/newview/installers/windows/language_menu.nsi differ
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 67aeef8b127b9609b1e0891daf32ef9531c8dd24..3cdcb35197947208fc310440a745b4c1edf87db0 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -58,6 +58,17 @@ namespace
 	// They are not used immediately by the app.
 	int gArgC;
 	char** gArgV;
+	
+	bool sCrashReporterIsRunning = false;
+	
+	OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
+	{
+		OSErr result = noErr;
+		
+		LLAppViewer::instance()->userQuit();
+		
+		return(result);
+	}
 }
 
 int main( int argc, char **argv ) 
@@ -259,8 +270,37 @@ void LLAppViewerMacOSX::handleSyncCrashTrace()
 	// do nothing
 }
 
+static OSStatus CarbonEventHandler(EventHandlerCallRef inHandlerCallRef, 
+								   EventRef inEvent, 
+								   void* inUserData)
+{
+    ProcessSerialNumber psn;
+	
+    GetEventParameter(inEvent, 
+					  kEventParamProcessID, 
+					  typeProcessSerialNumber, 
+					  NULL, 
+					  sizeof(psn), 
+					  NULL, 
+					  &psn);
+	
+    if( GetEventKind(inEvent) == kEventAppTerminated ) 
+	{
+		Boolean matching_psn = FALSE;	
+		OSErr os_result = SameProcess(&psn, (ProcessSerialNumber*)inUserData, &matching_psn);
+		if(os_result >= 0 && matching_psn)
+		{
+			sCrashReporterIsRunning = false;
+		}
+    }
+    return noErr;
+}
+
 void LLAppViewerMacOSX::handleCrashReporting(bool reportFreeze)
 {
+	// This used to use fork&exec, but is switched to LSOpenApplication to 
+	// Make sure the crash reporter launches in front of the SL window.
+	
 	std::string command_str;
 	//command_str = "open Second Life.app/Contents/Resources/mac-crash-logger.app";
 	command_str = "mac-crash-logger.app/Contents/MacOS/mac-crash-logger";
@@ -282,15 +322,69 @@ void LLAppViewerMacOSX::handleCrashReporting(bool reportFreeze)
 		{
 			// Make sure freeze reporting launches the crash logger synchronously, lest 
 			// Log files get changed by SL while the logger is running.
+		
+			// *NOTE:Mani A better way - make a copy of the data that the crash reporter will send
+			// and let SL go about its business. This way makes the mac work like windows and linux
+			// and is the smallest patch for the issue. 
+			sCrashReporterIsRunning = true;
+			ProcessSerialNumber o_psn;
+
+			static EventHandlerRef sCarbonEventsRef = NULL;
+			static const EventTypeSpec kEvents[] = 
+			{
+				{ kEventClassApplication, kEventAppTerminated }
+			};
+			
+			// Install the handler to detect crash logger termination
+			InstallEventHandler(GetApplicationEventTarget(), 
+								(EventHandlerUPP) CarbonEventHandler,
+								GetEventTypeCount(kEvents),
+								kEvents,
+								&o_psn,
+								&sCarbonEventsRef
+								);
+			
+			// Remove, temporarily the quit handler - which has *crash* behavior before 
+			// the mainloop gets running!
+			AERemoveEventHandler(kCoreEventClass, 
+								 kAEQuitApplication, 
+								 NewAEEventHandlerUPP(AEQuitHandler),
+								 false);
+
+			// Launch the crash reporter.
+			os_result = LSOpenApplication(&appParams, &o_psn);
+			
+			if(os_result >= 0)
+			{	
+				EventRecord evt;
+				while(sCrashReporterIsRunning)
+				{
+					while(WaitNextEvent(osMask, &evt, 0, NULL))
+					{
+						// null op!?!
+					}
+				}
+			}	
+
+			// Re-install the apps quit handler.
+			AEInstallEventHandler(kCoreEventClass, 
+								  kAEQuitApplication, 
+								  NewAEEventHandlerUPP(AEQuitHandler),
+								  0, 
+								  false);
+			
+			// Remove the crash reporter quit handler.
+			RemoveEventHandler(sCarbonEventsRef);
 		}
 		else
 		{
 			appParams.flags |= kLSLaunchAsync;
 			clear_signals();
+
+			ProcessSerialNumber o_psn;
+			os_result = LSOpenApplication(&appParams, &o_psn);
 		}
 		
-		ProcessSerialNumber o_psn;
-		os_result = LSOpenApplication(&appParams, &o_psn);
 	}
 
 	if(!reportFreeze)
@@ -368,15 +462,6 @@ OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
 	return(result);
 }
 
-OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
-{
-	OSErr result = noErr;
-	
-	LLAppViewer::instance()->userQuit();
-	
-	return(result);
-}
-
 OSStatus simpleDialogHandler(EventHandlerCallRef handler, EventRef event, void *userdata)
 {
 	OSStatus result = eventNotHandledErr;
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 6d6e4b061787aaf730716131c3db6da11924990a..b23819be27a9e32d6831d9293d116974cf5b3345 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -74,7 +74,6 @@ const U32 VERTEX_MASK_SHINY = LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_N
 const U32 VERTEX_MASK_BUMP = LLVertexBuffer::MAP_VERTEX |LLVertexBuffer::MAP_TEXCOORD | LLVertexBuffer::MAP_TEXCOORD2;
 
 U32 LLDrawPoolBump::sVertexMask = VERTEX_MASK_SHINY;
-static LLPointer<LLCubeMap> sCubeMap;
 
 static LLGLSLShader* shader = NULL;
 static S32 cube_channel = -1;
@@ -389,8 +388,6 @@ void LLDrawPoolBump::renderShiny(bool invisible)
 		return;
 	}
 
-	sCubeMap = NULL;
-
 	if( gSky.mVOSkyp->getCubeMap() )
 	{
 		LLGLEnable blend_enable(GL_BLEND);
@@ -514,8 +511,6 @@ void LLDrawPoolBump::renderFullbrightShiny()
 		return;
 	}
 
-	sCubeMap = NULL;
-
 	if( gSky.mVOSkyp->getCubeMap() )
 	{
 		LLGLEnable blend_enable(GL_BLEND);
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index b03306fa908876c9413e03ef9f2892db3dbb291d..6951f3a96a8b2081e612649cb41ab89955b0c6c2 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -113,7 +113,7 @@ void LLDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum prima
 // 	llinfos << "ALLOCATING " << (mWidth*mHeight*mComponents)/1024 << "K" << llendl;
 	mTexture->createGLTexture(0, raw_image);
 	mTexture->setClamp(mClamp, mClamp);
-	mTexture->setInitialized(false);
+	mTexture->setGLTextureCreated(false);
 }
 
 //-----------------------------------------------------------------------------
@@ -198,6 +198,7 @@ BOOL LLDynamicTexture::updateAllInstances()
 	}
 
 	BOOL result = FALSE;
+	BOOL ret = FALSE ;
 	for( S32 order = 0; order < ORDER_COUNT; order++ )
 	{
 		for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
@@ -212,9 +213,10 @@ BOOL LLDynamicTexture::updateAllInstances()
 				
 				gGL.color4f(1,1,1,1);
 				dynamicTexture->preRender();	// Must be called outside of startRender()
-
+				result = FALSE;
 				if (dynamicTexture->render())
 				{
+					ret = TRUE ;
 					result = TRUE;
 					sNumRenders++;
 				}
@@ -226,7 +228,19 @@ BOOL LLDynamicTexture::updateAllInstances()
 		}
 	}
 
-	return result;
+	return ret;
+}
+
+//virtual
+void LLDynamicTexture::restoreGLTexture() 
+{
+	generateGLTexture() ;
+}
+
+//virtual
+void LLDynamicTexture::destroyGLTexture() 
+{
+	releaseGLTexture() ;
 }
 
 //-----------------------------------------------------------------------------
@@ -235,6 +249,15 @@ BOOL LLDynamicTexture::updateAllInstances()
 //-----------------------------------------------------------------------------
 void LLDynamicTexture::destroyGL()
 {
+	for( S32 order = 0; order < ORDER_COUNT; order++ )
+	{
+		for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
+			 iter != LLDynamicTexture::sInstances[order].end(); ++iter)
+		{
+			LLDynamicTexture *dynamicTexture = *iter;
+			dynamicTexture->destroyGLTexture() ;
+		}
+	}
 }
 
 //-----------------------------------------------------------------------------
@@ -243,4 +266,18 @@ void LLDynamicTexture::destroyGL()
 //-----------------------------------------------------------------------------
 void LLDynamicTexture::restoreGL()
 {
+	if (gGLManager.mIsDisabled)
+	{
+		return ;
+	}			
+	
+	for( S32 order = 0; order < ORDER_COUNT; order++ )
+	{
+		for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
+			 iter != LLDynamicTexture::sInstances[order].end(); ++iter)
+		{
+			LLDynamicTexture *dynamicTexture = *iter;
+			dynamicTexture->restoreGLTexture() ;
+		}
+	}
 }
diff --git a/indra/newview/lldynamictexture.h b/indra/newview/lldynamictexture.h
index fbfabf49a452fd58f86556ba5afaef8127170a5a..5a20eaef9bb8955abd8991e5fee4f2e8c652d5d4 100644
--- a/indra/newview/lldynamictexture.h
+++ b/indra/newview/lldynamictexture.h
@@ -61,6 +61,9 @@ class LLDynamicTexture
 	virtual BOOL render();
 	virtual void postRender(BOOL success);
 
+	virtual void restoreGLTexture() ;
+	virtual void destroyGLTexture() ;
+
 	LLImageGL* getTexture(void) const { return mTexture; }
 
 	static BOOL	updateAllInstances();
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 283877751f8d465420d3a536694268f5cbda4468..67be553ae7cedf7336fcf003fef0eb46b7c522a3 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -76,7 +76,7 @@ LLFloaterImagePreview::LLFloaterImagePreview(const std::string& filename) :
 {
 	mLastMouseX = 0;
 	mLastMouseY = 0;
-	mGLName = 0;
+	mImagep = NULL ;
 	loadImage(mFilenameAndPath);
 }
 
@@ -139,10 +139,7 @@ LLFloaterImagePreview::~LLFloaterImagePreview()
 	delete mAvatarPreview;
 	delete mSculptedPreview;
 	
-	if (mGLName)
-	{
-		glDeleteTextures(1, &mGLName );
-	}
+	mImagep = NULL ;
 }
 
 //static 
@@ -225,28 +222,16 @@ void LLFloaterImagePreview::draw()
 			gl_rect_2d_checkerboard(mPreviewRect);
 			LLGLDisable gls_alpha(GL_ALPHA_TEST);
 
-			GLenum format_options[4] = { GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA };
-			GLenum format = format_options[mRawImagep->getComponents()-1];
-
-			GLenum internal_format_options[4] = { GL_LUMINANCE8, GL_LUMINANCE8_ALPHA8, GL_RGB8, GL_RGBA8 };
-			GLenum internal_format = internal_format_options[mRawImagep->getComponents()-1];
-		
-			if (mGLName)
+			if(mImagep.notNull())
 			{
-				gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mGLName);
+				gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
 			}
 			else
 			{
-				glGenTextures(1, &mGLName );
-				stop_glerror();
-
-				gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mGLName);
-				stop_glerror();
-
-				glTexImage2D(
-					GL_TEXTURE_2D, 0, internal_format, 
-					mRawImagep->getWidth(), mRawImagep->getHeight(),
-					0, format, GL_UNSIGNED_BYTE, mRawImagep->getData());
+				mImagep = new LLImageGL(mRawImagep, FALSE) ;
+				
+				gGL.getTexUnit(0)->unbind(mImagep->getTarget()) ;
+				gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
 				stop_glerror();
 
 				glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -255,8 +240,8 @@ void LLFloaterImagePreview::draw()
 				gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
 				if (mAvatarPreview)
 				{
-					mAvatarPreview->setTexture(mGLName);
-					mSculptedPreview->setTexture(mGLName);
+					mAvatarPreview->setTexture(mImagep->getTexName());
+					mSculptedPreview->setTexture(mImagep->getTexName());
 				}
 			}
 
diff --git a/indra/newview/llfloaterimagepreview.h b/indra/newview/llfloaterimagepreview.h
index c061a85d94b3179668b1c1f5b0959ab8762fe958..e639544f4853eacea0b1b85ec30b2dcef424b22d 100644
--- a/indra/newview/llfloaterimagepreview.h
+++ b/indra/newview/llfloaterimagepreview.h
@@ -130,7 +130,7 @@ class LLFloaterImagePreview : public LLFloaterNameDesc
 	S32				mLastMouseY;
 	LLRect			mPreviewRect;
 	LLRectf			mPreviewImageRect;
-	GLuint			mGLName;
+	LLPointer<LLImageGL> mImagep ;
 
 	static S32		sUploadAmount;
 };
diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp
index a6d57e98e3d1768a9ae0e01730c658f214471422..8c6b906ccdd4615bb2bb47d870f7740382e8d571 100644
--- a/indra/newview/llhudicon.cpp
+++ b/indra/newview/llhudicon.cpp
@@ -211,6 +211,80 @@ void LLHUDIcon::renderForSelect()
 	renderIcon(TRUE);
 }
 
+BOOL LLHUDIcon::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3* intersection)
+{
+	if (mHidden)
+		return FALSE;
+
+	if (mSourceObject.isNull() || mImagep.isNull())
+	{
+		markDead();
+		return FALSE;
+	}
+
+	LLVector3 obj_position = mSourceObject->getRenderPosition();
+
+	// put icon above object, and in front
+	// RN: don't use drawable radius, it's fricking HUGE
+	LLVector3 icon_relative_pos = (LLViewerCamera::getInstance()->getUpAxis() * ~mSourceObject->getRenderRotation());
+	icon_relative_pos.abs();
+
+	F32 distance_scale = llmin(mSourceObject->getScale().mV[VX] / icon_relative_pos.mV[VX], 
+		mSourceObject->getScale().mV[VY] / icon_relative_pos.mV[VY], 
+		mSourceObject->getScale().mV[VZ] / icon_relative_pos.mV[VZ]);
+	F32 up_distance = 0.5f * distance_scale;
+	LLVector3 icon_position = obj_position + (up_distance * LLViewerCamera::getInstance()->getUpAxis()) * 1.2f;
+
+	LLVector3 icon_to_cam = LLViewerCamera::getInstance()->getOrigin() - icon_position;
+	icon_to_cam.normVec();
+
+	icon_position += icon_to_cam * mSourceObject->mDrawable->getRadius() * 1.1f;
+
+	mDistance = dist_vec(icon_position, LLViewerCamera::getInstance()->getOrigin());
+
+	LLVector3 x_pixel_vec;
+	LLVector3 y_pixel_vec;
+	
+	LLViewerCamera::getInstance()->getPixelVectors(icon_position, y_pixel_vec, x_pixel_vec);
+
+	F32 scale_factor = 1.f;
+	if (mAnimTimer.getElapsedTimeF32() < ANIM_TIME)
+	{
+		scale_factor = llmax(0.f, calc_bouncy_animation(mAnimTimer.getElapsedTimeF32() / ANIM_TIME));
+	}
+
+	F32 time_elapsed = mLifeTimer.getElapsedTimeF32();
+	if (time_elapsed > MAX_VISIBLE_TIME)
+	{
+		markDead();
+		return FALSE;
+	}
+	
+	F32 image_aspect = (F32)mImagep->mFullWidth / (F32)mImagep->mFullHeight;
+	LLVector3 x_scale = image_aspect * (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * x_pixel_vec;
+	LLVector3 y_scale = (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * y_pixel_vec;
+
+	LLVector3 lower_left = icon_position - (x_scale * 0.5f);
+	LLVector3 lower_right = icon_position + (x_scale * 0.5f);
+	LLVector3 upper_left = icon_position - (x_scale * 0.5f) + y_scale;
+	LLVector3 upper_right = icon_position + (x_scale * 0.5f) + y_scale;
+
+	
+	F32 t = 0.f;
+	LLVector3 dir = end-start;
+
+	if (LLTriangleRayIntersect(upper_right, upper_left, lower_right, start, dir, NULL, NULL, &t, FALSE) ||
+		LLTriangleRayIntersect(lower_left, lower_right, upper_left, start, dir, NULL, NULL, &t, FALSE))
+	{
+		if (intersection)
+		{
+			*intersection = start + dir*t;
+		}
+		return TRUE;
+	}
+
+	return FALSE;
+}
 
 //static
 S32 LLHUDIcon::generatePickIDs(S32 start_id, S32 step_size)
@@ -243,6 +317,33 @@ LLHUDIcon* LLHUDIcon::handlePick(S32 pick_id)
 	return NULL;
 }
 
+//static
+LLHUDIcon* LLHUDIcon::lineSegmentIntersectAll(const LLVector3& start, const LLVector3& end, LLVector3* intersection)
+{
+	icon_instance_t::iterator icon_it;
+
+	LLVector3 local_end = end;
+	LLVector3 position;
+
+	LLHUDIcon* ret = NULL;
+	for(icon_it = sIconInstances.begin(); icon_it != sIconInstances.end(); ++icon_it)
+	{
+		LLHUDIcon* icon = *icon_it;
+		if (icon->lineSegmentIntersect(start, local_end, &position))
+		{
+			ret = icon;
+			if (intersection)
+			{
+				*intersection = position;
+			}
+			local_end = position;
+		}
+	}
+
+	return ret;
+}
+
+
  //static
 void LLHUDIcon::updateAll()
 {
diff --git a/indra/newview/llhudicon.h b/indra/newview/llhudicon.h
index ffc2985f885cbfd1bffb29f0cf8c83f52f432585..154e6df518025c8707d37a83efc5bb842ecb45cd 100644
--- a/indra/newview/llhudicon.h
+++ b/indra/newview/llhudicon.h
@@ -68,6 +68,7 @@ friend class LLHUDObject;
 
 	static S32 generatePickIDs(S32 start_id, S32 step_size);
 	static LLHUDIcon* handlePick(S32 pick_id);
+	static LLHUDIcon* lineSegmentIntersectAll(const LLVector3& start, const LLVector3& end, LLVector3* intersection);
 
 	static void updateAll();
 	static void cleanupDeadIcons();
@@ -78,6 +79,8 @@ friend class LLHUDObject;
 	BOOL getHidden() const { return mHidden; }
 	void setHidden( BOOL hide ) { mHidden = hide; }
 
+	BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3* intersection);
+
 protected:
 	LLHUDIcon(const U8 type);
 	~LLHUDIcon();
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 8c0c5fdab1d775d4a947b887abdc2e9a6491f4a8..b9a700991e033ffed749b30fc11d5c1a74d8973d 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -78,7 +78,7 @@ const F32 PLANE_TICK_SIZE = 0.4f;
 const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f;
 const F32 SNAP_ARROW_SCALE = 0.7f;
 
-static GLuint sGridTex = 0;
+static LLPointer<LLImageGL> sGridTex = NULL ;
 
 const LLManip::EManipPart MANIPULATOR_IDS[9] = 
 {
@@ -120,12 +120,32 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
 	mPlaneScales(1.f, 1.f, 1.f),
 	mPlaneManipPositions(1.f, 1.f, 1.f, 1.f)
 { 
-	if (sGridTex == 0)
+	if (sGridTex.isNull())
 	{ 
 		restoreGL();
 	}
 }
 
+//static
+U32 LLManipTranslate::getGridTexName()
+{
+	if(sGridTex.isNull())
+	{
+		restoreGL() ;
+	}
+
+	return sGridTex.isNull() ? 0 : sGridTex->getTexName() ;
+}
+
+//static
+void LLManipTranslate::destroyGL()
+{
+	if (sGridTex)
+	{
+		sGridTex = NULL ;
+	}
+}
+
 //static
 void LLManipTranslate::restoreGL()
 {
@@ -133,9 +153,17 @@ void LLManipTranslate::restoreGL()
 	U32 rez = 512;
 	U32 mip = 0;
 
-	GLuint* d = new GLuint[rez*rez];
-	glGenTextures(1, &sGridTex);
-	gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex);
+	destroyGL() ;
+	sGridTex = new LLImageGL() ;
+	if(!sGridTex->createGLTexture())
+	{
+		sGridTex = NULL ;
+		return ;
+	}
+
+	GLuint* d = new GLuint[rez*rez];	
+
+	gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex->getTexName());
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
@@ -1504,7 +1532,7 @@ void LLManipTranslate::renderSnapGuides()
 				LLGLDisable stencil(GL_STENCIL_TEST);
 				{
 					LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GREATER);
-					gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex);
+					gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getGridTexName());
 					gGL.flush();
 					gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE_MINUS_SOURCE_ALPHA);
 					renderGrid(u,v,tiles,0.9f, 0.9f, 0.9f,a*0.15f);
@@ -1519,7 +1547,7 @@ void LLManipTranslate::renderSnapGuides()
 					renderGrid(u,v,tiles,0.0f, 0.0f, 0.0f,a*0.16f);
 
 					//draw grid top
-					gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex);
+					gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getGridTexName());
 					renderGrid(u,v,tiles,1,1,1,a);
 
 					gGL.popMatrix();
diff --git a/indra/newview/llmaniptranslate.h b/indra/newview/llmaniptranslate.h
index cc9053ec653ae5000a805656f5e920ef96225428..25ff35cc726cab28e32b5979a083211aa439960a 100644
--- a/indra/newview/llmaniptranslate.h
+++ b/indra/newview/llmaniptranslate.h
@@ -56,6 +56,8 @@ class LLManipTranslate : public LLManip
 	LLManipTranslate( LLToolComposite* composite );
 	virtual ~LLManipTranslate();
 
+	static  U32     getGridTexName() ;
+	static  void    destroyGL();
 	static	void	restoreGL();
 	virtual BOOL	handleMouseDown(S32 x, S32 y, MASK mask);
 	virtual BOOL	handleMouseUp(S32 x, S32 y, MASK mask);
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index baff4a2d3f8558c96f86fe7c33a1978a44a88a54..709fcd166b98c09d02934fa5f257020bf144a072 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -94,17 +94,59 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
 	mNeedsUpdate( TRUE ),
 	mNeedsUpload( FALSE ),
 	mUploadPending( FALSE ), // Not used for any logic here, just to sync sending of updates
-	mTexLayerSet( owner ),
-	mBumpTexName(0)
+	mTexLayerSet( owner )	
 {
 	LLTexLayerSetBuffer::sGLByteCount += getSize();
+	mHasBump = has_bump ;
+	mBumpTex = NULL ;
 
-	if( has_bump )
+	createBumpTexture() ;
+}
+
+LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
+{
+	LLTexLayerSetBuffer::sGLByteCount -= getSize();
+
+	if( mBumpTex.notNull())
+	{
+		mBumpTex = NULL ;
+		LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
+		LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
+	}
+}
+//virtual 
+void LLTexLayerSetBuffer::restoreGLTexture() 
+{	
+	createBumpTexture() ;
+	LLDynamicTexture::restoreGLTexture() ;
+}
+
+//virtual 
+void LLTexLayerSetBuffer::destroyGLTexture() 
+{
+	if( mBumpTex.notNull() )
+	{
+		mBumpTex = NULL ;
+		LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
+		LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
+	}
+
+	LLDynamicTexture::destroyGLTexture() ;
+}
+
+void LLTexLayerSetBuffer::createBumpTexture()
+{
+	if( mHasBump )
 	{
 		LLGLSUIDefault gls_ui;
-		glGenTextures(1, (GLuint*) &mBumpTexName);
+		mBumpTex = new LLImageGL(FALSE) ;
+		if(!mBumpTex->createGLTexture())
+		{
+			mBumpTex = NULL ;
+			return ;
+		}
 
-		gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTexName);
+		gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
 		stop_glerror();
 
 		gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
@@ -112,7 +154,7 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 
-		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, mWidth, mHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
 		stop_glerror();
 
 		gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -122,21 +164,6 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
 	}
 }
 
-LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
-{
-	LLTexLayerSetBuffer::sGLByteCount -= getSize();
-
-	if( mBumpTexName )
-	{
-		glDeleteTextures(1, (GLuint*) &mBumpTexName);
-		stop_glerror();
-		mBumpTexName = 0;
-
-		LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
-		LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
-	}
-}
-
 // static
 void LLTexLayerSetBuffer::dumpTotalByteCount()
 {
@@ -245,7 +272,7 @@ BOOL LLTexLayerSetBuffer::render()
 	BOOL success = TRUE;
 
 	// Composite bump
-	if( mBumpTexName )
+	if( mBumpTex.notNull() )
 	{
 		// Composite the bump data
 		success &= mTexLayerSet->renderBump( mOrigin.mX, mOrigin.mY, mWidth, mHeight );
@@ -256,7 +283,7 @@ BOOL LLTexLayerSetBuffer::render()
 			LLGLSUIDefault gls_ui;
 
 			// read back into texture (this is done externally for the color data)
-			gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTexName);
+			gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
 			stop_glerror();
 
 			glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, mOrigin.mX, mOrigin.mY, mWidth, mHeight);
@@ -296,7 +323,7 @@ BOOL LLTexLayerSetBuffer::render()
 	gGL.setSceneBlendType(LLRender::BT_ALPHA);
 
 	// we have valid texture data now
-	mTexture->setInitialized(true);
+	mTexture->setGLTextureCreated(true);
 	mNeedsUpdate = FALSE;
 
 	return success;
@@ -304,7 +331,7 @@ BOOL LLTexLayerSetBuffer::render()
 
 bool LLTexLayerSetBuffer::isInitialized(void) const
 {
-	return mTexture->isInitialized();
+	return mTexture.notNull() && mTexture->isGLTextureCreated();
 }
 
 BOOL LLTexLayerSetBuffer::updateImmediate()
@@ -352,11 +379,11 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
 	// writes into baked_color_data
 	const char* comment_text = NULL;
 
-	S32 baked_image_components = mBumpTexName ? 5 : 4; // red green blue [bump] clothing
+	S32 baked_image_components = mBumpTex.notNull() ? 5 : 4; // red green blue [bump] clothing
 	LLPointer<LLImageRaw> baked_image = new LLImageRaw( mWidth, mHeight, baked_image_components );
 	U8* baked_image_data = baked_image->getData();
 	
-	if( mBumpTexName )
+	if( mBumpTex.notNull() )
 	{
 		comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // 5 channels: rgb, heightfield/alpha, mask
 
@@ -555,9 +582,9 @@ void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid, void* user
 
 void LLTexLayerSetBuffer::bindBumpTexture( U32 stage )
 {
-	if( mBumpTexName ) 
+	if( mBumpTex.notNull() ) 
 	{
-		gGL.getTexUnit(stage)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTexName);
+		gGL.getTexUnit(stage)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
 		gGL.getTexUnit(0)->activate();
 	
 		if( mLastBindTime != LLImageGL::sLastFrameTime )
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index b838415d22479bd6ea4a76e5a0603672c5df8ad2..97b55a3d06ff1f5f9c02db9ab1628d129ba27a35 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -221,22 +221,28 @@ class LLTexLayerSetBuffer : public LLDynamicTexture
 	BOOL					uploadPending() { return mUploadPending; }
 	BOOL					render( S32 x, S32 y, S32 width, S32 height );
 	void					readBackAndUpload(U8* baked_bump_data);
+	void                    createBumpTexture() ;
+
 	static void				onTextureUploadComplete( const LLUUID& uuid,
 													 void* userdata,
 													 S32 result, LLExtStat ext_status);
 	static void				dumpTotalByteCount();
 
+	virtual void restoreGLTexture() ;
+	virtual void destroyGLTexture() ;
+
 private:
 	void					pushProjection();
 	void					popProjection();
 
 private:
+	BOOL                    mHasBump ;
 	BOOL					mNeedsUpdate;
 	BOOL					mNeedsUpload;
 	BOOL					mUploadPending;
 	LLUUID					mUploadID;		// Identifys the current upload process (null if none).  Used to avoid overlaps (eg, when the user rapidly makes two changes outside of Face Edit)
 	LLTexLayerSet*			mTexLayerSet;
-	LLGLuint				mBumpTexName;	// zero if none
+	LLPointer<LLImageGL>	mBumpTex;	// zero if none
 
 	static S32				sGLByteCount;
 	static S32				sGLBumpByteCount;
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index 4ddb1ebd1362e67ae658e5fb133887c5fe7fb1a4..f15f0f44b0cf3de48e8f0b6fca805a5dbcf21b27 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -241,7 +241,7 @@ BOOL LLVisualParamHint::render()
 	}
 	avatarp->setVisualParamWeight(mVisualParam, mLastParamWeight);
 	gGL.color4f(1,1,1,1);
-	mTexture->setInitialized(true);
+	mTexture->setGLTextureCreated(true);
 	return TRUE;
 }
 
diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp
index a2ae7ea5c020d847ad17ef98368e33315c6fec75..5bd8c93d6a37cef67f7e435609a5b90745a737ea 100644
--- a/indra/newview/llviewerjointattachment.cpp
+++ b/indra/newview/llviewerjointattachment.cpp
@@ -139,6 +139,8 @@ void LLViewerJointAttachment::setupDrawable(LLDrawable* drawablep)
 		{
 			childp->mDrawable->setState(LLDrawable::USE_BACKLIGHT);
 			gPipeline.markTextured(childp->mDrawable); // face may need to change draw pool to/from POOL_HUD
+			gPipeline.markMoved(childp->mDrawable);
+
 			if(mIsHUDAttachment)
 			{
 				for (S32 face_num = 0; face_num < childp->mDrawable->getNumFaces(); face_num++)
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index bda07951a3d3c5b6aa8eecc48ceef90ae9fc11f0..167b89fd02471175feae2ff7156d8561bd5b6f42 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -182,6 +182,7 @@
 #include "llspatialpartition.h"
 #include "llviewerjoystick.h"
 #include "llviewernetwork.h"
+#include "llpostprocess.h"
 
 #include "llfloatertest.h" // HACK!
 #include "llfloaternotificationsconsole.h"
@@ -3575,6 +3576,29 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot,  BOOL pick_trans
 	return mLastPick;
 }
 
+LLHUDIcon* LLViewerWindow::cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
+										   LLVector3* intersection)
+{
+	S32 x = mouse_x;
+	S32 y = mouse_y;
+
+	if ((mouse_x == -1) && (mouse_y == -1)) // use current mouse position
+	{
+		x = getCurrentMouseX();
+		y = getCurrentMouseY();
+	}
+
+	// world coordinates of mouse
+	LLVector3 mouse_direction_global = mouseDirectionGlobal(x,y);
+	LLVector3 mouse_point_global = LLViewerCamera::getInstance()->getOrigin();
+	LLVector3 mouse_world_start = mouse_point_global;
+	LLVector3 mouse_world_end   = mouse_point_global + mouse_direction_global * depth;
+
+	return LLHUDIcon::lineSegmentIntersectAll(mouse_world_start, mouse_world_end, intersection);
+
+	
+}
+
 LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 depth,
 												LLViewerObject *this_object,
 												S32 this_face,
@@ -3684,7 +3708,7 @@ LLVector3 LLViewerWindow::mousePointHUD(const S32 x, const S32 y) const
 	F32 hud_x = -((F32)x - (F32)width/2.f)  / height;
 	F32 hud_y = ((F32)y - (F32)height/2.f) / height;
 
-	return LLVector3(0.f, hud_x, hud_y);
+	return LLVector3(0.f, hud_x/gAgent.mHUDCurZoom, hud_y/gAgent.mHUDCurZoom);
 }
 
 // Returns unit vector relative to camera in camera space
@@ -4552,6 +4576,10 @@ void LLViewerWindow::dumpState()
 
 void LLViewerWindow::stopGL(BOOL save_state)
 {
+	//Note: --bao
+	//if not necessary, do not change the order of the function calls in this function.
+	//if change something, make sure it will not break anything.
+	//especially be careful to put anything behind gImageList.destroyGL(save_state);
 	if (!gGLManager.mIsDisabled)
 	{
 		llinfos << "Shutting down GL..." << llendl;
@@ -4560,12 +4588,12 @@ void LLViewerWindow::stopGL(BOOL save_state)
 		LLAppViewer::getTextureCache()->pause();
 		LLAppViewer::getImageDecodeThread()->pause();
 		LLAppViewer::getTextureFetch()->pause();
-		
+				
 		gSky.destroyGL();
-		stop_glerror();
-	
-		gImageList.destroyGL(save_state);
-		stop_glerror();
+		stop_glerror();		
+
+		LLManipTranslate::destroyGL() ;
+		stop_glerror();		
 
 		gBumpImageList.destroyGL();
 		stop_glerror();
@@ -4589,6 +4617,14 @@ void LLViewerWindow::stopGL(BOOL save_state)
 		gSphere.cleanupGL();
 		gCylinder.cleanupGL();
 		
+		if(gPostProcess)
+		{
+			gPostProcess->invalidate();
+		}
+
+		gImageList.destroyGL(save_state);
+		stop_glerror();
+
 		gGLManager.mIsDisabled = TRUE;
 		stop_glerror();
 		
@@ -4598,25 +4634,32 @@ void LLViewerWindow::stopGL(BOOL save_state)
 
 void LLViewerWindow::restoreGL(const std::string& progress_message)
 {
+	//Note: --bao
+	//if not necessary, do not change the order of the function calls in this function.
+	//if change something, make sure it will not break anything. 
+	//especially, be careful to put something before gImageList.restoreGL();
 	if (gGLManager.mIsDisabled)
 	{
 		llinfos << "Restoring GL..." << llendl;
 		gGLManager.mIsDisabled = FALSE;
+		
+		initGLDefaults();
+		LLGLState::restoreGL();
+		gImageList.restoreGL();
 
 		// for future support of non-square pixels, and fonts that are properly stretched
 		//LLFontGL::destroyDefaultFonts();
 		initFonts();
-		initGLDefaults();
-		LLGLState::restoreGL();
+				
 		gSky.restoreGL();
 		gPipeline.restoreGL();
 		LLDrawPoolWater::restoreGL();
 		LLManipTranslate::restoreGL();
-		gImageList.restoreGL();
+		
 		gBumpImageList.restoreGL();
 		LLDynamicTexture::restoreGL();
 		LLVOAvatar::restoreGL();
-
+		
 		gResizeScreenTexture = TRUE;
 
 		if (gFloaterCustomize && gFloaterCustomize->getVisible())
@@ -4665,6 +4708,7 @@ void LLViewerWindow::toggleFullscreen(BOOL show_progress)
 	if (mWindow)
 	{
 		mWantFullscreen = mWindow->getFullscreen() ? FALSE : TRUE;
+		mIsFullscreenChecked =  mWindow->getFullscreen() ? FALSE : TRUE;
 		mShowFullscreenProgress = show_progress;
 	}
 }
@@ -5175,6 +5219,13 @@ void LLPickInfo::fetchResults()
 	LLVector3 intersection, normal, binormal;
 	LLVector2 uv;
 
+	LLHUDIcon* hit_icon = gViewerWindow->cursorIntersectIcon(mMousePt.mX, mMousePt.mY, 512.f, &intersection);
+	
+	F32 icon_dist = 0.f;
+	if (hit_icon)
+	{
+		icon_dist = (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec();
+	}
 	LLViewerObject* hit_object = gViewerWindow->cursorIntersect(mMousePt.mX, mMousePt.mY, 512.f,
 									NULL, -1, mPickTransparent, &face_hit,
 									&intersection, &uv, &normal, &binormal);
@@ -5284,16 +5335,15 @@ void LLPickInfo::fetchResults()
 			}
 		}
 	}
-	//else
-	//{
+	if (hit_icon && 
+		(!objectp || 
+		icon_dist < (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec()))
+	{
 		// was this name referring to a hud icon?
-	//	mHUDIcon = LLHUDIcon::handlePick(pick_id);
-	//	if (mHUDIcon)
-	//	{
-	//		mPickType = PICK_ICON;
-	//		mPosGlobal = mHUDIcon->getPositionGlobal();
-	//	}
-	//}
+		mHUDIcon = hit_icon;
+		mPickType = PICK_ICON;
+		mPosGlobal = mHUDIcon->getPositionGlobal();
+	}
 
 	if (mPickCallback)
 	{
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index d74c300a1e815ef7605e71f6d2ab37cbac15cb2c..a55913c566968d09a74cc4b4e48a6478b7a7e943 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -312,6 +312,9 @@ class LLViewerWindow : public LLWindowCallbacks
 	LLPickInfo		pickImmediate(S32 x, S32 y, BOOL pick_transparent);
 	static void     hoverPickCallback(const LLPickInfo& pick_info);
 	
+	LLHUDIcon* cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
+										   LLVector3* intersection);
+
 	LLViewerObject* cursorIntersect(S32 mouse_x = -1, S32 mouse_y = -1, F32 depth = 512.f,
 									LLViewerObject *this_object = NULL,
 									S32 this_face = -1,
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index e5e858efba514e309ef571d0d5ffe2e6ab94e3e8..597513ba0c4678f519e164e658854acfbe650dbf 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1070,6 +1070,22 @@ void LLVOAvatar::deleteLayerSetCaches()
 	if( mLowerBodyLayerSet )	mLowerBodyLayerSet->deleteCaches();
 	if( mEyesLayerSet )			mEyesLayerSet->deleteCaches();
 	if( mSkirtLayerSet )		mSkirtLayerSet->deleteCaches();
+
+	if(mUpperMaskTexName)
+	{
+		glDeleteTextures(1, (GLuint*)&mUpperMaskTexName);
+		mUpperMaskTexName = 0 ;
+	}
+	if(mHeadMaskTexName)
+	{
+		glDeleteTextures(1, (GLuint*)&mHeadMaskTexName);
+		mHeadMaskTexName = 0 ;
+	}
+	if(mLowerMaskTexName)
+	{
+		glDeleteTextures(1, (GLuint*)&mLowerMaskTexName);
+		mLowerMaskTexName = 0 ;
+	}
 }
 
 // static 
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 9d1c9c001bc94a54d4403a7cc50e1380566037a7..a63b5c5fd164edd43e7943be21cc251668776ebe 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4036,7 +4036,7 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
 
 	LLVector3 position;
 
-	sPickAvatar = LLToolMgr::getInstance()->inBuildMode() ? FALSE : TRUE;
+	sPickAvatar = FALSE; //LLToolMgr::getInstance()->inBuildMode() ? FALSE : TRUE;
 	
 	for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); 
 			iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
@@ -4067,6 +4067,32 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
 	
 	if (!sPickAvatar)
 	{
+		//save hit info in case we need to restore
+		//due to attachment override
+		LLVector3 local_normal;
+		LLVector3 local_binormal;
+		LLVector2 local_texcoord;
+		S32 local_face_hit = -1;
+
+		if (face_hit)
+		{ 
+			local_face_hit = *face_hit;
+		}
+		if (tex_coord)
+		{
+			local_texcoord = *tex_coord;
+		}
+		if (bi_normal)
+		{
+			local_binormal = *bi_normal;
+		}
+		if (normal)
+		{
+			local_normal = *normal;
+		}
+				
+		const F32 ATTACHMENT_OVERRIDE_DIST = 0.1f;
+
 		if (!drawable || !drawable->getVObj()->isAttachment())
 		{ //check against avatars
 				sPickAvatar = TRUE;
@@ -4081,8 +4107,35 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
 						LLDrawable* hit = part->lineSegmentIntersect(start, local_end, pick_transparent, face_hit, &position, tex_coord, normal, bi_normal);
 						if (hit)
 						{
-							drawable = hit;
-							local_end = position;						
+							if (!drawable || 
+								!drawable->getVObj()->isAttachment() ||
+								(position-local_end).magVec() > ATTACHMENT_OVERRIDE_DIST)
+							{ //avatar overrides if previously hit drawable is not an attachment or 
+							  //attachment is far enough away from detected intersection
+								drawable = hit;
+								local_end = position;						
+							}
+							else
+							{ //prioritize attachments over avatars
+								position = local_end;
+
+								if (face_hit)
+								{
+									*face_hit = local_face_hit;
+								}
+								if (tex_coord)
+								{
+									*tex_coord = local_texcoord;
+								}
+								if (bi_normal)
+								{
+									*bi_normal = local_binormal;
+								}
+								if (normal)
+								{
+									*normal = local_normal;
+								}
+							}
 						}
 					}
 				}
diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml
index 7163b149e84ba5497fae46b2b4047b88b1561141..3612797a7fac6c42ec194fc61b496bc735aaf70b 100644
--- a/indra/newview/skins/default/xui/da/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_about_land.xml
@@ -359,10 +359,10 @@ Indstillinger:
 			<check_box label="Gentag Medie" name="media_loop" tool_tip="Gentager automatisk medie, når det er færdigt med at spille starter det automatisk forfra."/>
 			<check_box label="Skjul Medie URL." name="hide_media_url" tool_tip="Klik her for at skjule Medie adressen så det kun er dig og evt. parcel gruppens ejer/officere der kan se den."/>
 			<check_box label="Skjul Musik URL" name="hide_music_url" tool_tip="Klik her for at skjule Musik adressen så det kun er dig og evt. parcel gruppens ejer/officere der kan se den."/>
-			<text length="1" name="media_size" tool_tip="Size to render Web media, leave 0 for default." type="string">
+			<text length="1" name="media_size" tool_tip="Size to render Web media, leave 0 for default." type="string" width="105">
 				Medie Størrelse:
 			</text>
-			<spinner name="media_size_width" tool_tip="Størrelse på Web Medier, 0 for standard."/>
+			<spinner name="media_size_width" tool_tip="Størrelse på Web Medier, 0 for standard." left_delta="89"/>
 			<spinner name="media_size_height" tool_tip="Størrelse på Web Medier, 0 for standard."/>
 			<text length="1" name="pixels" type="string">
 				pixels
diff --git a/indra/newview/skins/default/xui/da/floater_buy_currency.xml b/indra/newview/skins/default/xui/da/floater_buy_currency.xml
index cc408de5729b9c0edcf46f0bc9ac267a8a7c1600..a1150d173bd2aef3fb001fdfb0de44deff55f8b9 100644
--- a/indra/newview/skins/default/xui/da/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_currency.xml
@@ -53,10 +53,12 @@
 		L$ [AMT]
 	</text>
 	<text name="purchase_warning_repurchase">
-		Der er sket en fejl, og k&#248;bet er afbrudt. Fors&#248;g venligst igen.
+		Der er sket en fejl, og k&#248;bet er afbrudt.
+Fors&#248;g venligst igen.
 	</text>
 	<text name="purchase_warning_notenough">
-		Du k&#248;ber ikke nok valuta, tast et st&#248;rre bel&#248;b og pr&#248;v igen.
+		Du k&#248;ber ikke nok valuta, tast et st&#248;rre bel&#248;b
+og pr&#248;v igen.
 	</text>
 	<button label="Annuller" name="cancel_btn" />
 	<button label="K&#248;b" name="buy_btn" />
diff --git a/indra/newview/skins/default/xui/da/floater_buy_land.xml b/indra/newview/skins/default/xui/da/floater_buy_land.xml
index 69690fe055236d8a4ecc354de06f2351ab9c0edc..8cc3f9f00395551667ddfea43afe3cd1a0a2f307 100644
--- a/indra/newview/skins/default/xui/da/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_land.xml
@@ -37,19 +37,19 @@
 	<text name="info_parcel_label">
 		Parcel:
 	</text>
-	<text name="info_parcel">
+	<text name="info_parcel" left_delta="62">
 		Scotopteryx 138,204
 	</text>
-	<text name="info_size_label">
+	<text name="info_size_label" width="60">
 		St&#248;rrelse:
 	</text>
-	<text name="info_size">
+	<text name="info_size" left_delta="62">
 		1024 m2
 	</text>
 	<text name="info_price_label">
 		Pris:
 	</text>
-	<text name="info_price">
+	<text name="info_price" left_delta="62">
 		L$ 1500, objekter inkluderet
 	</text>
 	<text name="info_action">
@@ -76,7 +76,7 @@
 			US$6.00/md, &#229;rlig afregning
 		</combo_item>
 	</combo_box>
-	<text name="land_use_action">
+	<text name="land_use_action" width="210" right="430">
 		For&#248;g dine m&#229;nedlige arealanvendelse gebyrer til US $ 40/month.
 	</text>
 	<text name="land_use_reason">
@@ -84,7 +84,7 @@
 Dette parcel er p&#229; 512 kvadratmeter jord.
 	</text>
 	<text name="purchase_action">
-		Betal Joe Resident L $ 4000 dette areal
+		Betal Joe Resident L$ 4000 dette areal
 	</text>
 	<text name="currency_reason">
 		Du har L$2,100.
diff --git a/indra/newview/skins/default/xui/da/floater_pay.xml b/indra/newview/skins/default/xui/da/floater_pay.xml
index 3a9d350227a9b1f1884cd505fba4a763f53e3fd2..9b3cfa2ffdb0b4fb420da6a7f18802f375c3ff37 100644
--- a/indra/newview/skins/default/xui/da/floater_pay.xml
+++ b/indra/newview/skins/default/xui/da/floater_pay.xml
@@ -6,7 +6,7 @@
 	<button label="L$20" label_selected="L$20" name="fastpay 20" />
 	<button label="Betal" label_selected="Betal" name="pay btn" />
 	<button label="Annuller" label_selected="Annuller" name="cancel btn" />
-	<text type="string" length="1" name="payee_label">
+	<text type="string" length="1" name="payee_label" left="5" width="81">
 		Betal Beboer:
 	</text>
 	<text type="string" length="1" name="payee_name">
@@ -15,7 +15,7 @@
 	<text type="string" length="1" name="fastpay text">
 		Hurtig Betal:
 	</text>
-	<text type="string" length="1" name="amount text">
+	<text type="string" length="1" name="amount text" left="4" >
 		Beløb:
 	</text>
 </floater>
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index 5411230a6992ac79719de89ec4cdbcc1b12ca41c..bfa215011e0fea6c501a9bb7302634198187add7 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -80,7 +80,7 @@
 			English (Engelsk)
 		</combo_item>
 		<combo_item length="1" name="Chinese" type="string">
-			汉语/漢語 (Kinesisk) - Beta
+			中文 (简体) (Kinesisk) - Beta
 		</combo_item>
 		<combo_item length="1" name="Deutsch(German)" type="string">
 			Deutsch (Tysk) - Beta
diff --git a/indra/newview/skins/default/xui/de/floater_beacons.xml b/indra/newview/skins/default/xui/de/floater_beacons.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d1ec9d968de8ee12664338532d781d85a10ebd36
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Beacons">
+	<panel name="beacons_panel">
+		<check_box label="Auf Berührung beschränkte Skriptobjekte" name="touch_only"/>
+		<check_box label="Skripting-Objekte" name="scripted"/>
+		<check_box label="Physische Objekte" name="physical"/>
+		<check_box label="Soundquellen" name="sounds"/>
+		<check_box label="Partikelquellen" name="particles"/>
+		<check_box label="Glanzlichter anzeigen" name="highlights"/>
+		<check_box label="Beacons anzeigen" name="beacons"/>
+		<text name="beacon_width_label">
+			Beacon-Breite:
+		</text>
+	</panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index f942819c1de047d90b54e0d610150e9d0cc43dca..247051f598c2476614d09ada28d27628f7787adf 100644
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel label="Land und L$" name="land_money_tab">
 	<text name="help_text">
-		Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Solange der Wert für „Insgesamt verwendetes Land“ unter oder gleich dem Wert für „Gesamtbeitrag“ ist, wird eine Warnung angezeigt. Die Registerkarten „Planung“, „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
+		Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Solange der Wert für „Insgesamt verwendetes Land“ unter oder gleich dem Wert für „Gesamtbeitrag“ ist, wird eine Warnung angezeigt. Die Registerkarten „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
 	</text>
 	<button label="?" name="help_button" />
 	<text name="cant_view_group_land_text">
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 0fad7175519474b83cf4823abdcbc859c71f1eac..3365c5c428bcf14ab3b7b7be47d61bc768fd3e67 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -101,7 +101,7 @@
 			Português (Portugiesisch) - Beta
 		</combo_item>
 		<combo_item name="Chinese">
-			汉语/漢語 (Chinesisch) - Beta
+			中文 (简体) (Chinesisch) - Beta
 		</combo_item>
 		<combo_item name="(Japanese)">
 			日本語 (Japanisch) - Beta
diff --git a/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
index 268b62fa425875dc2e287806daf8fceb8dc594ac..29bd688867c8d6debd44ff1de7ac16d689be728c 100644
--- a/indra/newview/skins/default/xui/es/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
@@ -4,8 +4,8 @@
 		Parcelas pertenecientes al grupo son listadas 
 con detalles de contribución. Un aviso aparece hasta que 
 el terreno total en uso sea menor o igual al total
-de contribución. Las pestañas Planeamiento, Detalles y Ventas
-conceden informaciones sobre las finanzas&apos; del grupo.
+de contribución. Las pestañas Detalles y Ventas
+conceden informaciones sobre las finanzas del grupo.
 	</text>
 	<button label="?" name="help_button" />
 	<text name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index 66fb9bd2c928d42e3dcd40a9b8a913928fe70d58..dd285d521827e55fe8c1608ba929fd17435270c0 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -81,7 +81,7 @@
 			한국어 (Coreano) - Beta
 		</combo_item>
 		<combo_item type="string" length="1" name="Chinese">
-			汉语/漢語 (Chino) - Beta
+			中文 (简体) (Chino) - Beta
 		</combo_item>
 		<combo_item type="string" name="Spanish">
 			Español - Beta
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index c922562b70808ee45999c611abad993b88c306de..03d62605bb16e1d3cc9a0a75c211766e3cb677f0 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -45,7 +45,7 @@
 			<text length="1" name="Selling with no objects in parcel." type="string">
 				Objets non inclus dans la vente.
 			</text>
-			<button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" name="Cancel Land Sale"/>
+			<button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" name="Cancel Land Sale" width="165" left="275"/>
 			<text length="1" name="Claimed:" type="string">
 				Acquis :
 			</text>
diff --git a/indra/newview/skins/default/xui/fr/floater_beacons.xml b/indra/newview/skins/default/xui/fr/floater_beacons.xml
new file mode 100644
index 0000000000000000000000000000000000000000..06bcdee28cce14a9fa4559808894567e6e42987f
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Balises">
+	<panel name="beacons_panel">
+		<check_box label="Objets scriptés avec Toucher uniquement" name="touch_only"/>
+		<check_box label="Objets scriptés" name="scripted"/>
+		<check_box label="Objets physiques" name="physical"/>
+		<check_box label="Sources sonores" name="sounds"/>
+		<check_box label="Sources des particules" name="particles"/>
+		<check_box label="Montrer les surbrillances" name="highlights"/>
+		<check_box label="Montrer les balises" name="beacons"/>
+		<text name="beacon_width_label">
+			Largeur de la balise :
+		</text>
+	</panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_pay.xml b/indra/newview/skins/default/xui/fr/floater_pay.xml
index a0db92af852bb57a0c00ef40d6c79d3c579d2fbb..08251de71bf0a72ff06dfb4a29ea023f0ab5ac6a 100644
--- a/indra/newview/skins/default/xui/fr/floater_pay.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pay.xml
@@ -12,7 +12,7 @@
 	<text length="1" name="payee_name" type="string">
 		[FIRST] [LAST]
 	</text>
-	<text length="1" name="fastpay text" type="string">
+	<text length="1" name="fastpay text" type="string" width="100" halign="left">
 		Paiement rapide :
 	</text>
 	<text left="4" length="1" name="amount text" type="string">
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index 2914dab8873efb2e57f87604ec7c7d885401b3db..c7101eaf19591278c0069394c83c6530f5902d6a 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -594,7 +594,7 @@
 		Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur.
 	</string>
 	<string name="status_scale">
-		Pour étirer le côté sélectionné, cliquez et faîtes glisser
+		Pour étirer le côté sélectionné, cliquez et faites glisser
 	</string>
 	<string name="status_move">
 		Faîtes glisser pour déplacer, Maj-faire glisser pour copier.
@@ -603,7 +603,7 @@
 		Cliquez et maintenez pour modifier le terrain
 	</string>
 	<string name="status_camera">
-		Cliquez et faîtes glisser pour changer l&apos;affichage
+		Cliquez et faites glisser pour changer l&apos;affichage
 	</string>
 	<string name="status_grab">
 		Faîtes glisser pour déplacer les objets, appuyez sur Ctrl pour soulever, Crtl-Maj pour faire tourner
@@ -612,7 +612,7 @@
 		Cliquez dans le Monde pour créer, Maj-clic pour sélectionner
 	</string>
 	<string name="status_selectland">
-		Cliquez et faîtes glisser pour sélectionner le terrain
+		Cliquez et faites glisser pour sélectionner le terrain
 	</string>
 	<string name="grid_screen_text">
 		Écran
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 4893f26058b9846553806946f0f5793603eaf52c..47726f882d603de4b5a5c3554e5adfc290d69537 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -196,7 +196,7 @@
 			<menu_item_separator label="-----------" name="separator7"/>
 			<menu_item_call label="Comment signaler des bugs ?" name="Bug Reporing 101..."/>
 			<menu_item_call label="Comment signaler un problème de sécurité ?" name="Security Issues...">
-				<on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" />
+				<on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/fr" />
 			</menu_item_call>
 			<menu_item_call label="Wiki Assurance Qualité…" name="QA Wiki..."/>
 			<menu_item_separator label="-----------" name="separator9"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
index 1267689bd3bfce08e44c18a8b1a9b062f455f88f..485c676c1a781c0b8873dc36ccceba489607ee16 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel label="Terrain et L$" name="land_money_tab">
 	<text name="help_text">
-		Les parcelles appartenant au groupe sont indiquées avec le détail des contributions. Un avertissement apparaît si la surface utilisée par le groupe est supérieure ou égale au total des contributions. Les onglets Planification, Détails et Ventes correspondent aux finances du groupe.
+		Les parcelles appartenant au groupe sont indiquées avec le détail des contributions. Un avertissement apparaît si la surface utilisée par le groupe est supérieure ou égale au total des contributions. Les onglets Détails et Ventes correspondent aux finances du groupe.
 	</text>
 	<button label="?" name="help_button"/>
 	<text name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 7c1986a21f03b233eb267d070831812a6b109762..fd1ed4ccfc5ec9ca2786da79e704c7f6b9a186ff 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -102,7 +102,7 @@
 			Portugués (Portugais) - Bêta
 		</combo_item>
 		<combo_item length="1" name="Chinese" type="string">
-			汉语/漢語 (Chinois) - Bêta
+			中文 (简体) (Chinois) - Bêta
 		</combo_item>
 		<combo_item length="1" name="(Japanese)" type="string">
 			日本語 (Japonais) - Bêta
diff --git a/indra/newview/skins/default/xui/ja/floater_beacons.xml b/indra/newview/skins/default/xui/ja/floater_beacons.xml
new file mode 100644
index 0000000000000000000000000000000000000000..49c87588b450a61a1c2574063dcb1b6b27afe2eb
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="ビーコン(標識)">
+	<panel name="beacons_panel">
+		<check_box label="タッチオンリーのスクリプトを含むオブジェクト" name="touch_only"/>
+		<check_box label="スクリプト・オブジェクト" name="scripted"/>
+		<check_box label="物理的オブジェクト" name="physical"/>
+		<check_box label="音源" name="sounds"/>
+		<check_box label="パーティクル源" name="particles"/>
+		<check_box label="ハイライトのレンダリング" name="highlights"/>
+		<check_box label="ビーコン(標識)のレンダリング" name="beacons"/>
+		<text name="beacon_width_label">
+			ビーコン(標識)の幅
+		</text>
+	</panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml
index 3b99bc9f4798ccd90a92b3a0784d471472f55ddb..4b420dbc2e7c5aa7f4357734c09de014e099bb4d 100644
--- a/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ b/indra/newview/skins/default/xui/ja/floater_customize.xml
@@ -3,7 +3,7 @@
 	<tab_container name="customize tab container">
 		<panel label="身体部位" />
 		<panel label="身体部位" name="body_parts_placeholder" />
-		<panel label="å½¢" name="Shape">
+		<panel label="シェイプ" name="Shape">
 			<button label="戻す" label_selected="戻す" name="Revert" />
 			<button label="身体" label_selected="身体" name="Body" />
 			<button label="é ­" label_selected="é ­" name="Head" />
@@ -39,12 +39,12 @@
 				[PATH]に所在
 			</text>
 			<text type="string" length="1" name="not worn instructions">
-				新しい形を持ち物からアバターにドラッグして装着しましょう。完全に新規の状態から作成して装着することもできます。
+				新しいシェイプ(体型)を持ち物からアバターにドラッグして装着しましょう。完全に新規の状態から作成して装着することもできます。
 			</text>
 			<text type="string" length="1" name="no modify instructions">
 				あなたはこの服の修正を許されていません。
 			</text>
-			<button label="新しい形を作成" label_selected="新しい形を作成"
+			<button label="新しいシェイプ(体型)を作成" label_selected="新しいシェイプ(体型)を作成"
 			     name="Create New" />
 			<button label="取り外す" label_selected="取り外す" name="Take Off" />
 			<button label="保存" label_selected="保存" name="Save" />
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory.xml b/indra/newview/skins/default/xui/ja/floater_inventory.xml
index 6edae5a0447f6e710f5f4178c95eb70ab660cc6a..db90c4e968f0e6e6f59a6009371f453908a1eb89 100644
--- a/indra/newview/skins/default/xui/ja/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory.xml
@@ -2,8 +2,8 @@
 <floater name="Inventory" title="持ち物">
 	<search_editor label="ここにタイプして検索" name="inventory search editor" />
 	<tab_container name="inventory filter tabs">
-		<inventory_panel label="All Items" name="All Items" />
-		<inventory_panel label="Recent Items" name="Recent Items" />
+		<inventory_panel label="すべて" name="All Items" />
+		<inventory_panel label="最近の入手アイテム" name="Recent Items" />
 	</tab_container>
 	<menu_bar name="Inventory Menu">
 		<menu label="ファイル" name="File">
@@ -31,7 +31,7 @@
 				<menu_item_call label="新しいパンツ" name="New Underpants" />
 			</menu>
 			<menu name="New Body Parts">
-				<menu_item_call label="新しい形" name="New Shape" />
+				<menu_item_call label="新しいシェイプ(体型)" name="New Shape" />
 				<menu_item_call label="新しいスキン" name="New Skin" />
 				<menu_item_call label="新しい髪" name="New Hair" />
 				<menu_item_call label="新しい眼" name="New Eyes" />
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
index 10bb7e42fa51b59af1bb83f1dcab638409b7fcc5..7ec92e403589f3df7df2eb9ab0958e0061cf28ed 100644
--- a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
@@ -21,13 +21,13 @@
 	</text>
 	<button label="プロフィール..." label_selected="" name="BtnOwner" />
 	<text name="LabelAcquiredTitle">
-		入手:
+		入手日時:
 	</text>
 	<text name="LabelAcquiredDate">
 		2006年5月24日水曜日12:50:46
 	</text>
 	<text name="OwnerLabel">
-		できることは:
+		できること:
 	</text>
 	<check_box label="修正" name="CheckOwnerModify" />
 	<check_box label="コピー" name="CheckOwnerCopy" />
@@ -50,7 +50,7 @@
 	<check_box label="グループ分担" name="CheckShareWithGroup" />
 	<check_box label="誰に対してもコピーを許可" name="CheckEveryoneCopy" />
 	<text name="NextOwnerLabel">
-		次のオーナーが実行できる操作:
+		次のオーナーができること:
 	</text>
 	<check_box label="修正" name="CheckNextOwnerModify" />
 	<check_box label="コピー" name="CheckNextOwnerCopy" />
@@ -77,7 +77,7 @@
 		(公共)
 	</text>
 	<text name="you_can">
-		次のことができます:
+		できること:
 	</text>
 	<text name="owner_can">
 		オーナーは次のことができます:
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 04ae1d3732ec62ea8bac9b12a5c297db28184d2b..8dac77458c3689020f99c173ff6a16b50e6cc94f 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -24,7 +24,7 @@
 		<menu_item_call label="新しいパンツ" name="New Underpants" />
 	</menu>
 	<menu name="New Body Parts">
-		<menu_item_call label="新しい形" name="New Shape" />
+		<menu_item_call label="新しいシェイプ(体型)" name="New Shape" />
 		<menu_item_call label="新しいスキン" name="New Skin" />
 		<menu_item_call label="新しい髪" name="New Hair" />
 		<menu_item_call label="新しい眼" name="New Eyes" />
@@ -37,7 +37,7 @@
 	<menu_item_call label="開く" name="Open" />
 	<menu_item_call label="プロパティ" name="Properties" />
 	<menu_item_call label="名前の変更" name="Rename" />
-	<menu_item_call label="資産UUIDをコピー" name="Copy Asset UUID" />
+	<menu_item_call label="UUIDをコピー" name="Copy Asset UUID" />
 	<menu_item_call label="コピー" name="Copy" />
 	<menu_item_call label="貼り付け" name="Paste" />
 	<menu_item_call label="削除" name="Delete" />
@@ -57,8 +57,8 @@
 	<menu_item_call label="非アクティブ" name="Deactivate" />
 	<menu_item_call label="自分から取り外す" name="Detach From Yourself" />
 	<menu_item_call label="装着" name="Object Wear" />
-	<menu label="添付先" name="Attach To" />
-	<menu label="HUDに添付" name="Attach To HUD" />
+	<menu label="装着先" name="Attach To" />
+	<menu label="HUD装着先" name="Attach To HUD" />
 	<menu_item_call label="装着" name="Wearable Wear" />
 	<menu_item_call label="編集" name="Wearable Edit" />
 	<menu_item_call label="取り外す" name="Take Off" />
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 b6211db7d0588a0dd76e636ac6696324365b9d7b..e8919862c02ae0f618ea67ad2de08d78d0d3c924 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -80,7 +80,7 @@
 			English (英語)
 		</combo_item>
 		<combo_item length="1" name="Chinese" type="string">
-			汉语/漢語(中国語) – ベータ
+			中文 (简体) (中国語) – ベータ
 		</combo_item>
 		<combo_item length="1" name="Deutsch(German)" type="string">
 			Deutsch (ドイツ語) – ベータ
diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml
index fa01ebf0fa9aded807d3196df0c9932c71616904..58a7a69b274ec2e7801dfe1fa9aec074189cafa9 100755
--- a/indra/newview/skins/default/xui/pl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml
@@ -60,9 +60,9 @@
 			<text length="1" name="DwellText" type="string">
 				0
 			</text>
-			<button label="Kup Posiadłość" label_selected="Kup Posiadłość" name="Buy Land..."/>
+			<button label="Kup Posiadłość..." label_selected="Kup Posiadłość..." name="Buy Land..." width="125" left="130"/>
 			<button label="Kup dla Grupy..." label_selected="Kup dla Grupy..." name="Buy For Group..."/>
-			<button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość."/>
+			<button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość." width="125" left="130"/>
 			<button label="Porzuć z Posiadłości..." label_selected="Porzuć z Posiadłości..." name="Abandon Land..."/>
 			<button label="Odzyskaj Posiadłość..." label_selected="Odzyskaj Posiadłość..." name="Reclaim Land..."/>
 			<button label="Sprzedaż przez Lindenów..." label_selected="Sprzedaż przez Lindenów..." name="Linden Sale..." tool_tip="Posiadłość musi mieć właściciela, zawartość oraz nie może być wystawiona na aukcę."/>
@@ -73,7 +73,7 @@
 				Każdy
 			</string>
 			<string name="area_text">
-				Obszar
+				Obszar:
 			</string>
 			<string name="area_size_text">
 				[AREA] m
@@ -158,7 +158,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
 			<text length="1" name="Simulator primitive usage:" type="string">
 				Ilość używanych elementów:
 			</text>
-			<text length="1" name="objects_available" type="string">
+			<text length="1" name="objects_available" type="string" width="230">
 				[COUNT] z [MAX] ([AVAILABLE] jest dostępne)
 			</text>
 			<string name="objects_available_text">
@@ -212,11 +212,11 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
 			<text length="1" name="Autoreturn" type="string">
 				Zwracaj obiekty innych Rezydentów (minut, 0 = wyłącz):
 			</text>
-			<text length="1" name="Object Owners:" type="string">
-				Właściciel Obiektów
+			<text length="1" name="Object Owners:" type="string" width="108">
+				Właściciel Obiektów:
 			</text>
-			<button label="Odśwież Listę" label_selected="Odśwież Listę" name="Refresh List"/>
-			<button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..."/>
+			<button label="Odśwież Listę" label_selected="Odśwież Listę" name="Refresh List" left="112"/>
+			<button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..." left="224"/>
 			<name_list name="owner list">
 				<column label="Typ" name="type"/>
 				<column name="online_status"/>
@@ -334,7 +334,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
 			</text>
 			<combo_box name="media type" tool_tip=""/>
 			<text length="1" name="at URL:" type="string">
-				Media URL:
+				URL Mediów:
 			</text>
 			<button label="Ustaw..." label_selected="Ustaw..." name="set_media_url"/>
 			<text length="1" name="Description:" type="string">
@@ -357,7 +357,7 @@ Mediów:
 			</text>
 			<check_box label="Automatyczna Skala" name="media_auto_scale" tool_tip="Wybranie tej opcji dobierze odpowiedni rozmiar zawartości mediów dla tej posiadłości automatycznie. Może to mieć znaczący wpływ na jakość odtwarzanego materialu - może zwolnić i zmniejszyć jakość materiału."/>
 			<check_box label="Powtórka Odtwarzania" name="media_loop" tool_tip="Odtwarzaj media z powtórką. Po wyświetleniu materialu, rozpocznie się odtwarzanie od początku."/>
-			<check_box label="Ukryj Media URL" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym użytkownikom. Nie dotyczy to jednak typów HTML."/>
+			<check_box label="Ukryj URL Mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym użytkownikom. Nie dotyczy to jednak typów HTML."/>
 			<check_box label="Ukryj URL Muzyki" name="hide_music_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów muzycznych w posiadłości wszystkim nieautoryzowanym użytkownikom"/>
 			<text length="1" name="media_size" tool_tip="Rozmiar dla ładowania mediów internetowych. Zostaw 0 dla ustawień domyślnych." type="string">
 				Rozmiar:
@@ -385,7 +385,7 @@ Mediów:
 					Użyj kanału prywatnego na posiadlości
 				</radio_item>
 				<radio_item length="1" name="Disabled" type="string">
-					Zablokuj używanie kanału przestrzennego na posiadlości
+					Zablokuj kanał przestrzenny na posiadlości
 				</radio_item>
 			</radio_group>
 		</panel>
diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
index f460a402e2a1c8c1b34a9faf16d8ff9f49998bad..9a3355358e795efa6f5cc27692820a07b50d634f 100755
--- a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="avatarpicker" title="Wybierz Rezydenta">
 	<text name="instruct_search_resident_name">
-		Wpisz imiÄ™ Rezydenta
+		Wpisz imiÄ™ Rezydenta:
 	</text>
 	<button label="Znajdź" label_selected="Znajdź" name="Find" />
 	<text name="Or select their calling card:">
diff --git a/indra/newview/skins/default/xui/pl/floater_beacons.xml b/indra/newview/skins/default/xui/pl/floater_beacons.xml
index 3216704e6008363c3e1b630efd2acc028ea83805..2202050e7f1e32d828ad35df7758bb364958c4d2 100644
--- a/indra/newview/skins/default/xui/pl/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/pl/floater_beacons.xml
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="beacons" title="Emitery">
 	<panel name="beacons_panel">
-		<check_box label="Dotykalne Obiekty Skryptowane" name="touch_only"/>
+		<check_box label="Obiekty Dotykalne" name="touch_only"/>
 		<check_box label="Obiekty Skryptowane" name="scripted"/>
 		<check_box label="Obiekty Fizyczne" name="physical"/>
 		<check_box label="Źródła Dźwięku" name="sounds"/>
 		<check_box label="Źródła Cząsteczek" name="particles"/>
-		<check_box label="Generuj Rozjaśnienia" name="highlights"/>
-		<check_box label="Generuj Emitery" name="beacons"/>
+		<check_box label="Pokaż Rozjaśnienia" name="highlights"/>
+		<check_box label="Pokaż Emitery" name="beacons"/>
 		<text name="beacon_width_label">
-			Szerokość Emitera:
+			Szerokość Emiterów:
 		</text>
 	</panel>
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
index c15bc05a09c14b9095086a42cbe0a56319a4cf76..dd0b0694671fa861bcbf7e8a18fa89783e8ef785 100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
@@ -12,7 +12,7 @@
 	<text name="error_message">
 		Pojawienie się błedu.
 	</text>
-	<button label="Idź do strony internetowej" name="error_web" />
+	<button label="Idź do strony internetowej" name="error_web" width="168"/>
 	<text name="contacting">
 		Kontaktowanie z LindeX...
 	</text>
@@ -53,12 +53,13 @@
 		[AMT]L$
 	</text>
 	<text name="purchase_warning_repurchase">
-		PotwierdzajÄ…c tÄ™ transkacjÄ™ zgadzasz siÄ™ na zakup TYLKO waluty.
-Proszę spróbować wykonać operację jeszcze raz.
+		PotwierdzajÄ…c tÄ™ transkacjÄ™ zgadzasz siÄ™ na zakup
+TYLKO waluty. Proszę spróbować wykonać
+operacjÄ™ jeszcze raz.
 	</text>
 	<text name="purchase_warning_notenough">
 		Nie zakupujesz wystarczającej ilości waluty.
-proszę zwiększyć ilość.
+Proszę zwiększyć ilość.
 	</text>
 	<button label="Anuluj" name="cancel_btn" />
 	<button label="Kup" name="buy_btn" />
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_land.xml b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
index fe2b32725269cd0f1b964fcf1d50a8015a6f77bc..e22ef75fd2adf78ffc2303c989332f2b8d319c44 100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
@@ -34,25 +34,25 @@
 		Ładowanie...
 	</text_editor>
 	<check_box label="Zgadzam się na Powyższą Umowę." name="agree_covenant" />
-	<text name="info_parcel_label">
+	<text name="info_parcel_label" width="60">
 		Posiadłość:
 	</text>
-	<text name="info_parcel">
+	<text name="info_parcel" left_delta="62">
 		Scotopteryx 138,204
 	</text>
 	<text name="info_size_label">
 		Obszar:
 	</text>
-	<text name="info_size">
+	<text name="info_size" left_delta="62">
 		1024 m.
 	</text>
 	<text name="info_price_label">
 		Cena:
 	</text>
-	<text name="info_price">
+	<text name="info_price" left_delta="62">
 		1500 L$, obiekty wliczone
 	</text>
-	<text name="info_action">
+	<text name="info_action" width="350">
 		Zakup tej Posiadłości spowoduje:
 	</text>
 	<text name="error_message">
diff --git a/indra/newview/skins/default/xui/pl/floater_color_picker.xml b/indra/newview/skins/default/xui/pl/floater_color_picker.xml
index d6ffe1837ab9e8e3ad8c484d0231e06516ecb868..a380423cdf92104ea2120cba882ff7639359b72b 100755
--- a/indra/newview/skins/default/xui/pl/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_color_picker.xml
@@ -26,6 +26,6 @@
 		Obecny Kolor:
 	</text>
 	<text name="(Drag below to save.)">
-		(PrzeciÄ…gnij tutaj)
+		(PrzeciÄ…gnij tutaj.)
 	</text>
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_critical.xml b/indra/newview/skins/default/xui/pl/floater_critical.xml
index a6558ae92bc13d0bb293a1c27c3d2014e0d722d1..c761c6f3e9627ddc3bfd7d60cada45103b64f14d 100755
--- a/indra/newview/skins/default/xui/pl/floater_critical.xml
+++ b/indra/newview/skins/default/xui/pl/floater_critical.xml
@@ -3,7 +3,7 @@
 	<button label="Kontynuuj" label_selected="Kontynuuj" name="Continue" />
 	<button label="Anuluj" label_selected="Anuluj" name="Cancel" />
 	<text name="tos_heading">
-		Proszę przeczytać poniższą wiadomość ostrożnie
+		Proszę przeczytać poniższą wiadomość ostrożnie.
 	</text>
 	<text_editor name="tos_text">
 		TOS_TEXT
diff --git a/indra/newview/skins/default/xui/pl/floater_customize.xml b/indra/newview/skins/default/xui/pl/floater_customize.xml
index 0649d33aa460c99efa7773fed4ccb1e350069f1a..189c498bea4ed6847fd7c921a977e1f26bc874be 100755
--- a/indra/newview/skins/default/xui/pl/floater_customize.xml
+++ b/indra/newview/skins/default/xui/pl/floater_customize.xml
@@ -3,7 +3,7 @@
 	<tab_container name="customize tab container">
 		<panel label="Części Ciała" name="body_parts_placeholder" />
 		<panel label="Kształt" name="Shape">
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 			<button label="Ciało" label_selected="Ciało" name="Body" />
 			<button label="Głowa" label_selected="Głowa" name="Head" />
 			<button label="Oczy" label_selected="Oczy" name="Eyes" />
@@ -48,7 +48,7 @@ z plików roboczych. --&gt; (Kliknij na Nowy Kształt)
 			<button label="Nowy Kształt" label_selected="Nowy Kształt" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
 		</panel>
 		<panel label="Skórka" name="Skin">
 			<button label="Kolor Skórki" label_selected="Kolor Skórki" name="Skin Color" />
@@ -88,8 +88,8 @@ z plików roboczych. --&gt; (Kliknij na Nowa Skórka)
 			<button label="Nowa Skórka" label_selected="Nowa Skórka" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Włosy" name="Hair">
 			<button label="Kolor" label_selected="Kolor" name="Color" />
@@ -119,13 +119,13 @@ z plików roboczych. --&gt; (Kliknij na Nowe Włosy)
 			<text type="string" length="1" name="no modify instructions">
 				Nie posiadasz prawa do modyfikowania tych włosów.
 			</text>
-			<texture_picker label="Texture" name="Texture" tool_tip="Kliknij by wybrać teksturę" />
+			<texture_picker label="Tekstura" name="Texture" tool_tip="Kliknij by wybrać teksturę" />
 			<button label="Losowe" label_selected="Losowe" name="Randomize" />
 			<button label="Nowe Włosy" label_selected="Nowe Włosy" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Oczy" name="Eyes">
 			<text type="string" length="1" name="title">
@@ -151,13 +151,13 @@ z plików roboczych. --&gt; (Kliknij na Nowe Oczy)
 			<text type="string" length="1" name="no modify instructions">
 				Nie posiadasz prawa do modyfikowania tych oczów.
 			</text>
-			<texture_picker label="Iris" name="Iris" tool_tip="Kliknij by wybrać teksturę" />
+			<texture_picker label="Tęczówka" name="Iris" tool_tip="Kliknij by wybrać teksturę" />
 			<button label="Losowe" label_selected="Losowe" name="Randomize" />
 			<button label="Nowe Oczy" label_selected="Nowe Oczy" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Ubrania" name="clothes_placeholder" />
 		<panel label="Koszula" name="Shirt">
@@ -166,8 +166,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Oczy)
 			<button label="Nowa Koszula" label_selected="Nowa Koszula" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 			<text type="string" length="1" name="title">
 				[DESC]
 			</text>
@@ -198,8 +198,8 @@ z plików roboczych. --&gt; (Kliknij na Nowa Koszula)
 			<button label="Nowe Spodnie" label_selected="Nowe Spodnie" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 			<text type="string" length="1" name="title">
 				[DESC]
 			</text>
@@ -253,8 +253,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Buty)
 			<button label="Nowe Buty" label_selected="Nowe Buty" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Skarpety" name="Socks">
 			<text type="string" length="1" name="title">
@@ -285,8 +285,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Skarpety)
 			<button label="Nowe Skarpety" label_selected="Nowe Skarpety" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Kurtka" name="Jacket">
 			<text type="string" length="1" name="title">
@@ -312,15 +312,14 @@ z plików roboczych. --&gt; (Kliknij na Nowa Kurtka)
 			<text type="string" length="1" name="no modify instructions">
 				Nie posiadasz prawa do modyfikowania tej kurtki.
 			</text>
-			<texture_picker label="Górny Materiał" name="Upper Fabric"
-			     tool_tip="Kliknij by wybrać teksturę" />
-			<texture_picker label="Dolny Materiał" name="Lower Fabric" tool_tip="Kliknij by wybrać kolor" />
-			<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
+			<texture_picker label="Górny Materiał" name="Upper Fabric" tool_tip="Kliknij by wybrać teksturę" width="76"/>
+			<texture_picker label="Dolny Materiał" name="Lower Fabric" tool_tip="Kliknij by wybrać kolor" width="76"/>
+			<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" width="76"/>
 			<button label="Nowa Kurtka" label_selected="Nowa Kurtka" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Rękawiczki" name="Gloves">
 			<text type="string" length="1" name="title">
@@ -351,8 +350,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Rękawiczki)
 			<button label="Nowe Rękawiczki" label_selected="Nowe Rękawiczki" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Podkoszulek" name="Undershirt">
 			<text type="string" length="1" name="title">
@@ -383,8 +382,8 @@ z plików roboczych. --&gt; (Kliknij na Nowy Podkoszulek)
 			<button label="Nowy Podkoszulek" label_selected="Nowy Podkoszulek" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Bielizna" name="Underpants">
 			<text type="string" length="1" name="title">
@@ -415,8 +414,8 @@ z plików roboczych. --&gt; (Kliknij na Nowa Bielizna)
 			<button label="Nowa Bielizna" label_selected="Nowa Bielizna" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 		<panel label="Spódnica" name="Skirt">
 			<text type="string" length="1" name="title">
@@ -447,11 +446,11 @@ z plików roboczych. --&gt; (Kliknij na Nowa Spódnica)
 			<button label="Nowa Spódnica" label_selected="Nowa Spódnica" name="Create New" />
 			<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
 			<button label="Zapisz" label_selected="Zapisz" name="Save" />
-			<button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
-			<button label="Przywróć" label_selected="Przywróć" name="Revert" />
+			<button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+			<button label="Wróć" label_selected="Wróć" name="Revert" />
 		</panel>
 	</tab_container>
 	<button label="Zamknij" label_selected="Zamknij" name="Close" />
-	<button label="Zapisz Wszystko" label_selected="Zapisz Wszystko" name="Save All" />
+	<button label="Zapisz WyglÄ…d" label_selected="Zapisz WyglÄ…d" name="Save All" />
 	<button label="Stwórz Ubranie" label_selected="Stwórz Ubranie" name="Make Outfit" />
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
index 5f376f5cf30c22694ee3e7ba363ab330ae6e650c..6f2dc69d8e05fb0a0171b5ae2eee3c8805cad281 100755
--- a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
@@ -86,8 +86,8 @@
 			<text type="string" length="1" name="DayCycleText3">
 				WyglÄ…d:
 			</text>
-			<button label="Patrz" label_selected="Patrz" name="WLAnimSky" />
-			<button label="Wyłącz" label_selected="Wyłącz" name="WLStopAnimSky" />
+			<button label="Start" label_selected="Start" name="WLAnimSky" />
+			<button label="Stop" label_selected="Stop" name="WLStopAnimSky" />
 			<button label="Używaj Czasu Regionu" label_selected="Używaj Czasu Regionu"
 			     name="WLUseLindenTime" />
 			<button label="Zapisz Test Dnia" label_selected="Zapisz Test Dnia"
diff --git a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
index f05456b4c5bfdf63d3f3681f61e22d7b626a5d4a..010537d5555d0fb3ae772be266c73c32eb1c4984 100755
--- a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Hardware Settings Floater" title="Ustawienia Dysku Twardego">
+<floater name="Hardware Settings Floater" title="Ustawienia Sprzętowe">
 	<text type="string" length="1" name="Filtering:">
 		Filtrowanie:
 	</text>
@@ -7,7 +7,7 @@
 	<text type="string" length="1" name="Antialiasing:">
 		Antialiasing:
 	</text>
-	<combo_box label="Antialiasing" name="fsaa">
+	<combo_box label="Antialiasing" name="fsaa" width="84">
 		<combo_item name="FSAADisabled">
 			Wyłączone
 		</combo_item>
@@ -26,7 +26,7 @@
 	</combo_box>
 	<spinner label="Gamma:" name="gamma" />
 	<text type="string" length="1" name="(brightness, lower is brighter)">
-		(jaskrawość, jasny, 0=domyślny)
+		(jaskrawość, mniej jest jaśniej, 0=domyślny)
 	</text>
 	<text type="string" length="1" name="Enable VBO:">
 		Włącz VBO:
diff --git a/indra/newview/skins/default/xui/pl/floater_image_preview.xml b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
index 620c3f41246742260f0f8357e7a1ae20ef4316c6..9772dc780818d2857be278812a1fa75ec6c5b845 100755
--- a/indra/newview/skins/default/xui/pl/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
@@ -38,15 +38,15 @@
 			Spódnica
 		</combo_item>
 		<combo_item name="SculptedPrim">
-			Prim Rzeźbiony
+			Sculpt
 		</combo_item>
 	</combo_box>
 	<text name="bad_image_text">
-		Unable to read image.
+		Nie można wczytać obrazu.
 
-Próbuj zachować obraz jako 24 bit Targa (.tga).
+Spróbuj zapisać obraz jako 24 bitową Targa (.tga).
 	</text>
-	<check_box label="Use lossless compression" name="lossless_check" />
+	<check_box label="Użyj kompresji bez strat" name="lossless_check" />
 	<button label="Anuluj" name="cancel_btn" />
-	<button label="Załaduj (L$[AMOUNT])" name="ok_btn" />
+	<button label="Załaduj ([AMOUNT]L$)" name="ok_btn" />
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_inspect.xml b/indra/newview/skins/default/xui/pl/floater_inspect.xml
index f9f76d286f940dc1056872fc18baef1198552b8e..1efdced5278fd3aa54345237df9605e0a387bfb4 100755
--- a/indra/newview/skins/default/xui/pl/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inspect.xml
@@ -6,8 +6,8 @@
 		<column label="Twórca" name="creator_name" />
 		<column label="Data Kreacji" name="creation_date" />
 	</scroll_list>
-	<button label="Zobacz Profil Właściciela..." label_selected="" name="button owner"
+	<button label="Profil Właściciela..." label_selected="" name="button owner"
 	     tool_tip="" />
-	<button label="Zobacz Profil Twórcy..." label_selected="" name="button creator"
+	<button label="Profil Twórcy..." label_selected="" name="button creator"
 	     tool_tip="" />
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_joystick.xml b/indra/newview/skins/default/xui/pl/floater_joystick.xml
index 918486a8473948e01ed404674506ee887dc10e66..bb98868ae05d5fe0e25989e307a7781cb54a0efe 100755
--- a/indra/newview/skins/default/xui/pl/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/pl/floater_joystick.xml
@@ -109,7 +109,7 @@
 		Martwa Ogniskowa
 	</text>
 	<spinner label="" name="FlycamAxisDeadZone6"/>
-	<button label="Ustawienia Domyślne Nawigatora Przestrzeni" name="SpaceNavigatorDefaults"/>
+	<button label="Ustawienia Domyślne" name="SpaceNavigatorDefaults"/>
 	<button label="OK" label_selected="OK" name="ok_btn"/>
 	<button label="Anuluj" label_selected="Anuluj" name="cancel_btn"/>
 	<string name="JoystickMonitor">
diff --git a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
index 1763d143f589d63ab1fafe7e61d3482c653180c7..79165b51256a7b5af3d718787918e19725731588 100755
--- a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
@@ -18,7 +18,7 @@
 		<column label="Obszar" name="area" />
 	</scroll_list>
 	<text name="allowed_label">
-		Dozwolone udziały w Posiadłościach przy obecnym planie płatności:
+		Dozwolone udziały przy obecnym planie płatności:
 	</text>
 	<text name="allowed_text">
 		[AREA] metrów
diff --git a/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
index 46c75269e359d24d1f1552d034e72ff8b43e4d29..94efd7afcb3eb199a6f8c18d48407511405b7926 100755
--- a/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="script ed float" title="Skrypt: Nowy Skrypt">
 	<button label="Zresetuj" label_selected="Zresetuj" name="Reset" />
-	<check_box label="Włączony" name="running" />
+	<check_box label="Włącz" name="running" />
 	<check_box label="Mono" name="mono" />
 	<string name="not_allowed">
 		Nie masz praw by widzieć zawartość tego skryptu.
 	</string>
 	<string name="script_running">
-		Włączony
+		Włącz
 	</string>
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_media_browser.xml b/indra/newview/skins/default/xui/pl/floater_media_browser.xml
index 851f20add177a5a4addfd30aefad2cb5648d8a02..2fb4287d900a77303fd03059f643cc713df66d27 100755
--- a/indra/newview/skins/default/xui/pl/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/pl/floater_media_browser.xml
@@ -11,7 +11,7 @@
 			<button label="Wyślij Obecny URL do Posiadłości" name="assign" />
 		</layout_panel>
 		<layout_panel name="external_controls">
-			<button label="Open in My Web Browser" name="open_browser" />
+			<button label="Użyj Mojej Przeglądarki" name="open_browser" />
 			<check_box label="Zawsze otwieraj w mojej przeglÄ…darce internetowej" name="open_always" />
 			<button label="Zamknij" name="close" />
 		</layout_panel>
diff --git a/indra/newview/skins/default/xui/pl/floater_pay.xml b/indra/newview/skins/default/xui/pl/floater_pay.xml
index 154d2fc888cafc62274c63d521898a54bd1017b8..70358909f234f9a0a5693f91bdb8f50c6295b334 100755
--- a/indra/newview/skins/default/xui/pl/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay.xml
@@ -12,10 +12,11 @@
 	<text type="string" length="1" name="payee_name">
 		[FIRST] [LAST]
 	</text>
-	<text type="string" length="1" name="fastpay text">
+	<text type="string" length="1" name="fastpay text" halign="left" left="12">
 		Szybka Zapłata:
 	</text>
 	<text type="string" length="1" name="amount text">
 		Suma:
 	</text>
+	<line_editor left="52" name="amount" />
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_pay_object.xml b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
index ed0ef0fef867c0591a13c1fa5e6f5eeae8eb4140..97c87d55d357295c17d8838dd01cc54c99c1c9f2 100755
--- a/indra/newview/skins/default/xui/pl/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
@@ -1,30 +1,31 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="Give Money" title="">
-	<text type="string" length="1" name="payee_group">
+	<text type="string" length="1" name="payee_group" width="100" halign="left">
 		Zapłać Grupie:
 	</text>
-	<text type="string" length="1" name="payee_resident">
+	<text type="string" length="1" name="payee_resident" width="120" halign="left" >
 		Zapłać Rezydentowi:
 	</text>
-	<text type="string" length="1" name="payee_name">
+	<text type="string" length="1" name="payee_name" left="125">
 		[FIRST] [LAST]
 	</text>
-	<text type="string" length="1" name="object_name_label">
+	<text type="string" length="1" name="object_name_label" left="5"  width="95" halign="left">
 		Poprzez Obiekt:
 	</text>
-	<text type="string" length="1" name="object_name_text">
+	<text type="string" length="1" name="object_name_text" left="105" >
 		...
 	</text>
-	<text type="string" length="1" name="fastpay text">
+	<text type="string" length="1" name="fastpay text" width="95" halign="left">
 		Szybka Zapłata:
 	</text>
-	<text type="string" length="1" name="amount text">
+	<text type="string" length="1" name="amount text" left="5" halign="left">
 		Suma:
 	</text>
-	<button label="L$1" label_selected="L$1" name="fastpay 1" />
-	<button label="L$5" label_selected="L$5" name="fastpay 5" />
-	<button label="L$10" label_selected="L$10" name="fastpay 10" />
-	<button label="L$20" label_selected="L$20" name="fastpay 20" />
+	<button label="L$1" label_selected="L$1" name="fastpay 1" left="105"/>
+	<button label="L$5" label_selected="L$5" name="fastpay 5" left="190"/>
+	<button label="L$10" label_selected="L$10" name="fastpay 10" left="105"/>
+	<button label="L$20" label_selected="L$20" name="fastpay 20" left="190"/>
 	<button label="Zapłać" label_selected="Zapłać" name="pay btn" />
 	<button label="Anuluj" label_selected="Anuluj" name="cancel btn" />
+	<line_editor left="50" name="amount" width="50" />
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
index abfa39b7f397fa297664726ec4cb84377081bb30..d6752223f9c9fc6a1e439190d6e6fe19ee7f2198 100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
@@ -4,7 +4,7 @@
 		Opis:
 	</text>
 	<button label="Używaj w Świecie" label_selected="Stop" name="Anim play btn"
-	     tool_tip="Animacja będzie widoczna dla wszystkich." />
+	     tool_tip="Animacja będzie widoczna dla wszystkich."  width="131" left="20"/>
 	<button label="Używaj lokalnie" label_selected="Stop" name="Anim audition btn"
-	     tool_tip="Animacja będzie widoczna tylko dla Ciebie." />
+	     tool_tip="Animacja będzie widoczna tylko dla Ciebie." width="125" left="162"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
index 3797740a9514a877a5099add99d7bbb7846d663f..7b907d3315cc3804d86a03d45e1e337967fd14c3 100755
--- a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
@@ -23,7 +23,7 @@
 	<text name="select_object_label">
 		Kliknij na przycisk, a pózniej na obiekt:
 	</text>
-	<button label="" label_selected="" name="pick_btn" tool_tip="Wybór obiektu - identyfikacja obiektu jako źródło raportu"/>
+	<button label="" label_selected="" name="pick_btn" tool_tip="Wybór obiektu - wybierz obiekt, którego dotyczy raport"/>
 	<text name="object_name_label">
 		Nazwa:
 	</text>
@@ -36,7 +36,7 @@
 	<text name="owner_name">
 		Hendrerit Vulputate
 	</text>
-	<combo_box name="category_combo" tool_tip="Kategoria -- wybierz kategorię, która najlepiej opisuje materię tego raportu">
+	<combo_box name="category_combo" tool_tip="Wybór kategorii - wybierz kategorię, której dotyczy raport">
 		<combo_item name="Select_category">
 			Wybierz KategoriÄ™:
 		</combo_item>
@@ -59,7 +59,7 @@
 			Napaść &gt; Piaskownica do testowania broni
 		</combo_item>
 		<combo_item name="Commerce__Failure_to_deliver_product_or_service">
-			Handel &gt; Niedostarczenie produktu lub uslugi
+			Handel &gt; Niedostarczenie produktu lub usługi
 		</combo_item>
 		<combo_item name="Disclosure__Real_world_information">
 			Naruszenie tajemnicy &gt; Informacje z rzeczywistego świata
@@ -110,22 +110,22 @@
 			Prześladowanie &gt; Molestowanie seksualne
 		</combo_item>
 		<combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
-			Prześladowanie &gt; Namawianie/zachęcanie innych do łamania Warunków Umowy (Terms of Service)
+			Prześladowanie &gt; Namawianie/zachęcanie innych do łamania Warunków Umowy (ToS)
 		</combo_item>
 		<combo_item name="Harassment__Verbal_abuse">
 			Prześladowanie &gt; Znieważanie słowne
 		</combo_item>
 		<combo_item name="Indecency__Broadly_offensive_content_or_conduct">
-			Nieprzyzwoitość &gt; Bardzo obraźliwa treść lub postępowanie
+			Nieprzyzwoitość &gt; Generalnie obraźliwa treść lub postępowanie
 		</combo_item>
 		<combo_item name="Indecency__Broadly_visible_mature_content">
-			Nieprzyzwoitość &gt; Bardzo widoczna treść dla dorosłych
+			Nieprzyzwoitość &gt; Generalnie widoczna treść dla dorosłych
 		</combo_item>
 		<combo_item name="Indecency__Inappropriate_avatar_name">
 			Nieprzyzwoitość &gt; Niestosowne imię awatara
 		</combo_item>
 		<combo_item name="Indecency__Mature_content_in_PG_region">
-			Nieprzyzwoitość &gt; Zawartość dla dorosłych (18+) w regionie dla wszystkich (BO)
+			Nieprzyzwoitość &gt; Treść dla dorosłych (18+) w regionie dla wszystkich (BO)
 		</combo_item>
 		<combo_item name="Intellectual_property_infringement_Content_Removal">
 			Naruszenie praw autorskich &gt; Usunięcie Treści
@@ -172,12 +172,12 @@
 		Szczegóły:
 	</text>
 	<text name="bug_aviso">
-		Proszę zachować specyfikę daty, miejsca, 
-materii nadużycia, fragmentów czatu/IM oraz obiektów.
+		Podaj datę, miejsce, kategorię nadużycia, fragmenty
+czatu/IM, dane obiektów.
 	</text>
 	<text_editor name="details_edit"/>
 	<text name="incomplete_title">
-		Pamiętaj: Niedokończone raporty nie podlegają inwestygacji!
+		Pamiętaj: Niedokończone raporty nie będą rozpatrywane!
 	</text>
 	<button label="Anuluj" label_selected="Anuluj" name="cancel_btn"/>
 	<button label="Wyślij" label_selected="Wyślij" name="send_btn"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
index 0dafbe5551a9108700cd80c8a9b8a0d85110b843..8a330eb9d3313bf200e13e5df9be65c01c37b9d9 100755
--- a/indra/newview/skins/default/xui/pl/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
@@ -108,8 +108,8 @@
 			BMP
 		</combo_item>
 	</combo_box>
-	<spinner label="Szer" name="snapshot_width"/>
-	<spinner label="Wys" name="snapshot_height"/>
+	<spinner label="Szer." name="snapshot_width"/>
+	<spinner label="Wys." name="snapshot_height"/>
 	<check_box label="Ograniczone Proporcje" name="keep_aspect_check"/>
 	<slider label="Jakość Zdjęcia" name="image_quality_slider"/>
 	<text name="layer_type_label">
diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml
index 8e17e9cf5092872ee32748f76820aeb725435445..212b7e08f0e995f874b08b0830b5a044aa802aa0 100755
--- a/indra/newview/skins/default/xui/pl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tools.xml
@@ -20,19 +20,19 @@
 	<check_box label="Obróć (Ctrl)" name="radio rotate"/>
 	<check_box label="RozciÄ…gnij (Ctrl-Shift)" name="radio stretch"/>
 	<check_box label="Wybierz TeksturÄ™" name="radio select face"/>
-	<check_box label="Edytuj Zlinkowane Części" name="checkbox edit linked parts"/>
+	<check_box label="Edytuj Połączone Części" name="checkbox edit linked parts"/>
 	<text name="text ruler mode">
-		Tryb Linijki:
+		Linijka:
 	</text>
 	<combo_box name="combobox grid mode">
 		<combo_item name="World">
 			Åšwiat
 		</combo_item>
 		<combo_item name="Local">
-			Lokalnie
+			Lokalna
 		</combo_item>
 		<combo_item name="Reference">
-			Odniesienia
+			Względna
 		</combo_item>
 	</combo_box>
 	<check_box label="RozciÄ…gnij 2 Strony" name="checkbox uniform"/>
@@ -59,7 +59,7 @@
 	<button label="" label_selected="" name="ToolRing" tool_tip="Pierścień"/>
 	<button label="" label_selected="" name="ToolTree" tool_tip="Drzewo"/>
 	<button label="" label_selected="" name="ToolGrass" tool_tip="Trawa"/>
-	<check_box label="Zostaw Narzędzia Wybrane" name="checkbox sticky"/>
+	<check_box label="Pamiętaj Wybrane Narzędzia" name="checkbox sticky"/>
 	<check_box label="Kopiuj SelekcjÄ™" name="checkbox copy selection"/>
 	<check_box label="Kopia Åšrodka" name="checkbox copy centers"/>
 	<check_box label="Kopia Obrotu" name="checkbox copy rotates"/>
@@ -169,10 +169,10 @@
 			</text>
 			<combo_box name="clickaction">
 				<combo_item name="Touch/grab(default)">
-					Dotknij/chwyć (ustawienie domyślne)
+					Dotknij (domyślne)
 				</combo_item>
 				<combo_item name="Sitonobject">
-					Usiądź na Obiekt
+					Usiądź na Obiekcie
 				</combo_item>
 				<combo_item name="Buyobject">
 					Kup Obiekt
@@ -247,9 +247,9 @@
 			<text name="edit_object">
 				Edytuj parametry obiektu:
 			</text>
-			<check_box label="Zablokowane" name="checkbox locked" tool_tip="Chroni obiekty przed ich przesunięciem lub usunięciem. Pomocne także w czasie budowania by uniknąc niepotrzebnych edycji."/>
-			<check_box label="Fizyczne" name="Physical Checkbox Ctrl" tool_tip="Umożliwia obcność sił grawitacyjnych i oddziaływania pomiędzy obiektami."/>
-			<check_box label="Tymczasowe" name="Temporary Checkbox Ctrl" tool_tip="Umożliwia usunięcie obiektu po 1 minucie od jego stworzenia."/>
+			<check_box label="Zablokowany" name="checkbox locked" tool_tip="Chroni obiekty przed ich przesunięciem lub usunięciem. Pomocne także w czasie budowania by uniknąc niepotrzebnych edycji."/>
+			<check_box label="Fizyczny" name="Physical Checkbox Ctrl" tool_tip="Umożliwia obcność sił grawitacyjnych i oddziaływania pomiędzy obiektami."/>
+			<check_box label="Tymczasowy" name="Temporary Checkbox Ctrl" tool_tip="Umożliwia usunięcie obiektu po 1 minucie od jego stworzenia."/>
 			<check_box label="Fantom" name="Phantom Checkbox Ctrl" tool_tip="Umożliwia zanik kolizji pomiędzy obiektami a awatarami."/>
 			<text name="label position">
 				Pozycja (metry)
@@ -448,14 +448,14 @@
 			<texture_picker label="Tekstura" name="texture control" tool_tip="Kliknij by wybrać obraz"/>
 			<color_swatch label="Kolor" name="colorswatch" tool_tip="Kliknij by wybrać kolor"/>
 			<text name="color trans">
-				Transparencja %
+				Przejrzystość %
 			</text>
 			<spinner name="ColorTrans"/>
 			<text name="glow label">
 				Blask
 			</text>
 			<spinner name="glow"/>
-			<check_box label="Jasność" name="checkbox fullbright"/>
+			<check_box label="Jaskrawość" name="checkbox fullbright"/>
 			<text name="tex gen">
 				Mapowanie
 			</text>
@@ -555,26 +555,26 @@
 			</text>
 			<spinner name="TexRot"/>
 			<string name="string repeats per meter">
-				Powtórzenia /metr
+				Powtórzenia / m
 			</string>
 			<string name="string repeats per face">
-				Powtórzenia /powierzchnia
+				Powtórzenia
 			</string>
 			<text name="rpt">
-				Powtórzenia /metr
+				Powtórzenia / m
 			</text>
 			<spinner name="rptctrl"/>
 			<button label="Zastosuj" label_selected="Zastosuj" name="button apply"/>
 			<text name="tex offset">
-				Wyrównanie
+				Dopasowanie
 			</text>
 			<spinner label="Poziome (U)" name="TexOffsetU"/>
 			<spinner label="Pionowe (V)" name="TexOffsetV"/>
 			<text name="textbox autofix">
-				Wyrównaj Teksturę Mediów
-(must load first)
+				Dopasuj Teksturę Mediów
+(najpierw załaduj)
 			</text>
-			<button label="Wyrównaj" label_selected="Wyrównaj" name="button align"/>
+			<button label="Dopasuj" label_selected="Dopasuj" name="button align"/>
 		</panel>
 		<panel label="Treść" name="Contents">
 			<button label="Nowy Skrypt..." label_selected="Nowy Skrypt..." name="button new script"/>
@@ -607,7 +607,7 @@
 		Kliknij i przytrzymaj żeby modyfikować teren
 	</string>
 	<string name="status_camera">
-		Kliknij i przeciągnij by zmienić widok
+		Kliknij i przeciągnij żeby zmienić widok
 	</string>
 	<string name="status_grab">
 		Opcje:
@@ -622,13 +622,13 @@
 		Widok
 	</string>
 	<string name="grid_local_text">
-		Lokalnie
+		Lokalna
 	</string>
 	<string name="grid_world_text">
 		Åšwiat
 	</string>
 	<string name="grid_reference_text">
-		Odniesienia
+		Względa
 	</string>
 	<string name="grid_attachment_text">
 		Załączniki
diff --git a/indra/newview/skins/default/xui/pl/floater_url_entry.xml b/indra/newview/skins/default/xui/pl/floater_url_entry.xml
index af9d0c799709642d085cfbba26f33477878e082c..fc170d8d1b4d4fc5105cc266e5e4288ee21fd64d 100755
--- a/indra/newview/skins/default/xui/pl/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/pl/floater_url_entry.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="url_entry" title="">
 	<text name="media_label">
-		Media URL:
+		URL Mediów:
 	</text>
 	<button label="OK" name="ok_btn" />
 	<button label="Anuluj" name="cancel_btn" />
diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml
index 3a521df09886aadb235261feb6126f7c1f6ad9eb..107a6a7aeaf4055af4a762841ce101e3ba427392 100755
--- a/indra/newview/skins/default/xui/pl/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml
@@ -82,7 +82,7 @@
 		<menu_item_check label="Właściciele Posiadłości" name="Land Owners"/>
 		<menu_item_separator label="-----------" name="separator4"/>
 		<menu label="Podpowiedzi" name="Hover Tips">
-			<menu_item_check label="Tutorial" name="Show Tips"/>
+			<menu_item_check label="Pokaż Podpowiedzi" name="Show Tips"/>
 			<menu_item_separator label="-----------" name="separator"/>
 			<menu_item_check label="Posiadłość: wskazówki" name="Land Tips"/>
 			<menu_item_check label="Obiekty: wskazówki" name="Tips On All Objects"/>
@@ -109,10 +109,10 @@
 		<menu_item_separator label="-----------" name="separator2"/>
 		<menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home"/>
 		<menu_item_separator label="-----------" name="separator3"/>
-		<menu_item_call label="Włącz Tryb Nieobecności" name="Set Away"/>
-		<menu_item_call label="Włącz Tryb Pracusia" name="Set Busy"/>
+		<menu_item_call label="Åšpij" name="Set Away"/>
+		<menu_item_call label="Pracuj" name="Set Busy"/>
 		<menu_item_call label="Zatrzymaj Wszystkie Animacje" name="Stop All Animations"/>
-		<menu_item_call label="Release Keys" name="Release Keys"/>
+		<menu_item_call label="Zwolnij Klawisze" name="Release Keys"/>
 		<menu_item_separator label="-----------" name="separator4"/>
 		<menu_item_call label="Historia Konta..." name="Account History..."/>
 		<menu_item_call label="ZarzÄ…dzaj Kontem..." name="Manage My Account..."/>
@@ -176,7 +176,7 @@
 	</menu>
 	<menu label="Pomoc" name="Help">
 		<menu_item_call label="Second Life: Pomoc" name="Second Life Help"/>
-		<menu_item_call label="Tutorial" name="Tutorial"/>
+		<menu_item_call label="Samouczek" name="Tutorial"/>
 		<menu_item_separator label="-----------" name="separator"/>
 		<menu_item_call label="Oficjalny Blog Second Life..." name="Official Linden Blog..."/>
 		<menu_item_separator label="-----------" name="separator2"/>
@@ -196,6 +196,6 @@
 			<menu_item_separator label="-----------" name="separator9"/>
 			<menu_item_call label="Wyślij Raport Błędu..." name="Report Bug..."/>
 		</menu>
-		<menu_item_call label="About Second Life..." name="About Second Life..."/>
+		<menu_item_call label="O Second Life..." name="About Second Life..."/>
 	</menu>
 </menu_bar>
diff --git a/indra/newview/skins/default/xui/pl/panel_friends.xml b/indra/newview/skins/default/xui/pl/panel_friends.xml
index 7f0fe82bc7837426abedcaaf790d80bd0bef1691..d58aa897db1780e8789a91cd5a7f54193af6774b 100755
--- a/indra/newview/skins/default/xui/pl/panel_friends.xml
+++ b/indra/newview/skins/default/xui/pl/panel_friends.xml
@@ -8,20 +8,20 @@
 		<column name="icon_online_status" tool_tip="Status dostępności" />
 		<column label="ImiÄ™" name="friend_name" tool_tip="ImiÄ™" />
 		<column name="icon_visible_online"
-		     tool_tip="Znajoma osoba może widzieć czy jesteś w Second Life" />
+		     tool_tip="Ta osoba może widzieć czy jesteś w Second Life" />
 		<column name="icon_visible_map"
-		     tool_tip="Znajoma osoba może zlokalizować Cię na mapie" />
+		     tool_tip="Ta osoba może zlokalizować Cię na mapie" />
 		<column name="icon_edit_mine"
-		     tool_tip="Znajoma osoba może edytować, usunąć lub wziąść Twoje obiekty" />
-		<column name="icon_edit_theirs" tool_tip="Możesz edytować obiekty tej znajomej osoby" />
+		     tool_tip="Ta osoba może edytować, usunąć lub wziąść Twoje obiekty" />
+		<column name="icon_edit_theirs" tool_tip="Możesz edytować obiekty tej osoby" />
 	</scroll_list>
 	<button label="Czat/IM" name="im_btn" tool_tip="Rozpocznij sesjÄ™ czatu/IM" />
 	<button label="Profil" name="profile_btn"
 	     tool_tip="Pokaż zdjęcia, grupy i inne informacje" />
 	<button label="Teleportuj..." name="offer_teleport_btn"
-	     tool_tip="Zaoferuj teleportacjÄ™ do Twojej obecnej lokalizacji" />
+	     tool_tip="Zaoferuj teleportacjÄ™ do siebie" />
 	<button label="Zapłać..." name="pay_btn" tool_tip="Zapłać L$ tej osobie" />
 	<button label="Usuń..." name="remove_btn"
 	     tool_tip="Usuń tę osobę z listy znajomych" />
-	<button label="Dodaj..." name="add_btn" tool_tip="Zaoferuj przyjaźń" />
+	<button label="Dodaj..." name="add_btn" tool_tip="Zaproponuj znajomość" />
 </panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
index 8f767a7393fcd9eddafaf8b42691dd0d9848f245..98660b3f6e11853f67cccb59636046db25a4fd21 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
@@ -4,7 +4,7 @@
 		Posiadłości należące go Grupy są wymienione z danymi
 o kontrybucjach. Ostrzeżenie pojawia się w momencie
 kiedy używa się mniej Posiadłości od Kontrybucji.
-Zakładki Planowanie, Szczegóły i Sprzedaż zawierają
+Zakładki Szczegóły i Sprzedaż zawierają
 informacje o finansach Grupy.
 	</string>
 	<button label="?" name="help_button" />
diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml
index 25efd9a5edcb1e32141d5f0cf54865c3f86915f3..a0887f461d2cf9a5fe6aeaa1e8f447c7c30bc9ce 100755
--- a/indra/newview/skins/default/xui/pl/panel_login.xml
+++ b/indra/newview/skins/default/xui/pl/panel_login.xml
@@ -20,7 +20,7 @@
 	</text>
 	<combo_box name="start_location_combo">
 		<combo_item name="MyHome">
-			Miejsce Startu
+			Mój Start
 		</combo_item>
 		<combo_item name="MyLastLocation">
 			Ostatnie Miejsce
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index 47b7165f01c3ba74a0468da2ac2e3c0cac297b37..34b77c8e31b7776e2f223773a43625b25f5b5b05 100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -2,7 +2,7 @@
 <panel label="Ogólne" name="general_panel">
 	<radio_group name="default_start_location">
 		<radio_item name="MyHome" tool_tip="Domyślnie loguj mnie do mojego miejsca startu.">
-			Miejsce Startu
+			Mój Start
 		</radio_item>
 		<radio_item name="MyLastLocation" tool_tip="Domyślnie loguj mnie do ostatnio odwiedzonego miejsca.">
 			Ostatnie Miejsce
@@ -33,7 +33,7 @@
 	</text>
 	<slider name="ui_scale_slider"/>
 	<check_box label="Używaj Skali Nizależnej od Rozdzielczości" name="ui_auto_scale"/>
-	<spinner label="Tryb Nieobecności:" name="afk_timeout_spinner"/>
+	<spinner label="Zasypiaj w:" name="afk_timeout_spinner"/>
 	<check_box label="Obracaj Mini-MapÄ™" name="rotate_mini_map_checkbox"/>
 	<check_box label="Powiadamiaj o Wydatkach i Zarobkach (L$)" name="notify_money_change_checkbox"/>
 	<check_box label="Używaj Domyślnej Selekcji Koloru" name="use_system_color_picker_checkbox" tool_tip="Używaj domyślnej / systemowej selekcji koloru"/>
@@ -81,7 +81,7 @@
 			English (Angielski)
 		</combo_item>
 		<combo_item length="1" name="Chinese" type="string">
-			汉语/漢語 (Chiński) - Beta
+			中文 (简体) (Chiński) - Beta
 		</combo_item>
 		<combo_item length="1" name="Deutsch(German)" type="string">
 			Deutsch (Niemiecki) - Beta
diff --git a/indra/newview/skins/default/xui/pl/panel_region_debug.xml b/indra/newview/skins/default/xui/pl/panel_region_debug.xml
index 0dabd2a00cb76ba3f53a9964aa57b415d216a831..fe7b554a13c32adf9625ce6cd0edeade9ff7ef33 100755
--- a/indra/newview/skins/default/xui/pl/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_debug.xml
@@ -30,7 +30,7 @@
 	<check_box label="Odeślij wyłącznie obiekty które są na posiadłościach innych osób" name="return_other_land" tool_tip="Odeślij wyłącznie obiekty które są na posiadłościach innych osób"/>
 	<check_box label="Odeślij obiekty z wszystkich regionów w tym majątku" name="return_estate_wide" tool_tip="Odeślij obiekty z wszystkich regionów w tym majątku"/>
 	<button label="Odeślij" name="return_btn"/>
-	<button label="Znajdź Glówne Kolizje..." name="top_colliders_btn" tool_tip="Lista obiektów doświadczających najwięcej potencjalnych kolizji"/>
+	<button label="Znajdź Główne Kolizje..." name="top_colliders_btn" tool_tip="Lista obiektów doświadczających najwięcej potencjalnych kolizji"/>
 	<button label="?" name="top_colliders_help"/>
 	<button label="Główne Skrypty..." name="top_scripts_btn" tool_tip="Lista obiektów najdłużej wykonujących skrypty"/>
 	<button label="?" name="top_scripts_help"/>
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index 1fd7db384cb73a73b605b1fa4a80ff5b7f6c96d4..f6ae9986097e4ed344da2aeb614cd80899b46110 100755
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -207,13 +207,13 @@
 		(Edycja WyglÄ…du)
 	</string>
 	<string name="AvatarAway">
-		Tryb Nieobecności
+		Åšpi
 	</string>
 	<string name="AvatarBusy">
-		Tryb Pracusia
+		Pracuje
 	</string>
 	<string name="AvatarMuted">
-		Tryb Wyciszony
+		Wyciszony
 	</string>
 	<!-- animations -->
 	<string name="anim_express_afraid">
@@ -223,7 +223,7 @@
 		Złość
 	</string>
 	<string name="anim_away">
-		Nieobecność
+		Sen
 	</string>
 	<string name="anim_backflip">
 		Salto
diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml
index 679868f33fd454ece6671dcb3f74c4c85341df29..51064bca9cbb4607cba01f941aeb40cd62b6e395 100644
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -41,7 +41,7 @@
 			<text length="1" name="Selling with no objects in parcel." type="string">
 				A Venda (Objetos não Incluídos).
 			</text>
-			<button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" name="Cancel Land Sale"/>
+			<button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" name="Cancel Land Sale" width="165" left="275"/>
 			<text length="1" name="Claimed:" type="string">
 				Solicitado
 			</text>
@@ -60,9 +60,9 @@
 			<text length="1" name="DwellText" type="string">
 				0
 			</text>
-			<button label="Comprar Terra..." label_selected="Comprar Terra..." name="Buy Land..."/>
+			<button label="Comprar Terra..." label_selected="Comprar Terra..." name="Buy Land..." width="125" left="130"/>
 			<button label="Comprar para o Grupo..." label_selected="Comprar para o Grupo..." name="Buy For Group..."/>
-			<button label="Comprar Passe..." label_selected="Comprar Passe..." name="Buy Pass..." tool_tip="Uma passagem concede a você acesso temporário a esta terra."/>
+			<button label="Comprar Passe..." label_selected="Comprar Passe..." name="Buy Pass..." tool_tip="Uma passagem concede a você acesso temporário a esta terra." width="125" left="130"/>
 			<button label="Abandonar Terra.." label_selected="Abandonar Terra.." name="Abandon Land..."/>
 			<button label="Reclamar Terra..." label_selected="Reclamar Terra..." name="Reclaim Land..."/>
 			<button label="Linden Sale..." label_selected="Linden Sale..." name="Linden Sale..." tool_tip="A terra precisa ser proprietária, estar com o conteúdo configurado e não estar pronta para leilão."/>
@@ -252,7 +252,7 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro terreno para mostrar
 			<check_box label="Salvo (sem dano)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, desabilitando combate com danos. Se não ativado, o combate com danos é habilitado."/>
 			<check_box label="Sem Empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. A ativação dessa opção pode ser útil para prevenir comportamentos desordeiros na sua terra."/>
 			<check_box label="Mostra o Lugar na Busca (L$30/semana) sob" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/>
-			<combo_box name="land category" left="286" width="146" >
+			<combo_box name="land category" left="276" width="146" >
 				<combo_item name="AnyCategory">
 					Qualquer Categoria
 				</combo_item>
@@ -293,7 +293,7 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro terreno para mostrar
 					Outros
 				</combo_item>
 			</combo_box>
-			<button label="?" label_selected="?" name="?"/>
+			<button label="?" label_selected="?" name="?" left="426"/>
 			<check_box label="Mature content" name="MatureCheck" tool_tip="As informações do seu lote são consideradas para Adultos."/>
 			<text length="1" name="Snapshot:" type="string">
 				Foto:
@@ -349,7 +349,8 @@ Texture:
 			<texture_picker label="" name="media texture" tool_tip="Clique para escolher uma imagem" left="97"/>
 			<text name="replace_texture_help">
 				(Objetos usando esta textura, mostrarão o filme ou
-a página web depois que você clicar na seta de reproduzir.)
+a página web depois que você clicar na seta de
+reproduzir.)
 			</text>
 			<text name="Options:">
 				Mídia
@@ -359,10 +360,10 @@ Options:
 			<check_box label="Mídia em Repetição" name="media_loop" tool_tip="Executar a mídia repetidamente. Quando a mídia terminar a execução, ela reiniciará do começo."/>
 			<check_box left="97" label="Esconder a URL da Mídia" name="hide_media_url" tool_tip="Ativando esta opção, a URL da mídia se ocultará para quaisquer visualizadores não autorizados a ver esta informação do terreno. Notar que isto não está disponível para tipos HTML."/>
 			<check_box label="Esconder a URL de Música" name="hide_music_url" tool_tip="Ativando esta opção, a URL de música se esconderá para visualizadores não autorizados a ver esta informação do terreno"/>
-			<text name="media_size" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." width="105" left="102">
+			<text name="media_size" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." width="115" left="102">
 				Tamanho da mídia:
 			</text>
-			<spinner name="media_size_width" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." left_delta="89"/>
+			<spinner name="media_size_width" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." left_delta="99"/>
 			<spinner name="media_size_height" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão."/>
 			<text name="pixels">
 				pixels
diff --git a/indra/newview/skins/default/xui/pt/floater_beacons.xml b/indra/newview/skins/default/xui/pt/floater_beacons.xml
new file mode 100644
index 0000000000000000000000000000000000000000..244a7db485846d2c83d2a04967aa506a8bb81fce
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Balizas">
+	<panel name="beacons_panel">
+		<check_box label="Objetos escriptados com toque único" name="touch_only"/>
+		<check_box label="Objetos escriptados" name="scripted"/>
+		<check_box label="Objetos físicos" name="physical"/>
+		<check_box label="Fontes de Som" name="sounds"/>
+		<check_box label="Fontes de Partículas" name="particles"/>
+		<check_box label="Renderização de Highlights" name="highlights"/>
+		<check_box label="Renderização de Balizas" name="beacons"/>
+		<text name="beacon_width_label">
+			Largura da Baliza
+		</text>
+	</panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
index e28fcc30b497184ad206775c48d622c54cc4381f..9bae0378e2ba6b4e68fce236e0532c31ebd20527 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
@@ -29,7 +29,7 @@
 		1234
 	</line_editor>
 	<text name="currency_est">
-		Por aproximadamente. US$ [dólares americanos]
+		por aproxim. US$ [USD]
 	</text>
 	<text name="getting_data">
 		Primeiros dados...
@@ -53,10 +53,12 @@
 		L$ [AMT]
 	</text>
 	<text name="purchase_warning_repurchase">
-		Confirmando esta compra só compra a moeda. 
Você precisará tentar novamente a operação.
+		Confirmando esta compra só compra a moeda.
+Você precisará tentar novamente a operação.
 	</text>
 	<text name="purchase_warning_notenough">
-		Você não está comprando moeda suficiente 
Aumente a quantidade de compra.
+		Você não está comprando moeda suficiente.
+Aumente a quantidade de compra.
 	</text>
 	<button label="Fechar" name="cancel_btn"/>
 	<button label="Adquirir" name="buy_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
index e9f4d175fd87a967d0817a2127e7768d810156d4..9a08035f8d09518581277f90b140fc1fcfde8bba 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
@@ -96,7 +96,7 @@ Este terreno tem 512 metros quadrados de terra.
 		1000
 	</line_editor>
 	<text name="currency_est">
-		por aproximadamente US$ [AMOUNT2]
+		por aproxim. US$ [AMOUNT2]
 	</text>
 	<text name="currency_balance">
 		Você tem L$2,100.
diff --git a/indra/newview/skins/default/xui/pt/floater_camera.xml b/indra/newview/skins/default/xui/pt/floater_camera.xml
new file mode 100644
index 0000000000000000000000000000000000000000..435ba6294f74dd8602332dcf559e40aa8860e476
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_camera.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+	<string name="rotate_tooltip">
+		Girar a Câmera ao redor do Foco
+	</string>
+	<string name="zoom_tooltip">
+		Aproximar a Câmera in direção ao Foco
+	</string>
+	<string name="move_tooltip">
+		Mover a Câmera Para Cima e Para Baixo, Para a Esquerda e Para a Direita
+	</string>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_color_picker.xml b/indra/newview/skins/default/xui/pt/floater_color_picker.xml
index a4ea117d6338eaea946bd0b0097d95acaa8da8f5..62506076ae597cb53b52f037f8e0a3c85a0d4861 100644
--- a/indra/newview/skins/default/xui/pt/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/pt/floater_color_picker.xml
@@ -10,7 +10,7 @@
 		Azul:
 	</text>
 	<text name="h_val_text">
-		Luminosidade:
+		Hue:
 	</text>
 	<text name="s_val_text">
 		Sat:
@@ -26,6 +26,7 @@
 		Cor atual:
 	</text>
 	<text name="(Drag below to save.)">
-		(Arraste abaixo para salvar.)
+		(Arraste abaixo
+para salvar.)
 	</text>
 </floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_customize.xml b/indra/newview/skins/default/xui/pt/floater_customize.xml
index 13c92a9f9643d5d06fef1c0837ccceb86539413a..d2b90d7179d2ee0c1d111819da75e37d22e8b783 100644
--- a/indra/newview/skins/default/xui/pt/floater_customize.xml
+++ b/indra/newview/skins/default/xui/pt/floater_customize.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Aparência">
-	<tab_container name="customize tab container">
+<floater name="floater customize" title="Aparência" width="513">
+	<tab_container name="customize tab container" tab_min_width="115" width="511">
 		<panel label="Partes de corpo" name="body_parts_placeholder"/>
 		<panel label="Forma" name="Shape">
 			<button label="Reverter" label_selected="Reverter" name="Revert"/>
@@ -38,7 +38,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Coloque um novo formato arrastando um dos seus de seu  inventário para seu avatar. Alternativamente, você pode criar um novo a partir deste e usá-lo.
+				Coloque um novo formato arrastando um dos seus de seu inventário
+para seu avatar. Alternativamente, você pode criar um novo a partir
+deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar esta vestimenta.
@@ -69,7 +71,8 @@
 				Localizada em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Coloque uma nova pele arrastando uma de seu inventário para seu avatar. Alternativamente, você pode criar uma nova forma a partir deste e usá-lo.
+				Coloque uma nova pele arrastando uma de seu inventário para seu avatar.
+Alternativamente, você pode criar uma nova forma a partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar esta vestimenta.
@@ -105,7 +108,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Ponha um novo cabelo em seu avatar arrastando um do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Ponha um novo cabelo em seu avatar arrastando um do seu inventário.
+Alternativamente, você pode criar um novo modelo a partir deste e
+usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não ter permissão para modificar essa vestimenta.
@@ -135,7 +140,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para colocar novos olhos, arraste um do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para colocar novos olhos, arraste um do seu inventário para seu avatar.
+Alternativamente, você pode criar um novo modelo a partir deste e
+usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para alterar esta vestimenta.
@@ -173,7 +180,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por uma nova camisa em seu avatar, arraste uma nova do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por uma nova camisa em seu avatar, arraste uma nova do seu
+inventário para seu avatar. Alternativamente, você pode criar um
+novo modelo a partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não ter permissão para modificar esta vestimenta.
@@ -185,7 +194,7 @@
 			<button label="Criar Novas Calças" label_selected="Criar Novas Calças" name="Create New"/>
 			<button label="Remover" label_selected="Remover" name="Take Off"/>
 			<button label="Salvar" label_selected="Salvar" name="Save"/>
-			<button label="Salvar como" label_selected="Salvar Como" name="Save As"/>
+			<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
 			<button label="Reverter" label_selected="Reverter" name="Revert"/>
 			<text length="1" name="title" type="string">
 				[DESC]
@@ -203,7 +212,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por uma nova calça em seu avatar, basta arrastar uma outra do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por uma nova calça em seu avatar, basta arrastar uma outra do seu
+inventário. Alternativamente, você pode criar um novo modelo a partir
+deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar esta vestimenta.
@@ -226,14 +237,16 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por novos calçados em seu avatar, basta arrastar um novo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por novos calçados em seu avatar, basta arrastar um novo do seu
+inventário. Alternativamente, você pode criar um novo modelo a partir
+deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar esta vestimenta.
 			</text>
 			<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
 			<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
-			<button label="Criar Novos Sapatos" label_selected="Criar Novos Sapatos" name="Create New"/>
+			<button label="Criar Novos Calçados" label_selected="Criar Novos Sapatos" name="Create New" width="166"/>
 			<button label="Despir" label_selected="Despir" name="Take Off"/>
 			<button label="Salvar" label_selected="Salvar" name="Save"/>
 			<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
@@ -256,7 +269,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por uma nova meia em seu avatar, basta arrastar uma nova do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por uma nova meia em seu avatar, basta arrastar uma nova do seu
+inventário. Alternativamente, você pode criar um novo modelo a partir
+deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar essa vestimenta.
@@ -286,13 +301,15 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo
+do seu inventário. Alternativamente, você pode criar um novo modelo a
+partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar esta vestimenta.
 			</text>
-			<texture_picker label="Tecido Superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem."/>
-			<texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem."/>
+			<texture_picker label="Tecido Superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
+			<texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
 			<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
 			<button label="Criar Nova Jaqueta" label_selected="Criar Nova Jaqueta" name="Create New"/>
 			<button label="Remover" label_selected="Remover" name="Take Off"/>
@@ -317,7 +334,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Pra por uma nova jaqueta em seu avatar, basta arastar um novo modelo do seu inventário. Alternativamente, você pode criar uma novo modlo a partir deste e usá-lo.
+				Pra por uma nova jaqueta em seu avatar, basta arastar um novo modelo
+do seu inventário. Alternativamente, você pode criar uma novo modelo a
+partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar essa vestimenta.
@@ -347,14 +366,16 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por uma nova Camiseta em seu avatar, basta arrastar um novo modelo de seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por uma nova Camiseta em seu avatar, basta arrastar um novo
+modelo de seu inventário. Alternativamente, você pode criar um
+novo modelo a partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não ter permissão para modificar essa vestimenta.
 			</text>
 			<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
 			<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas"/>
-			<button label="Criar Nova Roupa de Baixo" label_selected="Criar Nova Roupa de Baixo" name="Create New"/>
+			<button label="Criar Nova Camiseta" label_selected="Criar Nova Roupa de Baixo" name="Create New"/>
 			<button label="Remover" label_selected="Remover" name="Take Off"/>
 			<button label="Salvar" label_selected="Salvar" name="Save"/>
 			<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
@@ -377,14 +398,16 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por novas roupas de baixo em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por novas roupas de baixo em seu avatar, basta arrastar um novo
+modelo do seu inventário. Alternativamente, você pode criar um novo
+modelo a partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar essa vestimenta.
 			</text>
 			<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
 			<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
-			<button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New"/>
+			<button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New" width="176"/>
 			<button label="Remover" label_selected="Remover" name="Take Off"/>
 			<button label="Salvar" label_selected="Salvar" name="Save"/>
 			<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
@@ -407,7 +430,9 @@
 				Localizado em [PATH]
 			</text>
 			<text length="1" name="not worn instructions" type="string">
-				Para por uma nova saia em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+				Para por uma nova saia em seu avatar, basta arrastar um novo modelo
+do seu inventário. Alternativamente, você pode criar um novo modelo a
+partir deste e usá-lo.
 			</text>
 			<text length="1" name="no modify instructions" type="string">
 				Você não tem permissão para modificar essa vestimenta.
@@ -421,6 +446,7 @@
 			<button label="Reverter" label_selected="Reverter" name="Revert"/>
 		</panel>
 	</tab_container>
+	<scroll_container left="216" name="panel_container"/>
 	<button label="Fechar" label_selected="Fechar" name="Close"/>
 	<button label="Salvar Tudo" label_selected="Salvar Tudo" name="Save All"/>
 	<button label="Criar Visual" label_selected="Criar Visual" name="Make Outfit"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bf99231e5f14eeede0c945f0a64b8b1528b884f7
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Day Cycle Floater" title="Editor de ciclo de dia">
+	<tab_container name="Day Cycle Tabs">
+		<panel label="Ciclo do dia" name="Day Cycle">
+			<button label="?" name="WLDayCycleHelp"/>
+			<text name="WL12am">
+				12:00 meia noite
+			</text>
+			<text name="WL3am">
+				3:00 da manhã
+			</text>
+			<text name="WL6am">
+				6:00 da manhã
+			</text>
+			<text name="WL9amHash">
+				9:00 da manhã
+			</text>
+			<text name="WL12pmHash">
+				12:00 meio dia
+			</text>
+			<text name="WL3pm">
+				3:00 da tarde
+			</text>
+			<text name="WL6pm">
+				6:00 da tarde
+			</text>
+			<text name="WL9pm">
+				9:00 da noite
+			</text>
+			<text name="WL12am2">
+				12:00 meia noite
+			</text>
+			<button label="Add Key" label_selected="Adicionar chave" name="WLAddKey"/>
+			<button label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/>
+			<text name="WLCurKeyFrameText">
+				Configurações de Key Frame:
+			</text>
+			<text name="WLCurKeyTimeText">
+				Tempo de chave:
+			</text>
+			<spinner label="Hora" name="WLCurKeyHour"/>
+			<spinner label="Minutos" name="WLCurKeyMin"/>
+			<text name="WLCurKeyTimeText2">
+				Apresentação chave:
+			</text>
+			<combo_box label="Apresentação" name="WLKeyPresets"/>
+			<text name="DayCycleText">
+				Snap:
+			</text>
+			<combo_box label="5 minutos" name="WLSnapOptions"/>
+			<text name="DayCycleText2">
+				Duração do Ciclo:
+			</text>
+			<spinner label="Hora" name="WLLengthOfDayHour"/>
+			<spinner label="Minuto" name="WLLengthOfDayMin"/>
+			<spinner label="Segundo" name="WLLengthOfDaySec"/>
+			<text name="DayCycleText3">
+				Preview:
+			</text>
+			<button label="Tocar" label_selected="Tocar" name="WLAnimSky"/>
+			<button label="Pare!" label_selected="Pare" name="WLStopAnimSky"/>
+			<button label="Usar o horário do Terreno" label_selected="Ir para o horário do Terreno" name="WLUseLindenTime"/>
+			<button label="Salvar o Dia teste" label_selected="Salvar o Dia teste" name="WLSaveDayCycle"/>
+			<button label="Carregar o Dia teste" label_selected="Carregar o Dia teste" name="WLLoadDayCycle"/>
+		</panel>
+	</tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_env_settings.xml b/indra/newview/skins/default/xui/pt/floater_env_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..afefae71e6dda77c40352b2ed429335d65321606
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_env_settings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Environment Editor Floater" title="Editor do Ambiente">
+	<text name="EnvTimeText">
+		Hora do Dia
+	</text>
+	<text name="EnvTimeText2">
+		12:00 PM
+	</text>
+	<text name="EnvCloudText">
+		Cobertura de Nuvens
+	</text>
+	<text name="EnvWaterColorText">
+		Cor da água
+	</text>
+	<color_swatch label="" name="EnvWaterColor" tool_tip="Clique para abrir o Editor de cores"/>
+	<text name="EnvWaterFogText">
+		Névoa da água
+	</text>
+	<button label="Usar hora da propriedade" name="EnvUseEstateTimeButton"/>
+	<button label="Céu Avançado" name="EnvAdvancedSkyButton"/>
+	<button label="Água Avançada" name="EnvAdvancedWaterButton"/>
+	<button label="?" name="EnvSettingsHelpButton"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c395144d4aa4d842c3f2d9bffb19fcf72de82b6e
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Hardware Settings Floater" title="Ajustes de Hardware">
+	<text name="Filtering:">
+		Filtragem:
+	</text>
+	<check_box label="Filtragem Anisotrópica (mais lento quando habilitada)" name="ani"/>
+	<text name="Antialiasing:">
+		Suavização:
+	</text>
+	<combo_box label="Suavização" name="fsaa" width="94">
+		<combo_item name="FSAADisabled">
+			Desabilitado
+		</combo_item>
+		<combo_item name="2x">
+			2x
+		</combo_item>
+		<combo_item name="4x">
+			4x
+		</combo_item>
+		<combo_item name="8x">
+			8x
+		</combo_item>
+		<combo_item name="16x">
+			16x
+		</combo_item>
+	</combo_box>
+	<spinner label="Gama:" name="gamma"/>
+	<text name="(brightness, lower is brighter)">
+		(brilho, quanto menor, mais brilho, 0=usar padrão)
+	</text>
+	<text name="Enable VBO:">
+		Habilitar VBO:
+	</text>
+	<check_box label="Habilitar Objetos com Armazenamento de Vértices" name="vbo" tool_tip="Habilitando-o em máquinas novas, ele oferece um ganho de performance. Contudo, as máquinas antigas tem freqüentemente implementações pobres de VBOs e você pode ter travamentos quando esta opção é habilitada."/>
+	<slider label="Memória de Textura (MB):" name="GrapicsCardTextureMemory" tool_tip="Quantidade de memória a se reservar para texturas. Usa por padrão, a  Memória da Placa de Vídeo. Sua redução pode aumentar a performance mas pode também deixar as texturas borradas."/>
+	<spinner label="Relação de Distância de &#10;Nevoeiro:" name="fog"/>
+	<button label="OK" label_selected="OK" name="OK"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_hud.xml b/indra/newview/skins/default/xui/pt/floater_hud.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c75867956b061cbd5775b3cbc1a5e084a583a276
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_hud.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_hud" title="Tutorial"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_image_preview.xml b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
index a9f270c11d74c9f5e18027cf6267e7248633bced..5ce1f5478fa013267640ccc26fef13f013af5e4d 100644
--- a/indra/newview/skins/default/xui/pt/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
@@ -42,7 +42,9 @@
 		</combo_item>
 	</combo_box>
 	<text name="bad_image_text">
-		Incapaz de ler a imagem.Tente salvar a imagem como 24 bit Targa (.tga).
+		Incapaz de ler a imagem.
+
+Tente salvar a imagem como 24 bit Targa (.tga).
 	</text>
 	<check_box label="Usar compressão com menor perda" name="lossless_check"/>
 	<button label="Cancelar" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d0f0d40d6ff5beafd7f18848adfb905724d1628a
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="Medidor de Atraso">
+	<button label="" label_selected="" name="client_lagmeter" tool_tip="Status de atraso no Cliente"/>
+	<text name="client">
+		Cliente:
+	</text>
+	<text name="client_text">
+		Normal
+	</text>
+	<button label="" label_selected="" name="network_lagmeter" tool_tip="Status de atraso na rede"/>
+	<text name="network">
+		Rede:
+	</text>
+	<text name="network_text">
+		Normal
+	</text>
+	<button label="" label_selected="" name="server_lagmeter" tool_tip="Status de atraso no servidor"/>
+	<text name="server">
+		Servidor:
+	</text>
+	<text name="server_text">
+		Normal
+	</text>
+	<button label="?" name="server_help"/>
+	<button label="&gt;&gt;" name="minimize"/>
+	<string name="max_title_msg">
+		Medidor de Atraso
+	</string>
+	<string name="max_width_px">
+		360
+	</string>
+	<string name="min_title_msg">
+		Atraso
+	</string>
+	<string name="min_width_px">
+		90
+	</string>
+	<string name="client_text_msg">
+		Cliente
+	</string>
+	<string name="client_frame_rate_critical_fps">
+		10
+	</string>
+	<string name="client_frame_rate_warning_fps">
+		15
+	</string>
+	<string name="client_frame_time_window_bg_msg">
+		Normal, janela por baixo
+	</string>
+	<string name="client_frame_time_critical_msg">
+		Taxa de quadros do Cliente abaixo de [CLIENT_FRAME_RATE_CRITICAL]
+	</string>
+	<string name="client_frame_time_warning_msg">
+		Taxa de quadros do Cliente entre [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+	</string>
+	<string name="client_frame_time_normal_msg">
+		Normal
+	</string>
+	<string name="client_draw_distance_cause_msg">
+		Causa possível: Distância do desenho ajustada muito alta
+	</string>
+	<string name="client_texture_loading_cause_msg">
+		Causa possível: Carregamento de Imagens
+	</string>
+	<string name="client_texture_memory_cause_msg">
+		Causa possível: Muitas imagens na memoria
+	</string>
+	<string name="client_complex_objects_cause_msg">
+		Causa possível: Muitos objetos complexos na cena
+	</string>
+	<string name="network_text_msg">
+		Rede
+	</string>
+	<string name="network_packet_loss_critical_pct">
+		10
+	</string>
+	<string name="network_packet_loss_warning_pct">
+		5
+	</string>
+	<string name="network_packet_loss_critical_msg">
+		Conexão está caindo para cerca de [NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+	</string>
+	<string name="network_packet_loss_warning_msg">
+		Conexão está caindo [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+	</string>
+	<string name="network_performance_normal_msg">
+		Normal
+	</string>
+	<string name="network_ping_critical_ms">
+		600
+	</string>
+	<string name="network_ping_warning_ms">
+		300
+	</string>
+	<string name="network_ping_critical_msg">
+		Tempo de conexão de ping é cerca de  [NETWORK_PING_CRITICAL] ms
+	</string>
+	<string name="network_ping_warning_msg">
+		Tempo de conexão de ping é [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</string>
+	<string name="network_packet_loss_cause_msg">
+		Possível conexão ruim ou &apos;Largura de Banda&apos; escolhida muito alta.
+	</string>
+	<string name="network_ping_cause_msg">
+		Possível conexão ruim ou aplic. compartilhando arquivos.
+	</string>
+	<string name="server_text_msg">
+		Servidor
+	</string>
+	<string name="server_frame_rate_critical_fps">
+		20
+	</string>
+	<string name="server_frame_rate_warning_fps">
+		30
+	</string>
+	<string name="server_single_process_max_time_ms">
+		20
+	</string>
+	<string name="server_frame_time_critical_msg">
+		Taxa de quadros do simulador abaixo de  [SERVER_FRAME_RATE_CRITICAL]
+	</string>
+	<string name="server_frame_time_warning_msg">
+		Taxa de quadros do simulador entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+	</string>
+	<string name="server_frame_time_normal_msg">
+		Normal
+	</string>
+	<string name="server_physics_cause_msg">
+		Causa possível: Muitos objetos físicos
+	</string>
+	<string name="server_scripts_cause_msg">
+		Causa possível: Muitos objetos com scripts
+	</string>
+	<string name="server_net_cause_msg">
+		Causa possível: Muito tráfego na rede
+	</string>
+	<string name="server_agent_cause_msg">
+		Causa possível: Muitas pessoas se movendo na região
+	</string>
+	<string name="server_images_cause_msg">
+		Causa possível: Muitos cálculos de imagem
+	</string>
+	<string name="server_generic_cause_msg">
+		Causa possível: Carga no simulador muito pesada
+	</string>
+	<string name="smaller_label">
+		&gt;&gt;
+	</string>
+	<string name="bigger_label">
+		&lt;&lt;
+	</string>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_media_browser.xml b/indra/newview/skins/default/xui/pt/floater_media_browser.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c2387d8a3493e4ee85b902cd3e1a21be67047e85
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_media_browser.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="Navegador de Mídia" width="570" min_width="477">
+	<layout_stack name="stack1" width="550">
+		<layout_panel name="nav_controls">
+			<button label="Para trás" name="back" width="75"/>
+			<button label="Para a frente" name="forward" width="90" left_delta="75" />
+			<button label="Recarregar" name="reload" left_delta="95" width="76"/>
+			<combo_box left_delta="80" name="address" width="240"/>
+			<button label="Ir" name="go" left_delta="245" width="35"  />
+		</layout_panel>
+		<layout_panel name="parcel_owner_controls">
+			<button label="Enviar a URL Atual Para o Terreno" name="assign"/>
+		</layout_panel>
+		<layout_panel name="external_controls">
+			<button label="Abrir no meu Navegador de Web" name="open_browser" width="196"/>
+			<check_box label="Sempre abrir no meu navegador de web" name="open_always" left_delta="201" />
+			<button label="Fechar" name="close"/>
+		</layout_panel>
+	</layout_stack>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml b/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
new file mode 100644
index 0000000000000000000000000000000000000000..83f47fd6791421cba149b27bb72dfa269591c2f1
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="MemLeak" title="Simulação de Perda de Memória">
+	<spinner label="Velocidade da Perda (bytes por quadro):" name="leak_speed"/>
+	<spinner label="Máximo de Memória Perdida (MB):" name="max_leak"/>
+	<text name="total_leaked_label">
+		Memória perdida atualmente: [SIZE] KB
+	</text>
+	<button label="Iniciar" name="start_btn"/>
+	<button label="Parar" name="stop_btn"/>
+	<button label="Liberar" name="release_btn"/>
+	<button label="Fechar" name="close_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_mute_object.xml b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
new file mode 100644
index 0000000000000000000000000000000000000000..506d51886853515879f3aa76b814ac6acb6e6515
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="mute by name" title="Emudecer objeto pelo nome">
+	<text name="message">
+		Emudecer pelo nome afeta apenas conversa de objeto e MI, não sons. Você deve digitar o nome exato do objeto.
+	</text>
+	<line_editor name="object_name">
+		Nome do objeto
+	</line_editor>
+	<button label="Ok" name="OK"/>
+	<button label="Cancelar" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_openobject.xml b/indra/newview/skins/default/xui/pt/floater_openobject.xml
index 51f717813662d017ceebf416b4d7bd05fc1f996b..8a27b7d0b0408ae92d0cac6a79845284753b7a4e 100644
--- a/indra/newview/skins/default/xui/pt/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/pt/floater_openobject.xml
@@ -4,7 +4,7 @@
 		[DESC]:
 	</text>
 	<button label="Copiar para Inventário" label_selected="Copiar para Inventário"
-	     name="copy_to_inventory_button" />
+	     name="copy_to_inventory_button" width="132" />
 	<button label="Copiar e Vestir" label_selected="Copiar e Vestir"
-	     name="copy_and_wear_button" />
+	     name="copy_and_wear_button" left="152"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_pay.xml b/indra/newview/skins/default/xui/pt/floater_pay.xml
index 76facb430d7a8415a2ee34e7ee5e55a71a457e59..dda7015a073a3473bdf3fc3f526b351ec9fa2054 100644
--- a/indra/newview/skins/default/xui/pt/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pay.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="Give Money" title="">
-	<button label="L$1" label_selected="L$1" name="fastpay 1" />
+	<button label="L$1" label_selected="L$1" name="fastpay 1" left="112" />
 	<button label="L$5" label_selected="L$5" name="fastpay 5" />
-	<button label="L$10" label_selected="L$10" name="fastpay 10" />
+	<button label="L$10" label_selected="L$10" name="fastpay 10" left="112" />
 	<button label="L$20" label_selected="L$20" name="fastpay 20" />
 	<button label="Pagar" label_selected="Pagar" name="pay btn" />
 	<button label="Cancelar" label_selected="Cancelar" name="cancel btn" />
-	<text type="string" length="1" name="payee_label">
+	<text type="string" length="1" name="payee_label" width="110" left="5">
 		Pagar residente:
 	</text>
-	<text type="string" length="1" name="payee_name">
+	<text type="string" length="1" name="payee_name" left="110">
 		[FIRST] [LAST]
 	</text>
-	<text type="string" length="1" name="fastpay text">
+	<text type="string" length="1" name="fastpay text" width="120" halign="left">
 		Pagamento rápido:
 	</text>
-	<text type="string" length="1" name="amount text">
+	<text type="string" length="1" name="amount text" left="4" >
 		Quantia:
 	</text>
 </floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_pay_object.xml b/indra/newview/skins/default/xui/pt/floater_pay_object.xml
index 7973baf6a12a741c44225caf39e58c7c3d237908..824e1aebdd214d3f47f371eef433856ed88512cf 100644
--- a/indra/newview/skins/default/xui/pt/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pay_object.xml
@@ -1,30 +1,31 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater name="Give Money" title="">
-	<text type="string" length="1" name="payee_group">
+	<text type="string" length="1" name="payee_group" width="100" halign="left">
 		Pagar Grupo:
 	</text>
-	<text type="string" length="1" name="payee_resident">
+	<text type="string" length="1" name="payee_resident" width="120" halign="left" >
 		Pagar residente:
 	</text>
-	<text type="string" length="1" name="payee_name">
+	<text type="string" length="1" name="payee_name" left="105">
 		[FIRST] [LAST]
 	</text>
-	<text type="string" length="1" name="object_name_label">
+	<text type="string" length="1" name="object_name_label" left="5" width="95" halign="left">
 		Via objeto:
 	</text>
-	<text type="string" length="1" name="object_name_text">
+	<text type="string" length="1" name="object_name_text" left="105" >
 		...
 	</text>
-	<text type="string" length="1" name="fastpay text">
+	<text type="string" length="1" name="fastpay text" width="115" halign="left">
 		Pagamento Rápido:
 	</text>
-	<text type="string" length="1" name="amount text">
+	<text type="string" length="1" name="amount text" left="5" halign="left">
 		Quantia:
 	</text>
-	<button label="L$1" label_selected="L$1" name="fastpay 1" />
-	<button label="L$5" label_selected="L$5" name="fastpay 5" />
-	<button label="L$10" label_selected="L$10" name="fastpay 10" />
-	<button label="L$20" label_selected="L$20" name="fastpay 20" />
+	<button label="L$1" label_selected="L$1" name="fastpay 1" left="125" width="70"/>
+	<button label="L$5" label_selected="L$5" name="fastpay 5"  left="200" width="70"/>
+	<button label="L$10" label_selected="L$10" name="fastpay 10" left="125" width="70"/>
+	<button label="L$20" label_selected="L$20" name="fastpay 20"  left="200" width="70"/>
 	<button label="Pagar" label_selected="Pagar" name="pay btn" />
 	<button label="Cancelar" label_selected="Cancelar" name="cancel btn" />
+	<line_editor left="60" name="amount" width="50" />
 </floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_postcard.xml b/indra/newview/skins/default/xui/pt/floater_postcard.xml
index 5c07ce6b9ef7892abbaf722fae93ab1551ef4759..4e3e6f5cd0234970f97da3a7bd8c812bdf36c95e 100644
--- a/indra/newview/skins/default/xui/pt/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/pt/floater_postcard.xml
@@ -1,17 +1,21 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Postcard" title="Instantâneo por email">
-	<text name="to_label">
+	<text name="to_label" width="135">
 		Email do Destinatário:
 	</text>
+	<line_editor name="to_form" left="143" width="127" />
 	<text name="from_label">
 		Seu Email:
 	</text>
+	<line_editor name="from_form" left="143" width="127" />
 	<text name="name_label">
 		Seu nome:
 	</text>
+	<line_editor name="name_form" left="143" width="127" />
 	<text name="subject_label">
 		Assunto:
 	</text>
+	<line_editor name="subject_form" left="143" width="127" />
 	<line_editor label="Digite seu assunto aqui." name="subject_form"/>
 	<text name="msg_label">
 		Mensagem:
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
index d71a4deb34529f473e2758d686f16ac6f81cea42..b9a8ccb5f5b5a35140463993571682da2a7af0cc 100644
--- a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
@@ -4,7 +4,7 @@
 		Descrição:
 	</text>
 	<button label="Executar in World" label_selected="Parar" name="Anim play btn"
-	     tool_tip="Executar esta animação para que outros vejam.." />
+	     tool_tip="Executar esta animação para que outros vejam.."  width="131" left="20"/>
 	<button label="Executar localmente" label_selected="Parar" name="Anim audition btn"
-	     tool_tip="Executar esta animação somente para você ver." />
+	     tool_tip="Executar esta animação somente para você ver." width="125" left="162"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_classified.xml b/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
new file mode 100644
index 0000000000000000000000000000000000000000..83af4947a7e98d144e2a8e2c34b6a02521c068af
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="classified_preview" title="Classificar Informação"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_event.xml b/indra/newview/skins/default/xui/pt/floater_preview_event.xml
new file mode 100644
index 0000000000000000000000000000000000000000..60f85560f5f517fb9efadab56283b047993925aa
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_preview_event.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="event_preview" title="Informação de Evento (testemunhos)"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_region_info.xml b/indra/newview/skins/default/xui/pt/floater_region_info.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b16b1a4de8983aa8aa5299e09e2beac477a142a8
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_region_info.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="regioninfo" title="Região/Propriedade"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_url_entry.xml b/indra/newview/skins/default/xui/pt/floater_url_entry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5a18297555255ae6fe7673abe035095daf5d6be1
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_url_entry.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="url_entry" title="">
+	<text name="media_label">
+		Media URL:
+	</text>
+	<button label="OK" name="ok_btn"/>
+	<button label="Cancelar" name="cancel_btn"/>
+	<button label="Limpar" name="clear_btn"/>
+	<text name="loading_label">
+		Carregando..
+	</text>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_water.xml b/indra/newview/skins/default/xui/pt/floater_water.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d6f261f87267979acb483d7166122c6b67d0e9a4
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_water.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Water Floater" title="Editor de Água Avançado">
+	<text name="KeyFramePresetsText">
+		Pré-configurações da Água:
+	</text>
+	<button label="Novo" label_selected="Novo" name="WaterNewPreset"/>
+	<button label="Salvar" label_selected="Salvar" name="WaterSavePreset"/>
+	<button label="Deletar" label_selected="Deletar" name="WaterDeletePreset"/>
+	<tab_container name="Water Tabs">
+		<panel label="Configurações" name="Settings">
+			<text name="BHText">
+				Cor da névoa da Água
+			</text>
+			<button label="?" name="WaterFogColorHelp"/>
+			<color_swatch label="" name="WaterFogColor" tool_tip="Clique para abrir o Capturador de Cor"/>
+			<text name="WaterFogDensText">
+				Expoente da Densidade de névoa
+			</text>
+			<button label="?" name="WaterFogDensityHelp"/>
+			<text name="WaterUnderWaterFogModText">
+				Modificador da névoa Subaquática
+			</text>
+			<button label="?" name="WaterUnderWaterFogModHelp"/>
+			<text name="BDensText">
+				Escala da Marola de Reflexão
+			</text>
+			<button label="?" name="WaterNormalScaleHelp"/>
+			<text name="BHText2">
+				1
+			</text>
+			<text name="BHText3">
+				2
+			</text>
+			<text name="BHText4">
+				3
+			</text>
+			<text name="HDText">
+				Escala de Fresnel
+			</text>
+			<button label="?" name="WaterFresnelScaleHelp"/>
+			<text name="FresnelOffsetText">
+				Deslocamento de Fresnel
+			</text>
+			<button label="?" name="WaterFresnelOffsetHelp"/>
+			<text name="DensMultText">
+				Refratar a Escala para Cima
+			</text>
+			<button label="?" name="WaterScaleAboveHelp"/>
+			<text name="WaterScaleBelowText">
+				Refratar a Escala para Baixo
+			</text>
+			<button label="?" name="WaterScaleBelowHelp"/>
+			<text name="MaxAltText">
+				Multiplicador de Difusão
+			</text>
+			<button label="?" name="WaterBlurMultiplierHelp"/>
+		</panel>
+		<panel label="Imagem" name="Waves">
+			<text name="BHText">
+				Direção da Onda Maior
+			</text>
+			<button label="?" name="WaterWave1Help"/>
+			<text name="WaterWave1DirXText">
+				X
+			</text>
+			<text name="WaterWave1DirYText">
+				Y
+			</text>
+			<text name="BHText2">
+				Direção da Onda Pequena
+			</text>
+			<button label="?" name="WaterWave2Help"/>
+			<text name="WaterWave2DirXText">
+				X
+			</text>
+			<text name="WaterWave2DirYText">
+				Y
+			</text>
+			<text name="BHText3">
+				Mapa Normal
+			</text>
+			<button label="?" name="WaterNormalMapHelp"/>
+		</panel>
+	</tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_windlight_options.xml b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e42137be15820b5d0a6512fa9badf2b14a48e25a
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="WindLight floater" title="Editor de Céu Avançado">
+	<text name="KeyFramePresetsText">
+		Pré-definições de Céu:
+	</text>
+	<button label="Novo" label_selected="Novo" name="WLNewPreset"/>
+	<button label="Salvar" label_selected="Salvar" name="WLSavePreset"/>
+	<button label="Deletar" label_selected="Deletar" name="WLDeletePreset"/>
+	<button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" name="WLDayCycleMenuButton" width="150" left_delta="95" />
+	<tab_container name="WindLight Tabs">
+		<panel label="Atmosfera" name="Atmosphere">
+			<text name="BHText">
+				Horizonte Azul
+			</text>
+			<button label="?" name="WLBlueHorizonHelp"/>
+			<text name="BHText2">
+				R
+			</text>
+			<text name="BHText3">
+				G
+			</text>
+			<text name="BHText4">
+				B
+			</text>
+			<text name="BHText5">
+				I
+			</text>
+			<text name="BDensText">
+				Horizonte da Neblina
+			</text>
+			<button label="?" name="WLHazeHorizonHelp"/>
+			<text name="BDensText2">
+				Densidade de Azul
+			</text>
+			<button label="?" name="WLBlueDensityHelp"/>
+			<text name="BHText6">
+				R
+			</text>
+			<text name="BHText7">
+				G
+			</text>
+			<text name="BHText8">
+				B
+			</text>
+			<text name="BHText9">
+				I
+			</text>
+			<text name="HDText">
+				Densidade da Neblina
+			</text>
+			<button label="?" name="WLHazeDensityHelp"/>
+			<text name="DensMultText">
+				Multiplicador de Densidade
+			</text>
+			<button label="?" name="WLDensityMultHelp"/>
+			<text name="WLDistanceMultText">
+				Multiplicador de Distância
+			</text>
+			<button label="?" name="WLDistanceMultHelp"/>
+			<text name="MaxAltText">
+				Altitude Máxima
+			</text>
+			<button label="?" name="WLMaxAltitudeHelp"/>
+		</panel>
+		<panel label="Iluminação" name="Lighting">
+			<text name="SLCText">
+				Cor do Sol/Lua
+			</text>
+			<button label="?" name="WLSunlightColorHelp"/>
+			<text name="BHText">
+				R
+			</text>
+			<text name="BHText2">
+				G
+			</text>
+			<text name="BHText3">
+				B
+			</text>
+			<text name="BHText4">
+				I
+			</text>
+			<text name="TODText">
+				Posição do Sol/Lua
+			</text>
+			<button label="?" name="WLTimeOfDayHelp"/>
+			<text name="WLAmbientText">
+				Ambiente
+			</text>
+			<button label="?" name="WLAmbientHelp"/>
+			<text name="BHText5">
+				R
+			</text>
+			<text name="BHText6">
+				G
+			</text>
+			<text name="BHText7">
+				B
+			</text>
+			<text name="BHText8">
+				I
+			</text>
+			<text name="WLEastAngleText">
+				Angulo Leste
+			</text>
+			<button label="?" name="WLEastAngleHelp"/>
+			<text name="SunGlowText">
+				Brilho do Sol
+			</text>
+			<button label="?" name="WLSunGlowHelp"/>
+			<slider label="Foco" name="WLGlowB"/>
+			<slider label="Tamanho" name="WLGlowR"/>
+			<text name="SceneGammaText">
+				Gamma da Cena
+			</text>
+			<button label="?" name="WLSceneGammaHelp"/>
+			<text name="WLStarText">
+				Brilho da Estrêla
+			</text>
+			<button label="?" name="WLStarBrightnessHelp"/>
+		</panel>
+		<panel label="Nuvens" name="Clouds">
+			<text name="WLCloudColorText">
+				Cor da Nuvem
+			</text>
+			<button label="?" name="WLCloudColorHelp"/>
+			<text name="BHText">
+				R
+			</text>
+			<text name="BHText2">
+				G
+			</text>
+			<text name="BHText3">
+				B
+			</text>
+			<text name="BHText4">
+				I
+			</text>
+			<text name="WLCloudColorText2">
+				Densidade/ XY da Nuvem
+			</text>
+			<button label="?" name="WLCloudDensityHelp"/>
+			<text name="BHText5">
+				X
+			</text>
+			<text name="BHText6">
+				Y
+			</text>
+			<text name="BHText7">
+				D
+			</text>
+			<text name="WLCloudCoverageText">
+				Cobertura da Nuvem
+			</text>
+			<button label="?" name="WLCloudCoverageHelp"/>
+			<text name="WLCloudScaleText">
+				Escala da Nuvem
+			</text>
+			<button label="?" name="WLCloudScaleHelp"/>
+			<text name="WLCloudDetailText">
+				Detalhe da Nuvem  (XY/Densidade)
+			</text>
+			<button label="?" name="WLCloudDetailHelp"/>
+			<text name="BHText8">
+				X
+			</text>
+			<text name="BHText9">
+				Y
+			</text>
+			<text name="BHText10">
+				D
+			</text>
+			<text name="WLCloudScrollXText">
+				Rolagem X da Nuvem
+			</text>
+			<button label="?" name="WLCloudScrollXHelp"/>
+			<check_box label="Travar" name="WLCloudLockX"/>
+			<text name="WLCloudScrollYText">
+				Rolagem Y da Nuvem
+			</text>
+			<button label="?" name="WLCloudScrollYHelp"/>
+			<check_box label="Travar" name="WLCloudLockY"/>
+			<check_box label="Desenhar Nuvens Clássicas" name="DrawClassicClouds"/>
+			<button label="?" name="WLClassicCloudsHelp"/>
+		</panel>
+	</tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/menu_login.xml b/indra/newview/skins/default/xui/pt/menu_login.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3aeb7483a837a15293987d35a3024bf9fafe85a1
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_login.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Login Menu">
+	<menu label="Arquivo" name="File">
+		<menu_item_call label="Sair" name="Quit"/>
+	</menu>
+	<menu label="Editar" name="Edit">
+		<menu_item_call label="Preferências..." name="Preferences..."/>
+	</menu>
+	<menu label="Ajuda" name="Help">
+		<menu_item_call label="Ajuda do Second Life" name="Second Life Help"/>
+		<menu_item_call label="Sobre o Second Life..." name="About Second Life..."/>
+	</menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/pt/menu_slurl.xml b/indra/newview/skins/default/xui/pt/menu_slurl.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e18e77697541a715d7f4ed3cbe92e738dd60131f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_slurl.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+	<menu_item_call label="Sobre a URL" name="about_url"/>
+	<menu_item_call label="Teletransporte para a URL" name="teleport_to_url"/>
+	<menu_item_call label="Mostrar no Mapa" name="show_on_map"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/mime_types.xml b/indra/newview/skins/default/xui/pt/mime_types.xml
new file mode 100644
index 0000000000000000000000000000000000000000..de3d9581d97c842481dd8a153155de5c16c2683a
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/mime_types.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+	<widgetset name="web">
+		<label name="web_label">
+			Conteúdo da Web
+		</label>
+		<tooltip name="web_tooltip">
+			Esta região possui Conteúdo da Web disponível.
+		</tooltip>
+		<playtip name="web_playtip">
+			Exibir Conteúdo da Web
+		</playtip>
+	</widgetset>
+	<widgetset name="movie">
+		<label name="movie_label">
+			Filme
+		</label>
+		<tooltip name="movie_tooltip">
+			Há um filme disponível para se assistir aqui
+		</tooltip>
+		<playtip name="movie_playtip">
+			Iniciar filme
+		</playtip>
+	</widgetset>
+	<widgetset name="none">
+		<label name="none_label">
+			Sem conteúdo disponível
+		</label>
+		<tooltip name="none_tooltip">
+			Não há mídia disponível aqui.
+		</tooltip>
+	</widgetset>
+	<widgetset name="image">
+		<label name="image_label">
+			Imagem
+		</label>
+		<tooltip name="image_tooltip">
+			Há uma imagem neste local
+		</tooltip>
+		<playtip name="image_playtip">
+			Ver a imagem disponível deste local.
+		</playtip>
+	</widgetset>
+	<widgetset name="audio">
+		<label name="audio_label">
+			Audio
+		</label>
+		<tooltip name="audio_tooltip">
+			Há um audio neste local
+		</tooltip>
+		<playtip name="audio_playtip">
+			Iniciar audio disponípivel nest local
+		</playtip>
+	</widgetset>
+	<scheme name="rtsp">
+		<label name="rtsp_label">
+			Transmissão em tempo real
+		</label>
+	</scheme>
+	<mimetype name="blank">
+		<label name="blank_label">
+			- Nenhum -
+		</label>
+	</mimetype>
+	<mimetype name="none/none">
+		<label name="none/none_label">
+			- None - Nenhum -
+		</label>
+	</mimetype>
+	<mimetype name="audio/*">
+		<label name="audio2_label">
+			Audio
+		</label>
+	</mimetype>
+	<mimetype name="video/*">
+		<label name="video2_label">
+			Vídeo
+		</label>
+	</mimetype>
+	<mimetype name="image/*">
+		<label name="image2_label">
+			Imagem
+		</label>
+	</mimetype>
+	<mimetype name="video/vnd.secondlife.qt.legacy">
+		<label name="vnd.secondlife.qt.legacy_label">
+			Filme (QuickTime)
+		</label>
+	</mimetype>
+	<mimetype name="application/javascript">
+		<label name="application/javascript_label">
+			Javascript
+		</label>
+	</mimetype>
+	<mimetype name="application/ogg">
+		<label name="application/ogg_label">
+			Áudio/Vídeo Ogg
+		</label>
+	</mimetype>
+	<mimetype name="application/pdf">
+		<label name="application/pdf_label">
+			Documento PDF
+		</label>
+	</mimetype>
+	<mimetype name="application/postscript">
+		<label name="application/postscript_label">
+			Documento Postscript
+		</label>
+	</mimetype>
+	<mimetype name="application/rtf">
+		<label name="application/rtf_label">
+			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">
+			Página Web (XHTML)
+		</label>
+	</mimetype>
+	<mimetype name="application/x-director">
+		<label name="application/x-director_label">
+			Macromedia Director
+		</label>
+	</mimetype>
+	<mimetype name="application/x-shockwave-flash">
+		<label name="application/x-shockwave-flash_label">
+			Flash
+		</label>
+	</mimetype>
+	<mimetype name="audio/mid">
+		<label name="audio/mid_label">
+			Áudio (MIDI)
+		</label>
+	</mimetype>
+	<mimetype name="audio/mpeg">
+		<label name="audio/mpeg_label">
+			Áudio (MP3)
+		</label>
+	</mimetype>
+	<mimetype name="audio/x-aiff">
+		<label name="audio/x-aiff_label">
+			Áudio (AIFF)
+		</label>
+	</mimetype>
+	<mimetype name="audio/x-wav">
+		<label name="audio/x-wav_label">
+			Áudio (WAV)
+		</label>
+	</mimetype>
+	<mimetype name="image/bmp">
+		<label name="image/bmp_label">
+			Imagem (BMP)
+		</label>
+	</mimetype>
+	<mimetype name="image/gif">
+		<label name="image/gif_label">
+			Imagem (GIF)
+		</label>
+	</mimetype>
+	<mimetype name="image/jpeg">
+		<label name="image/jpeg_label">
+			Imagem (JPEG)
+		</label>
+	</mimetype>
+	<mimetype name="image/png">
+		<label name="image/png_label">
+			Imagem (PNG)
+		</label>
+	</mimetype>
+	<mimetype name="image/svg+xml">
+		<label name="image/svg+xml_label">
+			Imagem (SVG)
+		</label>
+	</mimetype>
+	<mimetype name="image/tiff">
+		<label name="image/tiff_label">
+			Imagem (TIFF)
+		</label>
+	</mimetype>
+	<mimetype name="text/html">
+		<label name="text/html_label">
+			Página Web
+		</label>
+	</mimetype>
+	<mimetype name="text/plain">
+		<label name="text/plain_label">
+			Texto
+		</label>
+	</mimetype>
+	<mimetype name="text/xml">
+		<label name="text/xml_label">
+			XML
+		</label>
+	</mimetype>
+	<mimetype name="video/mpeg">
+		<label name="video/mpeg_label">
+			Filme (MPEG)
+		</label>
+	</mimetype>
+	<mimetype name="video/mp4">
+		<label name="video/mp4_label">
+			Filme (MP4)
+		</label>
+	</mimetype>
+	<mimetype name="video/quicktime">
+		<label name="video/quicktime_label">
+			Filme (QuickTime)
+		</label>
+	</mimetype>
+	<mimetype name="video/x-ms-asf">
+		<label name="video/x-ms-asf_label">
+			Filme (Windows Media ASF)
+		</label>
+	</mimetype>
+	<mimetype name="video/x-ms-wmv">
+		<label name="video/x-ms-wmv_label">
+			Filme (Windows Media WMV)
+		</label>
+	</mimetype>
+	<mimetype name="video/x-msvideo">
+		<label name="video/x-msvideo_label">
+			Filme (AVI)
+		</label>
+	</mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/pt/panel_audio_device.xml b/indra/newview/skins/default/xui/pt/panel_audio_device.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95814136c5ab080d79e60f5ce5e92dc428645bcd
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_audio_device.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="device_settings">
+	<text name="Audio Devices">
+		Dispositivos de Áudio
+	</text>
+	<text name="Input device (microphone):">
+		Dispositivo de entrada (microfone):
+	</text>
+	<text name="Input level:">
+		Nível de Entrada
+	</text>
+	<string name="default_text">
+		Padrão
+	</string>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_friends.xml b/indra/newview/skins/default/xui/pt/panel_friends.xml
new file mode 100644
index 0000000000000000000000000000000000000000..581560555c2d735b3297d940a2d0f76a4001ccf7
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_friends.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="friends">
+	<string name="Multiple">
+		Multiplos amigos...
+	</string>
+	<scroll_list name="friend_list" tool_tip="Hold shift or control while clicking to select multiple friends">
+		<column name="icon_online_status" tool_tip="Status Online"/>
+		<column label="Name" name="friend_name" tool_tip="Nome"/>
+		<column name="icon_visible_online" tool_tip="Amigo pod ever quando você está online"/>
+		<column name="icon_visible_map" tool_tip="Amigo pode localiza-lo no mapa"/>
+		<column name="icon_edit_mine" tool_tip="Amigo pode editar, apagar ou pegar os seus objetos"/>
+		<column name="icon_edit_theirs" tool_tip="Você pode editar os objetos deste amigo"/>
+	</scroll_list>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
index f299d78f79ab8a2b6a75f687250dc55aa07a4d41..c66288adf0cda17ff6f1fac63da250d04e693761 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel label="Terra L$" name="land_money_tab">
 	<string name="help_text">
-		Lotes pertencentes ao grupo são listadas com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Planejamento, Detalhes e Vendas fornecem informações sobre as finanças do grupo.
+		Lotes pertencentes ao grupo são listadas com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Detalhes e Vendas fornecem informações sobre as finanças do grupo.
 	</string>
 	<button label="?" name="help_button"/>
 	<string name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
index 952997a542334bc038cd29fbaf4830d8f77f6b30..34b40aee9879e4382fd291b3975d0113c9a5b8db 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
@@ -33,11 +33,12 @@
 	<text length="1" name="text_box3" type="string">
 		Console do Chat:
 	</text>
-	<spinner label="Ocultar Chat depois" name="fade_chat_time"/>
-	<text length="1" name="text_box4" type="string">
+	<spinner label="Ocultar Chat depois" name="fade_chat_time" label_width="112" width="162"/>
+	<text length="1" name="text_box4" type="string" left="310">
 		(segundos)
 	</text>
-	<text length="1" name="text_box5" type="string">
+	<spinner left="373" name="max_chat_count"/>
+	<text length="1" name="text_box5" type="string" left="435" width="94">
 		(# linhas)
 	</text>
 	<slider label="Opacidade" name="console_opacity"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index 599d325d8e372d616fc76b04848f22ae927343f1..af14008c5cc331bfdbacae58f68d8ab48a16cea0 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -9,7 +9,7 @@
 		</radio_item>
 	</radio_group>
 	<check_box label="Mostrar Posição Inicial na Tela de Login" name="show_location_checkbox"/>
-	<combo_box name="fade_out_combobox">
+	<combo_box name="fade_out_combobox" width="166">
 		<combo_item name="Never">
 			Nunca
 		</combo_item>
@@ -55,13 +55,13 @@
 	<text name="language_textbox">
 		Linguagem:
 	</text>
-	<text length="1" name="language_textbox2" type="string">
+	<text length="1" name="language_textbox2" type="string" left_delta="313">
 		(Precisa de reinício para efetivar)
 	</text>
 	<string name="region_name_prompt">
 		Digite o nome da Região
 	</string>
-	<combo_box name="crash_behavior_combobox">
+	<combo_box name="crash_behavior_combobox" width="166">
 		<combo_item length="1" name="Askbeforesending" type="string">
 			Perguntar antes de enviar
 		</combo_item>
@@ -72,7 +72,7 @@
 			Nunca Enviar
 		</combo_item>
 	</combo_box>
-	<combo_box name="language_combobox">
+	<combo_box name="language_combobox" width="166">
 		<combo_item name="System Default Language">
 			Padrão do Sistema
 		</combo_item>
@@ -92,7 +92,7 @@
 			Português - Beta
 		</combo_item>
 		<combo_item name="Chinese">
-			汉语/漢語 (Chinês) - Beta
+			中文 (简体) (Chinês) - Beta
 		</combo_item>
 		<combo_item name="(Japanese)">
 			日本語 (Japonês) - Beta
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index 327f5639fc3cc99acc6196c73576120d7b40bced..071548029e0300d8626cf100232ee09b77d2ce1e 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -110,9 +110,9 @@
 	<text name="DrawDistanceMeterText2">
 		m
 	</text>
-	<slider label="Medir Distancia:" name="DrawDistance"/>
-	<slider label="Contador máximo de partículas" name="MaxParticleCount"/>
-	<slider label="Qualidade de Post Process:" name="RenderPostProcess"/>
+	<slider label="Medir Distancia:" name="DrawDistance" width="255" label_width="146" />
+	<slider label="Contador máx de partículas:" name="MaxParticleCount" width="262" label_width="146" />
+	<slider label="Qualidade de Post Process:" name="RenderPostProcess" width="223" label_width="146" />
 	<text name="MeshDetailText">
 		Detalhes de Malha:
 	</text>
@@ -157,7 +157,7 @@
 	<text name="TerrainDetailText">
 		Detalhes do Terreno:
 	</text>
-	<radio_group name="TerrainDetailRadio">
+	<radio_group name="TerrainDetailRadio" left_delta="45" width="276">
 		<radio_item name="0">
 			Baixo
 		</radio_item>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c57cefaafc223f73d0818366d9cc217de963a319
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This file contains strings that used to be hardcoded in the source.
+     It is only for those strings which don&apos;t belong in a floater.
+     For example, the strings used in avatar chat bubbles, and strings 
+     that are returned from one component and may appear in many places-->
+<strings>
+	<string name="LoginInProgress">
+		Fazendo Login. [APP_NAME] pode parecer congelado. Por favor, aguarde.
+	</string>
+	<string name="LoginAuthenticating">
+		Autenticando
+	</string>
+	<string name="LoginMaintenance">
+		Executando manutenção da conta...
+	</string>
+	<string name="LoginAttempt">
+		Falha na tentativa anterior de login. Fazendo Login, tentativa [NUMBER]
+	</string>
+	<string name="LoginPrecaching">
+		Carregando mundo...
+	</string>
+	<string name="LoginInitializingBrowser">
+		Inicializando navegador embutido...
+	</string>
+	<string name="LoginInitializingMultimedia">
+		Inicializando multimídia...
+	</string>
+	<string name="LoginVerifyingCache">
+		Verificando arquivos no cache (pode levar 60-90 segundos)...
+	</string>
+	<string name="LoginProcessingResponse">
+		Processando Resposta...
+	</string>
+	<string name="LoginInitializingWorld">
+		Inicializando Mundo...
+	</string>
+	<string name="LoginDecodingImages">
+		Decodificando imagens...
+	</string>
+	<string name="LoginInitializingQuicktime">
+		Inicializando o QuickTime...
+	</string>
+	<string name="LoginQuicktimeNotFound">
+		O QuickTime não foi encontrado - incapaz de inicializar.
+	</string>
+	<string name="LoginQuicktimeOK">
+		O QuickTime foi inicializado com sucesso.
+	</string>
+	<string name="LoginWaitingForRegionHandshake">
+		Aguardando o handshake com a região...
+	</string>
+	<string name="LoginConnectingToRegion">
+		Conectando à região...
+	</string>
+	<string name="LoginDownloadingClothing">
+		Baixando roupas...
+	</string>
+	<string name="LoginFailedNoNetwork">
+		Erro de Rede: Não foi possível estabelecer uma conexão. Por favor, verifique sua conexão de rede.
+	</string>
+	<string name="AgentLostConnection">
+		Esta região pode estar passando por problemas. Por favor, verifique sua conexão com a internet.
+	</string>
+	<string name="TooltipPerson">
+		Pessoa
+	</string>
+	<string name="TooltipNoName">
+		(sem nome)
+	</string>
+	<string name="TooltipOwner">
+		Proprietário:
+	</string>
+	<string name="TooltipPublic">
+		Público
+	</string>
+	<string name="TooltipIsGroup">
+		(Grupo)
+	</string>
+	<string name="TooltipFlagScript">
+		Script
+	</string>
+	<string name="TooltipFlagPhysics">
+		Física
+	</string>
+	<string name="TooltipFlagTouch">
+		Toque
+	</string>
+	<string name="TooltipFlagL$">
+		L$
+	</string>
+	<string name="TooltipFlagDropInventory">
+		Largar Estoque
+	</string>
+	<string name="TooltipFlagPhantom">
+		Imaterial
+	</string>
+	<string name="TooltipFlagTemporary">
+		Temporário
+	</string>
+	<string name="TooltipFlagRightClickMenu">
+		(Clique com o botão direito para acessar o menu)
+	</string>
+	<string name="TooltipFreeToCopy">
+		Cópia Permitida
+	</string>
+	<string name="TooltipForSaleL$">
+		À venda: L$[AMOUNT]
+	</string>
+	<string name="TooltipForSaleMsg">
+		À venda: [MESSAGE]
+	</string>
+	<string name="TooltipFlagGroupBuild">
+		Construído por Grupo
+	</string>
+	<string name="TooltipFlagNoBuild">
+		Não é Permitido Construir
+	</string>
+	<string name="TooltipFlagNoEdit">
+		Construído por Grupo
+	</string>
+	<string name="TooltipFlagNotSafe">
+		Não é Seguro
+	</string>
+	<string name="TooltipFlagNoFly">
+		Não é Permitido Voar
+	</string>
+	<string name="TooltipFlagGroupScripts">
+		Scripts de Grupo
+	</string>
+	<string name="TooltipFlagNoScripts">
+		Não são Permitidos Scripts
+	</string>
+	<string name="TooltipLand">
+		Terreno:
+	</string>
+	<string name="TooltipMustSingleDrop">
+		Apenas um item único pode ser arrastado para este local
+	</string>
+	<string name="RetrievingData">
+		Buscando...
+	</string>
+	<string name="ReleaseNotes">
+		Notas de Distribuição
+	</string>
+	<string name="LoadingData">
+		Carregando...
+	</string>
+	<string name="AvatarNameNobody">
+		(ninguém)
+	</string>
+	<string name="AvatarNameWaiting">
+		(aguardando)
+	</string>
+	<string name="AvatarNameHippos">
+		(hippos)
+	</string>
+	<string name="GroupNameNone">
+		(nenhum)
+	</string>
+	<string name="AssetErrorNone">
+		Nenhum erro
+	</string>
+	<string name="AssetErrorRequestFailed">
+		Valor pedido falhou
+	</string>
+	<string name="AssetErrorNonexistentFile">
+		Valor pedido: arquivo inexistente
+	</string>
+	<string name="AssetErrorNotInDatabase">
+		Valor pedido: valor não encontrado na base de dados.
+	</string>
+	<string name="AssetErrorEOF">
+		Fim do arquivo
+	</string>
+	<string name="AssetErrorCannotOpenFile">
+		Não é possível abrir arquivo
+	</string>
+	<string name="AssetErrorFileNotFound">
+		Arquivo não encontrado
+	</string>
+	<string name="AssetErrorTCPTimeout">
+		Tempo de transferência de arquivo expirado
+	</string>
+	<string name="AssetErrorCircuitGone">
+		Circuito caiu (Circuit gone)
+	</string>
+	<string name="AssetErrorUnknownStatus">
+		Status desconhecido
+	</string>
+	<string name="AvatarEditingApparance">
+		(Editando Aparência)
+	</string>
+	<string name="AvatarAway">
+		Distante
+	</string>
+	<string name="AvatarBusy">
+		Ocupado
+	</string>
+	<string name="AvatarMuted">
+		Emudecido
+	</string>
+	<string name="anim_express_afraid">
+		Temeroso
+	</string>
+	<string name="anim_express_anger">
+		Bravo
+	</string>
+	<string name="anim_away">
+		Distante
+	</string>
+	<string name="anim_backflip">
+		Virar para trás
+	</string>
+	<string name="anim_express_laugh">
+		Rir segurando a barriga
+	</string>
+	<string name="anim_express_toothsmile">
+		Sorriso largo
+	</string>
+	<string name="anim_blowkiss">
+		Mandar beijo
+	</string>
+	<string name="anim_express_bored">
+		Entediado
+	</string>
+	<string name="anim_bow">
+		Saudar curvando
+	</string>
+	<string name="anim_clap">
+		Aplaudir
+	</string>
+	<string name="anim_courtbow">
+		Saudação formal
+	</string>
+	<string name="anim_express_cry">
+		Chorar
+	</string>
+	<string name="anim_dance1">
+		Dança 1
+	</string>
+	<string name="anim_dance2">
+		Dança 2
+	</string>
+	<string name="anim_dance3">
+		Dança 3
+	</string>
+	<string name="anim_dance4">
+		Dança 4
+	</string>
+	<string name="anim_dance5">
+		Dança 5
+	</string>
+	<string name="anim_dance6">
+		Dança 6
+	</string>
+	<string name="anim_dance7">
+		Dança 7
+	</string>
+	<string name="anim_dance8">
+		Dança 8
+	</string>
+	<string name="anim_express_disdain">
+		Desdén
+	</string>
+	<string name="anim_drink">
+		Beber
+	</string>
+	<string name="anim_express_embarrased">
+		Envergonhado
+	</string>
+	<string name="anim_angry_fingerwag">
+		Negar com o dedo.
+	</string>
+	<string name="anim_fist_pump">
+		Vibrar provocando
+	</string>
+	<string name="anim_yoga_float">
+		Levitar Yoga
+	</string>
+	<string name="anim_express_frown">
+		Careta
+	</string>
+	<string name="anim_impatient">
+		Impaciente
+	</string>
+	<string name="anim_jumpforjoy">
+		Pular de Alegria
+	</string>
+	<string name="anim_kissmybutt">
+		Beije meu Bumbum
+	</string>
+	<string name="anim_express_kiss">
+		Beijar
+	</string>
+	<string name="anim_laugh_short">
+		rir
+	</string>
+	<string name="anim_musclebeach">
+		Exibir músculos
+	</string>
+	<string name="anim_no_unhappy">
+		Não (descontente)
+	</string>
+	<string name="anim_no_head">
+		Não
+	</string>
+	<string name="anim_nyanya">
+		Nya-nya-nya
+	</string>
+	<string name="anim_punch_onetwo">
+		Um-Dois soco
+	</string>
+	<string name="anim_express_open_mouth">
+		Abrir a boca
+	</string>
+	<string name="anim_peace">
+		Paz
+	</string>
+	<string name="anim_point_you">
+		Apontar para o outro
+	</string>
+	<string name="anim_point_me">
+		Apontar para si
+	</string>
+	<string name="anim_punch_l">
+		Socar Esquerda
+	</string>
+	<string name="anim_punch_r">
+		Socar Direita
+	</string>
+	<string name="anim_rps_countdown">
+		RPS contar
+	</string>
+	<string name="anim_rps_paper">
+		RPS papel
+	</string>
+	<string name="anim_rps_rock">
+		RPS pedra
+	</string>
+	<string name="anim_rps_scissors">
+		RPS tesoura
+	</string>
+	<string name="anim_express_repulsed">
+		Repulsa
+	</string>
+	<string name="anim_kick_roundhouse_r">
+		Chute giratório
+	</string>
+	<string name="anim_express_sad">
+		Triste
+	</string>
+	<string name="anim_salute">
+		Saúde
+	</string>
+	<string name="anim_shout">
+		Gritar
+	</string>
+	<string name="anim_express_shrug">
+		Encolher ombros
+	</string>
+	<string name="anim_express_smile">
+		Sorrir
+	</string>
+	<string name="anim_smoke_idle">
+		Fumar a toa
+	</string>
+	<string name="anim_smoke_inhale">
+		Inalar Fumaça
+	</string>
+	<string name="anim_smoke_throw_down">
+		Expelir Fumaça
+	</string>
+	<string name="anim_express_surprise">
+		Surpresa
+	</string>
+	<string name="anim_sword_strike_r">
+		Golpe de Espada
+	</string>
+	<string name="anim_angry_tantrum">
+		Enraivecer
+	</string>
+	<string name="anim_express_tongue_out">
+		Mostrar a língua
+	</string>
+	<string name="anim_hello">
+		Onda
+	</string>
+	<string name="anim_whisper">
+		Sussurrar
+	</string>
+	<string name="anim_whistle">
+		Assobiar
+	</string>
+	<string name="anim_express_wink">
+		Piscar
+	</string>
+	<string name="anim_wink_hollywood">
+		Piscar (Hollywood)
+	</string>
+	<string name="anim_express_worry">
+		Preocupar-se
+	</string>
+	<string name="anim_yes_happy">
+		Sim (Feliz)
+	</string>
+	<string name="anim_yes_head">
+		Sim
+	</string>
+	<string name="texture_loading">
+		Carregando...
+	</string>
+	<string name="worldmap_offline">
+		Desconectado
+	</string>
+	<string name="whisper">
+		sussurra:
+	</string>
+	<string name="shout">
+		grita:
+	</string>
+</strings>