diff --git a/indra/llcommon/llcursortypes.cpp b/indra/llcommon/llcursortypes.cpp
index 23ede97af3ae81dbd3dab3c31134e423a1969c8d..6751c235f6be8807556a76c0c81209cbea075aad 100644
--- a/indra/llcommon/llcursortypes.cpp
+++ b/indra/llcommon/llcursortypes.cpp
@@ -72,6 +72,9 @@ ECursorType getCursorFromString(const std::string& cursor_string)
 		cursor_string_table["UI_CURSOR_TOOLPAUSE"] = UI_CURSOR_TOOLPAUSE;
 		cursor_string_table["UI_CURSOR_TOOLMEDIAOPEN"] = UI_CURSOR_TOOLMEDIAOPEN;
 		cursor_string_table["UI_CURSOR_PIPETTE"] = UI_CURSOR_PIPETTE;
+		cursor_string_table["UI_CURSOR_TOOLSIT"] = UI_CURSOR_TOOLSIT;
+		cursor_string_table["UI_CURSOR_TOOLBUY"] = UI_CURSOR_TOOLBUY;
+		cursor_string_table["UI_CURSOR_TOOLOPEN"] = UI_CURSOR_TOOLOPEN;
 	}
 
 	std::map<std::string,U32>::const_iterator iter = cursor_string_table.find(cursor_string);
diff --git a/indra/llcommon/llcursortypes.h b/indra/llcommon/llcursortypes.h
index a1b8178bfe65365b4ca81e8881814be50f4b8f49..143c2c64cffba6a1d442e91d1fda329d4ce05e83 100644
--- a/indra/llcommon/llcursortypes.h
+++ b/indra/llcommon/llcursortypes.h
@@ -68,6 +68,9 @@ enum ECursorType {
 	UI_CURSOR_TOOLPAUSE,
 	UI_CURSOR_TOOLMEDIAOPEN,
 	UI_CURSOR_PIPETTE,
+	UI_CURSOR_TOOLSIT,
+	UI_CURSOR_TOOLBUY,
+	UI_CURSOR_TOOLOPEN,
 	UI_CURSOR_COUNT			// Number of elements in this enum (NOT a cursor)
 };
 
diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp
index d48f4ad0f5e3c99b1485442caeecce0156edf8f7..cb62e462713e7f4285ef25a1c76a0934362705f5 100644
--- a/indra/llplugin/llpluginclassmedia.cpp
+++ b/indra/llplugin/llpluginclassmedia.cpp
@@ -65,15 +65,19 @@ LLPluginClassMedia::~LLPluginClassMedia()
 	reset();
 }
 
-bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path, const std::string &language_code)
+bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug)
 {	
 	LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL;
 	LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL;
-	LL_DEBUGS("Plugin") << "user_data_path: " << user_data_path << LL_ENDL;
 	
 	mPlugin = new LLPluginProcessParent(this);
 	mPlugin->setSleepTime(mSleepTime);
-	mPlugin->init(launcher_filename, plugin_filename, debug, user_data_path,language_code);
+	
+	// Queue up the media init message -- it will be sent after all the currently queued messages.
+	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "init");
+	sendMessage(message);
+	
+	mPlugin->init(launcher_filename, plugin_filename, debug);
 
 	return true;
 }
@@ -678,6 +682,20 @@ void LLPluginClassMedia::paste()
 	sendMessage(message);
 }
 
+void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path)
+{
+	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_user_data_path");
+	message.setValue("path", user_data_path);
+	sendMessage(message);
+}
+
+void LLPluginClassMedia::setLanguageCode(const std::string &language_code)
+{
+	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_language_code");
+	message.setValue("language", language_code);
+	sendMessage(message);
+}
+
 LLPluginClassMedia::ETargetType getTargetTypeFromLLQtWebkit(int target_type)
 {
 	// convert a LinkTargetType value from llqtwebkit to an ETargetType
diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h
index ce49241e84f7dc91a9393a3cb68440560cb7e8cd..6318c67f12673bc84b87a5906c846833cc5cd373 100644
--- a/indra/llplugin/llpluginclassmedia.h
+++ b/indra/llplugin/llpluginclassmedia.h
@@ -51,9 +51,7 @@ class LLPluginClassMedia : public LLPluginProcessParentOwner
 	// local initialization, called by the media manager when creating a source
 	virtual bool init(const std::string &launcher_filename, 
 					  const std::string &plugin_filename, 
-					  bool debug, 
-					  const std::string &user_data_path,
-					  const std::string &language_code);
+					  bool debug);
 
 	// undoes everything init() didm called by the media manager when destroying a source
 	virtual void reset();
@@ -177,6 +175,10 @@ class LLPluginClassMedia : public LLPluginProcessParentOwner
 
 	void	paste();
 	bool	canPaste() const { return mCanPaste; };
+	
+	// These can be called before init(), and they will be queued and sent before the media init message.
+	void	setUserDataPath(const std::string &user_data_path);
+	void	setLanguageCode(const std::string &language_code);
 		
 	///////////////////////////////////
 	// media browser class functions
diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp
index 9b43ec0e3eedee89e4a8caacbdc87fc2d48fd380..ccaf95b36ded8c072865cb1a954041650126dce1 100644
--- a/indra/llplugin/llpluginprocesschild.cpp
+++ b/indra/llplugin/llpluginprocesschild.cpp
@@ -155,8 +155,6 @@ void LLPluginProcessChild::idle(void)
 				{
 					setState(STATE_PLUGIN_INITIALIZING);
 					LLPluginMessage message("base", "init");
-					message.setValue("user_data_path", mUserDataPath);
-					message.setValue("language_code", mLanguageCode);
 					sendMessageToPlugin(message);
 				}
 			break;
@@ -329,8 +327,6 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message)
 			if(message_name == "load_plugin")
 			{
 				mPluginFile = parsed.getValue("file");
-				mUserDataPath = parsed.getValue("user_data_path");
-				mLanguageCode = parsed.getValue("language_code");
 			}
 			else if(message_name == "shm_add")
 			{
diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h
index af76ec1fa53a0c848d2f225bb605ac59705cf3e4..0e5e85406a671fa00f0b33ac1357e5ca17695e8a 100644
--- a/indra/llplugin/llpluginprocesschild.h
+++ b/indra/llplugin/llpluginprocesschild.h
@@ -98,9 +98,6 @@ class LLPluginProcessChild: public LLPluginMessagePipeOwner, public LLPluginInst
 	
 	std::string mPluginFile;
 
-	std::string mUserDataPath;
-	std::string mLanguageCode;
-	
 	LLPluginInstance *mInstance;
 
 	typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType;
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index 0ce2c759bace238aa0d9dbab26d64447e0faae67..895c858979026645dfc5632e6707ae2cc7fd773e 100644
--- a/indra/llplugin/llpluginprocessparent.cpp
+++ b/indra/llplugin/llpluginprocessparent.cpp
@@ -98,15 +98,12 @@ void LLPluginProcessParent::errorState(void)
 		setState(STATE_ERROR);
 }
 
-void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path, const std::string &language_code)
+void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug)
 {	
 	mProcess.setExecutable(launcher_filename);
 	mPluginFile = plugin_filename;
 	mCPUUsage = 0.0f;
-	mDebug = debug;
-	mUserDataPath = user_data_path;
-	mLanguageCode = language_code;
-	
+	mDebug = debug;	
 	setState(STATE_INITIALIZED);
 }
 
@@ -363,8 +360,6 @@ void LLPluginProcessParent::idle(void)
 				{
 					LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "load_plugin");
 					message.setValue("file", mPluginFile);
-					message.setValue("user_data_path", mUserDataPath);
-					message.setValue("language_code", mLanguageCode);
 					sendMessage(message);
 				}
 
diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h
index 23702814c8b9168e1a6804185b3d386d250c76ae..cc6c513615747283dfd71c9e504841168697ffb3 100644
--- a/indra/llplugin/llpluginprocessparent.h
+++ b/indra/llplugin/llpluginprocessparent.h
@@ -61,9 +61,7 @@ class LLPluginProcessParent : public LLPluginMessagePipeOwner
 		
 	void init(const std::string &launcher_filename, 
 			  const std::string &plugin_filename, 
-			  bool debug, 
-			  const std::string &user_data_path,
-			  const std::string &language_code);
+			  bool debug);
 
 	void idle(void);
 	
@@ -148,9 +146,6 @@ class LLPluginProcessParent : public LLPluginMessagePipeOwner
 	
 	std::string mPluginFile;
 
-	std::string mUserDataPath;
-	std::string mLanguageCode;
-
 	LLPluginProcessParentOwner *mOwner;
 	
 	typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType;
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 35428e422723f8c61bc9c7e43bd63d9e9d1d4b5c..e8e345967309ac3f6ecceba36391a0899f70c846 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -310,7 +310,6 @@ LLUrlEntryAgent::LLUrlEntryAgent()
 							boost::regex::perl|boost::regex::icase);
 	mMenuName = "menu_url_agent.xml";
 	mIcon = "Generic_Person";
-	mTooltip = LLTrans::getString("TooltipAgentUrl");
 	mColor = LLUIColorTable::instance().getColor("AgentLinkColor");
 }
 
@@ -323,6 +322,38 @@ void LLUrlEntryAgent::onAgentNameReceived(const LLUUID& id,
 	callObservers(id.asString(), first + " " + last);
 }
 
+std::string LLUrlEntryAgent::getTooltip(const std::string &string) const
+{
+	// return a tooltip corresponding to the URL type instead of the generic one
+	std::string url = getUrl(string);
+
+	if (LLStringUtil::endsWith(url, "/mute"))
+	{
+		return LLTrans::getString("TooltipAgentMute");
+	}
+	if (LLStringUtil::endsWith(url, "/unmute"))
+	{
+		return LLTrans::getString("TooltipAgentUnmute");
+	}
+	if (LLStringUtil::endsWith(url, "/im"))
+	{
+		return LLTrans::getString("TooltipAgentIM");
+	}
+	if (LLStringUtil::endsWith(url, "/pay"))
+	{
+		return LLTrans::getString("TooltipAgentPay");
+	}
+	if (LLStringUtil::endsWith(url, "/offerteleport"))
+	{
+		return LLTrans::getString("TooltipAgentOfferTeleport");
+	}
+	if (LLStringUtil::endsWith(url, "/requestfriend"))
+	{
+		return LLTrans::getString("TooltipAgentRequestFriend");
+	}
+	return LLTrans::getString("TooltipAgentUrl");
+}
+
 std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCallback &cb)
 {
 	if (!gCacheName)
@@ -346,6 +377,31 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa
 	}
 	else if (gCacheName->getFullName(agent_id, full_name))
 	{
+		// customize label string based on agent SLapp suffix
+		if (LLStringUtil::endsWith(url, "/mute"))
+		{
+			return LLTrans::getString("SLappAgentMute") + " " + full_name;
+		}
+		if (LLStringUtil::endsWith(url, "/unmute"))
+		{
+			return LLTrans::getString("SLappAgentUnmute") + " " + full_name;
+		}
+		if (LLStringUtil::endsWith(url, "/im"))
+		{
+			return LLTrans::getString("SLappAgentIM") + " " + full_name;
+		}
+		if (LLStringUtil::endsWith(url, "/pay"))
+		{
+			return LLTrans::getString("SLappAgentPay") + " " + full_name;
+		}
+		if (LLStringUtil::endsWith(url, "/offerteleport"))
+		{
+			return LLTrans::getString("SLappAgentOfferTeleport") + " " + full_name;
+		}
+		if (LLStringUtil::endsWith(url, "/requestfriend"))
+		{
+			return LLTrans::getString("SLappAgentRequestFriend") + " " + full_name;
+		}
 		return full_name;
 	}
 	else
diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h
index c947ef7259cdcd1215230f79ad1206f930408426..84d09687798ef8bed89e66092844d710d1662ea9 100644
--- a/indra/llui/llurlentry.h
+++ b/indra/llui/llurlentry.h
@@ -169,6 +169,7 @@ class LLUrlEntryAgent : public LLUrlEntryBase
 public:
 	LLUrlEntryAgent();
 	/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb);
+	/*virtual*/ std::string getTooltip(const std::string &string) const;
 private:
 	void onAgentNameReceived(const LLUUID& id, const std::string& first,
 							 const std::string& last, BOOL is_group);
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index d34083a3844f514dc2de6104326349cc5ea3d32f..57beb71a01329decf3bf54b588a3f23565114baf 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -152,7 +152,7 @@ LLView::~LLView()
 	//llinfos << "Deleting view " << mName << ":" << (void*) this << llendl;
 	if (LLView::sIsDrawing)
 	{
-		llwarns << "Deleting view " << mName << " during UI draw() phase" << llendl;
+		lldebugs << "Deleting view " << mName << " during UI draw() phase" << llendl;
 	}
 // 	llassert(LLView::sIsDrawing == FALSE);
 	
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 924acaf14829cfec84b86973bab60a43c3119d6e..224314a490f4e9f5b26ddf731289e1ab99abb7e4 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -2807,6 +2807,9 @@ const char* cursorIDToName(int id)
 		case UI_CURSOR_TOOLPAUSE:		return "UI_CURSOR_TOOLPAUSE";
 		case UI_CURSOR_TOOLMEDIAOPEN:	return "UI_CURSOR_TOOLMEDIAOPEN";
 		case UI_CURSOR_PIPETTE:			return "UI_CURSOR_PIPETTE";		
+		case UI_CURSOR_TOOLSIT:			return "UI_CURSOR_TOOLSIT";
+		case UI_CURSOR_TOOLBUY:			return "UI_CURSOR_TOOLBUY";
+		case UI_CURSOR_TOOLOPEN:		return "UI_CURSOR_TOOLOPEN";
 	}
 
 	llerrs << "cursorIDToName: unknown cursor id" << id << llendl;
@@ -2909,6 +2912,9 @@ void LLWindowMacOSX::setCursor(ECursorType cursor)
 	case UI_CURSOR_TOOLPLAY:
 	case UI_CURSOR_TOOLPAUSE:
 	case UI_CURSOR_TOOLMEDIAOPEN:
+	case UI_CURSOR_TOOLSIT:
+	case UI_CURSOR_TOOLBUY:
+	case UI_CURSOR_TOOLOPEN:
 		result = setImageCursor(gCursors[cursor]);
 		break;
 
@@ -2950,6 +2956,9 @@ void LLWindowMacOSX::initCursors()
 	initPixmapCursor(UI_CURSOR_TOOLPLAY, 1, 1);
 	initPixmapCursor(UI_CURSOR_TOOLPAUSE, 1, 1);
 	initPixmapCursor(UI_CURSOR_TOOLMEDIAOPEN, 1, 1);
+	initPixmapCursor(UI_CURSOR_TOOLSIT, 20, 15);
+	initPixmapCursor(UI_CURSOR_TOOLBUY, 20, 15);
+	initPixmapCursor(UI_CURSOR_TOOLOPEN, 20, 15);
 
 	initPixmapCursor(UI_CURSOR_SIZENWSE, 10, 10);
 	initPixmapCursor(UI_CURSOR_SIZENESW, 10, 10);
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 4be5d06c2b59bc67654a6516a409676d40d284d3..5f778d62083a6f00af39a1779dbe45d19ae34db3 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -46,6 +46,7 @@
 #include "llerror.h"
 #include "llgl.h"
 #include "llstring.h"
+#include "lldir.h"
 
 // System includes
 #include <commdlg.h>
@@ -1545,6 +1546,11 @@ void LLWindowWin32::initCursors()
 	mCursor[ UI_CURSOR_PIPETTE ] = LoadCursor(module, TEXT("TOOLPIPETTE"));
 
 	// Color cursors
+	gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "res", "toolbuy.cur");
+
+	mCursor[UI_CURSOR_TOOLSIT] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolsit.cur").c_str());
+	mCursor[UI_CURSOR_TOOLBUY] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolbuy.cur").c_str());
+	mCursor[UI_CURSOR_TOOLOPEN] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolopen.cur").c_str());
 	mCursor[UI_CURSOR_TOOLPLAY] = loadColorCursor(TEXT("TOOLPLAY"));
 	mCursor[UI_CURSOR_TOOLPAUSE] = loadColorCursor(TEXT("TOOLPAUSE"));
 	mCursor[UI_CURSOR_TOOLMEDIAOPEN] = loadColorCursor(TEXT("TOOLMEDIAOPEN"));
diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp
index f5b077fea037410a80d4643fb11328c8231aacad..49bbca6c521ed3d6c76a0439dea77128e46e86d8 100644
--- a/indra/media_plugins/example/media_plugin_example.cpp
+++ b/indra/media_plugins/example/media_plugin_example.cpp
@@ -119,17 +119,6 @@ void MediaPluginExample::receiveMessage( const char* message_string )
 				std::string plugin_version = "Example media plugin, Example Version 1.0.0.0";
 				message.setValue( "plugin_version", plugin_version );
 				sendMessage( message );
-
-				// Plugin gets to decide the texture parameters to use.
-				message.setMessage( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" );
-				message.setValueS32( "default_width", mWidth );
-				message.setValueS32( "default_height", mHeight );
-				message.setValueS32( "depth", mDepth );
-				message.setValueU32( "internalformat", GL_RGBA );
-				message.setValueU32( "format", GL_RGBA );
-				message.setValueU32( "type", GL_UNSIGNED_BYTE );
-				message.setValueBoolean( "coords_opengl", false );
-				sendMessage( message );
 			}
 			else
 			if ( message_name == "idle" )
@@ -191,7 +180,20 @@ void MediaPluginExample::receiveMessage( const char* message_string )
 		else
 		if ( message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA )
 		{
-			if ( message_name == "size_change" )
+			if ( message_name == "init" )
+			{
+				// Plugin gets to decide the texture parameters to use.
+				LLPluginMessage message( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" );
+				message.setValueS32( "default_width", mWidth );
+				message.setValueS32( "default_height", mHeight );
+				message.setValueS32( "depth", mDepth );
+				message.setValueU32( "internalformat", GL_RGBA );
+				message.setValueU32( "format", GL_RGBA );
+				message.setValueU32( "type", GL_UNSIGNED_BYTE );
+				message.setValueBoolean( "coords_opengl", false );
+				sendMessage( message );
+			}
+			else if ( message_name == "size_change" )
 			{
 				std::string name = message_in.getValue( "name" );
 				S32 width = message_in.getValueS32( "width" );
diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
index 26173314a7f8ea52d2802291ea0a0fcb1873b549..a69da3ff5aa83c5bde0c67d973872d72ec20af0e 100644
--- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
+++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp
@@ -946,33 +946,6 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string)
 
 				message.setValue("plugin_version", getVersion());
 				sendMessage(message);
-
-				// Plugin gets to decide the texture parameters to use.
-				message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
-				// lame to have to decide this now, it depends on the movie.  Oh well.
-				mDepth = 4;
-
-				mCurrentWidth = 1;
-				mCurrentHeight = 1;
-				mPreviousWidth = 1;
-				mPreviousHeight = 1;
-				mNaturalWidth = 1;
-				mNaturalHeight = 1;
-				mWidth = 1;
-				mHeight = 1;
-				mTextureWidth = 1;
-				mTextureHeight = 1;
-
-				message.setValueU32("format", GL_RGBA);
-				message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV);
-
-				message.setValueS32("depth", mDepth);
-				message.setValueS32("default_width", mWidth);
-				message.setValueS32("default_height", mHeight);
-				message.setValueU32("internalformat", GL_RGBA8);
-				message.setValueBoolean("coords_opengl", true);	// true == use OpenGL-style coordinates, false == (0,0) is upper left.
-				message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale
-				sendMessage(message);
 			}
 			else if(message_name == "idle")
 			{
@@ -1037,7 +1010,36 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string)
 		}
 		else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA)
 		{
-			if(message_name == "size_change")
+			if(message_name == "init")
+			{
+				// Plugin gets to decide the texture parameters to use.
+				LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
+				// lame to have to decide this now, it depends on the movie.  Oh well.
+				mDepth = 4;
+
+				mCurrentWidth = 1;
+				mCurrentHeight = 1;
+				mPreviousWidth = 1;
+				mPreviousHeight = 1;
+				mNaturalWidth = 1;
+				mNaturalHeight = 1;
+				mWidth = 1;
+				mHeight = 1;
+				mTextureWidth = 1;
+				mTextureHeight = 1;
+
+				message.setValueU32("format", GL_RGBA);
+				message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV);
+
+				message.setValueS32("depth", mDepth);
+				message.setValueS32("default_width", mWidth);
+				message.setValueS32("default_height", mHeight);
+				message.setValueU32("internalformat", GL_RGBA8);
+				message.setValueBoolean("coords_opengl", true);	// true == use OpenGL-style coordinates, false == (0,0) is upper left.
+				message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale
+				sendMessage(message);
+			}
+			else if(message_name == "size_change")
 			{
 				std::string name = message_in.getValue("name");
 				S32 width = message_in.getValueS32("width");
diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
index e230fcc280e2cbd6e4bc335ca671cc0caab69395..1f88301ca7fb3f666f261474a3e9e8a46e204ce7 100644
--- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
+++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
@@ -859,36 +859,6 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string)
 				plugin_version += codec.str();
 				message.setValue("plugin_version", plugin_version);
 				sendMessage(message);
-
-				// Plugin gets to decide the texture parameters to use.
-				message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
-				#if defined(LL_WINDOWS)
-					// Values for Windows
-					mDepth = 3;
-					message.setValueU32("format", GL_RGB);
-					message.setValueU32("type", GL_UNSIGNED_BYTE);
-
-					// We really want to pad the texture width to a multiple of 32 bytes, but since we're using 3-byte pixels, it doesn't come out even.
-					// Padding to a multiple of 3*32 guarantees it'll divide out properly.
-					message.setValueU32("padding", 32 * 3);
-				#else
-					// Values for Mac
-					mDepth = 4;
-					message.setValueU32("format", GL_BGRA_EXT);
-					#ifdef __BIG_ENDIAN__
-						message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV );
-					#else
-						message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8);
-					#endif
-
-					// Pad texture width to a multiple of 32 bytes, to line up with cache lines.
-					message.setValueU32("padding", 32);
-				#endif
-				message.setValueS32("depth", mDepth);
-				message.setValueU32("internalformat", GL_RGB);
-				message.setValueBoolean("coords_opengl", true);	// true == use OpenGL-style coordinates, false == (0,0) is upper left.
-				message.setValueBoolean("allow_downsample", true);
-				sendMessage(message);
 			}
 			else if(message_name == "idle")
 			{
@@ -953,7 +923,41 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string)
 		}
 		else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA)
 		{
-			if(message_name == "size_change")
+			if(message_name == "init")
+			{
+				// This is the media init message -- all necessary data for initialization should have been received.
+
+				// Plugin gets to decide the texture parameters to use.
+				LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
+				#if defined(LL_WINDOWS)
+					// Values for Windows
+					mDepth = 3;
+					message.setValueU32("format", GL_RGB);
+					message.setValueU32("type", GL_UNSIGNED_BYTE);
+
+					// We really want to pad the texture width to a multiple of 32 bytes, but since we're using 3-byte pixels, it doesn't come out even.
+					// Padding to a multiple of 3*32 guarantees it'll divide out properly.
+					message.setValueU32("padding", 32 * 3);
+				#else
+					// Values for Mac
+					mDepth = 4;
+					message.setValueU32("format", GL_BGRA_EXT);
+					#ifdef __BIG_ENDIAN__
+						message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV );
+					#else
+						message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8);
+					#endif
+
+					// Pad texture width to a multiple of 32 bytes, to line up with cache lines.
+					message.setValueU32("padding", 32);
+				#endif
+				message.setValueS32("depth", mDepth);
+				message.setValueU32("internalformat", GL_RGB);
+				message.setValueBoolean("coords_opengl", true);	// true == use OpenGL-style coordinates, false == (0,0) is upper left.
+				message.setValueBoolean("allow_downsample", true);
+				sendMessage(message);
+			}
+			else if(message_name == "size_change")
 			{
 				std::string name = message_in.getValue("name");
 				S32 width = message_in.getValueS32("width");
diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp
index afde904be652804a3446f7ee60afc6f0631efb61..24c53638d2bd07744e0beb1b5e12b3e3b33d4d35 100644
--- a/indra/media_plugins/webkit/media_plugin_webkit.cpp
+++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp
@@ -88,10 +88,12 @@ class MediaPluginWebKit :
 private:
 
 	std::string mProfileDir;
+	std::string mHostLanguage;
 
 	enum
 	{
-		INIT_STATE_UNINITIALIZED,		// Browser instance hasn't been set up yet
+		INIT_STATE_UNINITIALIZED,		// LLQtWebkit hasn't been set up yet
+		INIT_STATE_INITIALIZED,			// LLQtWebkit has been set up, but no browser window has been created yet.
 		INIT_STATE_NAVIGATING,			// Browser instance has been set up and initial navigate to about:blank has been issued
 		INIT_STATE_NAVIGATE_COMPLETE,	// initial navigate to about:blank has completed
 		INIT_STATE_WAIT_REDRAW,			// First real navigate begin has been received, waiting for page changed event to start handling redraws
@@ -191,13 +193,6 @@ class MediaPluginWebKit :
 		if ( mInitState > INIT_STATE_UNINITIALIZED )
 			return true;
 
-		// not enough information to initialize the browser yet.
-		if ( mWidth < 0 || mHeight < 0 || mDepth < 0 || 
-				mTextureWidth < 0 || mTextureHeight < 0 )
-		{
-			return false;
-		};
-
 		// set up directories
 		char cwd[ FILENAME_MAX ];	// I *think* this is defined on all platforms we use
 		if (NULL == getcwd( cwd, FILENAME_MAX - 1 ))
@@ -208,12 +203,12 @@ class MediaPluginWebKit :
 		std::string application_dir = std::string( cwd );
 
 #if LL_DARWIN
-	// When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on.
-	// This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger.
-	// This wouldn't cause any problems except for the fact that the current release version of the Flash plugin has a call to Debugger() in it
-	// which gets hit when the plugin is probed by webkit.
-	// Unsetting the environment variable here works around this issue.
-	unsetenv("USERBREAK");
+		// When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on.
+		// This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger.
+		// This wouldn't cause any problems except for the fact that the current release version of the Flash plugin has a call to Debugger() in it
+		// which gets hit when the plugin is probed by webkit.
+		// Unsetting the environment variable here works around this issue.
+		unsetenv("USERBREAK");
 #endif
 
 #if LL_WINDOWS
@@ -254,66 +249,92 @@ class MediaPluginWebKit :
 		bool result = LLQtWebKit::getInstance()->init( application_dir, component_dir, mProfileDir, native_window_handle );
 		if ( result )
 		{
-			// create single browser window
-			mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight );
+			mInitState = INIT_STATE_INITIALIZED;
+			
+			return true;
+		};
+
+		return false;
+	};
+
+	////////////////////////////////////////////////////////////////////////////////
+	//
+	bool initBrowserWindow()
+	{
+		// already initialized
+		if ( mInitState > INIT_STATE_INITIALIZED )
+			return true;
+
+		// not enough information to initialize the browser yet.
+		if ( mWidth < 0 || mHeight < 0 || mDepth < 0 || 
+				mTextureWidth < 0 || mTextureHeight < 0 )
+		{
+			return false;
+		};
+		
+		// Set up host language before creating browser window
+		if(!mHostLanguage.empty())
+		{
+			LLQtWebKit::getInstance()->setHostLanguage(mHostLanguage);
+		}
+		
+		// create single browser window
+		mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight );
 #if LL_WINDOWS
-			// Enable plugins
-			LLQtWebKit::getInstance()->enablePlugins(true);
+		// Enable plugins
+		LLQtWebKit::getInstance()->enablePlugins(true);
 #elif LL_DARWIN
-			// Enable plugins
-			LLQtWebKit::getInstance()->enablePlugins(true);
+		// Enable plugins
+		LLQtWebKit::getInstance()->enablePlugins(true);
 #elif LL_LINUX
-			// Enable plugins
-			LLQtWebKit::getInstance()->enablePlugins(true);
+		// Enable plugins
+		LLQtWebKit::getInstance()->enablePlugins(true);
 #endif
-			// Enable cookies
-			LLQtWebKit::getInstance()->enableCookies( true );
+		// Enable cookies
+		LLQtWebKit::getInstance()->enableCookies( true );
 
-			// tell LLQtWebKit about the size of the browser window
-			LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight );
+		// tell LLQtWebKit about the size of the browser window
+		LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight );
 
-			// observer events that LLQtWebKit emits
-			LLQtWebKit::getInstance()->addObserver( mBrowserWindowId, this );
+		// observer events that LLQtWebKit emits
+		LLQtWebKit::getInstance()->addObserver( mBrowserWindowId, this );
 
-			// append details to agent string
-			LLQtWebKit::getInstance()->setBrowserAgentId( "LLPluginMedia Web Browser" );
+		// append details to agent string
+		LLQtWebKit::getInstance()->setBrowserAgentId( "LLPluginMedia Web Browser" );
 
 #if !LL_QTWEBKIT_USES_PIXMAPS
-			// don't flip bitmap
-			LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true );
+		// don't flip bitmap
+		LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true );
 #endif // !LL_QTWEBKIT_USES_PIXMAPS
-			
-			// set background color
-			// convert background color channels from [0.0, 1.0] to [0, 255];
-			LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, int(mBackgroundR * 255.0f), int(mBackgroundG * 255.0f), int(mBackgroundB * 255.0f) );
-
-			// Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns.
-			setInitState(INIT_STATE_NAVIGATING);
-
-			// Don't do this here -- it causes the dreaded "white flash" when loading a browser instance.
-			// FIXME: Re-added this because navigating to a "page" initializes things correctly - especially
-			// for the HTTP AUTH dialog issues (DEV-41731). Will fix at a later date.
-			// Build a data URL like this: "data:text/html,%3Chtml%3E%3Cbody bgcolor=%22#RRGGBB%22%3E%3C/body%3E%3C/html%3E"
-			// where RRGGBB is the background color in HTML style
-			std::stringstream url;
-			
-			url << "data:text/html,%3Chtml%3E%3Cbody%20bgcolor=%22#";
-			// convert background color channels from [0.0, 1.0] to [0, 255];
-			url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundR * 255.0f);
-			url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundG * 255.0f);
-			url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundB * 255.0f);
-			url << "%22%3E%3C/body%3E%3C/html%3E";
-			
-			lldebugs << "data url is: " << url.str() << llendl;
-						
-			LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() );
-//			LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" );
-
-			return true;
-		};
+		
+		// set background color
+		// convert background color channels from [0.0, 1.0] to [0, 255];
+		LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, int(mBackgroundR * 255.0f), int(mBackgroundG * 255.0f), int(mBackgroundB * 255.0f) );
+
+		// Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns.
+		setInitState(INIT_STATE_NAVIGATING);
+
+		// Don't do this here -- it causes the dreaded "white flash" when loading a browser instance.
+		// FIXME: Re-added this because navigating to a "page" initializes things correctly - especially
+		// for the HTTP AUTH dialog issues (DEV-41731). Will fix at a later date.
+		// Build a data URL like this: "data:text/html,%3Chtml%3E%3Cbody bgcolor=%22#RRGGBB%22%3E%3C/body%3E%3C/html%3E"
+		// where RRGGBB is the background color in HTML style
+		std::stringstream url;
+		
+		url << "data:text/html,%3Chtml%3E%3Cbody%20bgcolor=%22#";
+		// convert background color channels from [0.0, 1.0] to [0, 255];
+		url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundR * 255.0f);
+		url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundG * 255.0f);
+		url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundB * 255.0f);
+		url << "%22%3E%3C/body%3E%3C/html%3E";
+		
+		lldebugs << "data url is: " << url.str() << llendl;
+					
+		LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() );
+//		LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" );
 
-		return false;
-	};
+		return true;	
+	}
 
 	void setVolume(F32 vol);
 
@@ -676,9 +697,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
 		{
 			if(message_name == "init")
 			{
-				std::string user_data_path = message_in.getValue("user_data_path"); // n.b. always has trailing platform-specific dir-delimiter
-				mProfileDir = user_data_path + "browser_profile";
-
 				LLPluginMessage message("base", "init_response");
 				LLSD versions = LLSD::emptyMap();
 				versions[LLPLUGIN_MESSAGE_CLASS_BASE] = LLPLUGIN_MESSAGE_CLASS_BASE_VERSION;
@@ -690,23 +708,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
 				plugin_version += LLQtWebKit::getInstance()->getVersion();
 				message.setValue("plugin_version", plugin_version);
 				sendMessage(message);
-				
-				// Plugin gets to decide the texture parameters to use.
-				mDepth = 4;
-
-				message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
-				message.setValueS32("default_width", 1024);
-				message.setValueS32("default_height", 1024);
-				message.setValueS32("depth", mDepth);
-				message.setValueU32("internalformat", GL_RGBA);
-#if LL_QTWEBKIT_USES_PIXMAPS
-				message.setValueU32("format", GL_BGRA_EXT); // I hope this isn't system-dependant... is it?  If so, we'll have to check the root window's pixel layout or something... yuck.
-#else
-				message.setValueU32("format", GL_RGBA);
-#endif // LL_QTWEBKIT_USES_PIXMAPS
-				message.setValueU32("type", GL_UNSIGNED_BYTE);
-				message.setValueBoolean("coords_opengl", true);
-				sendMessage(message);
 			}
 			else if(message_name == "idle")
 			{
@@ -771,7 +772,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
 //				std::cerr << "MediaPluginWebKit::receiveMessage: unknown base message: " << message_name << std::endl;
 			}
 		}
-                else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME)
+		else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME)
 		{
 			if(message_name == "set_volume")
 			{
@@ -781,7 +782,50 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
 		}
 		else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA)
 		{
-			if(message_name == "size_change")
+			if(message_name == "init")
+			{
+				// This is the media init message -- all necessary data for initialization should have been received.
+				if(initBrowser())
+				{
+					
+					// Plugin gets to decide the texture parameters to use.
+					mDepth = 4;
+
+					LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params");
+					message.setValueS32("default_width", 1024);
+					message.setValueS32("default_height", 1024);
+					message.setValueS32("depth", mDepth);
+					message.setValueU32("internalformat", GL_RGBA);
+	#if LL_QTWEBKIT_USES_PIXMAPS
+					message.setValueU32("format", GL_BGRA_EXT); // I hope this isn't system-dependant... is it?  If so, we'll have to check the root window's pixel layout or something... yuck.
+	#else
+					message.setValueU32("format", GL_RGBA);
+	#endif // LL_QTWEBKIT_USES_PIXMAPS
+					message.setValueU32("type", GL_UNSIGNED_BYTE);
+					message.setValueBoolean("coords_opengl", true);
+					sendMessage(message);
+				}
+				else
+				{
+					// if initialization failed, we're done.
+					mDeleteMe = true;
+				}
+
+			}
+			else if(message_name == "set_user_data_path")
+			{
+				std::string user_data_path = message_in.getValue("path"); // n.b. always has trailing platform-specific dir-delimiter
+				mProfileDir = user_data_path + "browser_profile";
+
+				// FIXME: Should we do anything with this if it comes in after the browser has been initialized?
+			}
+			else if(message_name == "set_language_code")
+			{
+				mHostLanguage = message_in.getValue("language");
+
+				// FIXME: Should we do anything with this if it comes in after the browser has been initialized?
+			}
+			else if(message_name == "size_change")
 			{
 				std::string name = message_in.getValue("name");
 				S32 width = message_in.getValueS32("width");
@@ -803,29 +847,36 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
 						mWidth = width;
 						mHeight = height;
 
-						// initialize (only gets called once)
-						initBrowser();
-
-						// size changed so tell the browser
-						LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight );
-						
-//						std::cerr << "webkit plugin: set size to " << mWidth << " x " << mHeight 
-//								<< ", rowspan is " << LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) << std::endl;
-								
-						S32 real_width = LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) / LLQtWebKit::getInstance()->getBrowserDepth(mBrowserWindowId); 
-						
-						// The actual width the browser will be drawing to is probably smaller... let the host know by modifying texture_width in the response.
-						if(real_width <= texture_width)
+						if(initBrowserWindow())
 						{
-							texture_width = real_width;
+
+							// size changed so tell the browser
+							LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight );
+							
+	//						std::cerr << "webkit plugin: set size to " << mWidth << " x " << mHeight 
+	//								<< ", rowspan is " << LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) << std::endl;
+									
+							S32 real_width = LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) / LLQtWebKit::getInstance()->getBrowserDepth(mBrowserWindowId); 
+							
+							// The actual width the browser will be drawing to is probably smaller... let the host know by modifying texture_width in the response.
+							if(real_width <= texture_width)
+							{
+								texture_width = real_width;
+							}
+							else
+							{
+								// This won't work -- it'll be bigger than the allocated memory.  This is a fatal error.
+	//							std::cerr << "Fatal error: browser rowbytes greater than texture width" << std::endl;
+								mDeleteMe = true;
+								return;
+							}
 						}
 						else
 						{
-							// This won't work -- it'll be bigger than the allocated memory.  This is a fatal error.
-//							std::cerr << "Fatal error: browser rowbytes greater than texture width" << std::endl;
+							// Setting up the browser window failed.  This is a fatal error.
 							mDeleteMe = true;
-							return;
 						}
+
 						
 						mTextureWidth = texture_width;
 						mTextureHeight = texture_height;
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif
new file mode 100644
index 0000000000000000000000000000000000000000..f366026c33150b9ee191c02e133d804ef17ce1c2
Binary files /dev/null and b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif
new file mode 100644
index 0000000000000000000000000000000000000000..e9e6a20cd90f08ac85de08fba05677194f0f3b61
Binary files /dev/null and b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif differ
diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif
new file mode 100644
index 0000000000000000000000000000000000000000..bea3d9d4420de6a61a4f482239ca0f628337c26b
Binary files /dev/null and b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif differ
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 844f0ac509f4e80ba80e3569ffabb8bf6c2312dd..6842d3dc74d890774dfd1bcff23e3e5586724599 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -64,42 +64,6 @@ BOOL LLFloaterInventory::postBuild()
 	return TRUE;
 }
 
-
-void LLFloaterInventory::draw()
-{
-	updateTitle();
-	LLFloater::draw();
-}
-
-void LLFloaterInventory::updateTitle()
-{
-	LLLocale locale(LLLocale::USER_LOCALE);
-	std::string item_count_string;
-	LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount());
-
-	LLStringUtil::format_map_t string_args;
-	string_args["[ITEM_COUNT]"] = item_count_string;
-	string_args["[FILTER]"] = mPanelMainInventory->getFilterText();
-
-	if (LLInventoryModel::backgroundFetchActive())
-	{
-		setTitle(getString("TitleFetching", string_args));
-	}
-	else if (LLInventoryModel::isEverythingFetched())
-	{
-		setTitle(getString("TitleCompleted", string_args));
-	}
-	else
-	{
-		setTitle(getString("Title"));
-	}
-}
-
-void LLFloaterInventory::changed(U32 mask)
-{
-	updateTitle();
-}
-
 LLInventoryPanel* LLFloaterInventory::getPanel()
 {
 	if (mPanelMainInventory)
diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h
index b661c391a7e581cbae7f5acff23662165f4a0f73..473d2b189d699d1d0e6b171a0c9c6999587eefab 100644
--- a/indra/newview/llfloaterinventory.h
+++ b/indra/newview/llfloaterinventory.h
@@ -63,13 +63,9 @@ class LLFloaterInventory : public LLFloater
 	static void cleanup();
 
 	// Inherited functionality
-	/*virtual*/ void changed(U32 mask);
-	/*virtual*/ void draw();
 	/*virtual*/ void onOpen(const LLSD& key);
 
 	LLInventoryPanel* getPanel();
-protected:
-	void updateTitle();
 private:
 	LLPanelMainInventory* mPanelMainInventory;
 };
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 8bffe9bf57a7aa8aa87eacf138db82356058fb20..e998d10fcc6138901934ac375a3057dfb275dfb0 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -110,6 +110,9 @@
 const F32 MAX_USER_FAR_CLIP = 512.f;
 const F32 MIN_USER_FAR_CLIP = 64.f;
 
+//control value for middle mouse as talk2push button
+const static std::string MIDDLE_MOUSE_CV = "MiddleMouse";
+
 class LLVoiceSetKeyDialog : public LLModalDialog
 {
 public:
@@ -1008,9 +1011,17 @@ void LLFloaterPreference::setKey(KEY key)
 
 void LLFloaterPreference::onClickSetMiddleMouse()
 {
-	childSetValue("modifier_combo", "MiddleMouse");
+	LLUICtrl* p2t_line_editor = getChild<LLUICtrl>("modifier_combo");
+
 	// update the control right away since we no longer wait for apply
-	getChild<LLUICtrl>("modifier_combo")->onCommit();
+	p2t_line_editor->setControlValue(MIDDLE_MOUSE_CV);
+
+	//push2talk button "middle mouse" control value is in English, need to localize it for presentation
+	LLPanel* advanced_preferences = dynamic_cast<LLPanel*>(p2t_line_editor->getParent());
+	if (advanced_preferences)
+	{
+		p2t_line_editor->setValue(advanced_preferences->getString("middle_mouse"));
+	}
 }
 /*
 void LLFloaterPreference::onClickSkipDialogs()
@@ -1302,6 +1313,16 @@ BOOL LLPanelPreference::postBuild()
 		getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
 	}
 
+	// Panel Advanced
+	if (hasChild("modifier_combo"))
+	{
+		//localizing if push2talk button is set to middle mouse
+		if (MIDDLE_MOUSE_CV == childGetValue("modifier_combo").asString())
+		{
+			childSetValue("modifier_combo", getString("middle_mouse"));
+		}
+	}
+
 	apply();
 	return true;
 }
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index d3e3d2b57bb7f78bc85383bd56fb013730191e6d..bb4c75d3ac68d2a1455d377d1c315f5f5856cfef 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -255,11 +255,30 @@ void LLFolderViewItem::refreshFromListener()
 		// temporary attempt to display the inventory folder in the user locale.
 		// mantipov: *NOTE: be sure this code is synchronized with LLFriendCardsManager::findChildFolderUUID
 		//		it uses the same way to find localized string
-		if (LLFolderType::lookupIsProtectedType(preferred_type))
+
+		// HACK: EXT - 6028 ([HARD CODED]? Inventory > Library > "Accessories" folder)
+		// Translation of Accessories folder in Library inventory folder
+		bool accessories = false;
+		if(mLabel == std::string("Accessories"))
+		{
+			//To ensure that Accessories folder is in Library we have to check its parent folder.
+			//Due to parent LLFolderViewFloder is not set to this item yet we have to check its parent via Inventory Model
+			LLInventoryCategory* cat = gInventory.getCategory(mListener->getUUID());
+			if(cat)
+			{
+				const LLUUID& parent_folder_id = cat->getParentUUID();
+				accessories = (parent_folder_id == gInventory.getLibraryRootFolderID());
+			}
+		}
+
+		//"Accessories" inventory category has folder type FT_NONE. So, this folder
+		//can not be detected as protected with LLFolderType::lookupIsProtectedType
+		if (accessories || LLFolderType::lookupIsProtectedType(preferred_type))
 		{
 			LLTrans::findString(mLabel, "InvFolder " + mLabel);
 		};
 
+		setToolTip(mLabel);
 		setIcon(mListener->getIcon());
 		time_t creation_date = mListener->getCreationDate();
 		if (mCreationDate != creation_date)
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index ceeffea1c9eac1748cbf18ea2274c829410a7b31..1f918c72ea130ee1a77fd0b80c9ec35d6e45e53a 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -3808,7 +3808,9 @@ std::string LLGestureBridge::getLabelSuffix() const
 {
 	if( LLGestureManager::instance().isGestureActive(mUUID) )
 	{
-		return LLItemBridge::getLabelSuffix() + " (active)";
+		LLStringUtil::format_map_t args;
+		args["[GESLABEL]"] =  LLItemBridge::getLabelSuffix();
+		return  LLTrans::getString("ActiveGesture", args);
 	}
 	else
 	{
@@ -4157,7 +4159,7 @@ std::string LLObjectBridge::getLabelSuffix() const
 
 		// e.g. "(worn on ...)" / "(attached to ...)"
 		LLStringUtil::format_map_t args;
-		args["[ATTACHMENT_POINT]"] =  attachment_point_name.c_str();
+		args["[ATTACHMENT_POINT]"] =  LLTrans::getString(attachment_point_name);
 		return LLItemBridge::getLabelSuffix() + LLTrans::getString("WornOnAttachmentPoint", args);
 	}
 	else
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index ec83a1fd6d3849cb3bbc85a1229c5fc29c992821..d7720b735c6f6484178f9f9a32dee2e5ab3b4eb1 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -293,9 +293,6 @@ void LLInventoryPanel::modelChanged(U32 mask)
 					bridge->clearDisplayName();
 
 					view_item->refresh();
-
-					// Set the new tooltip with the new display name.
-					view_item->setToolTip(bridge->getDisplayName());
 				}
 			}
 		}
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index 879fbba9cd043fff6a4b4dd02ff84c619199807b..4842fcac382567bc4e61ce92ac66d3b35800847c 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -534,7 +534,7 @@ void LLLandmarksPanel::initLandmarksInventoryPanel()
 	// subscribe to have auto-rename functionality while creating New Folder
 	mLandmarksInventoryPanel->setSelectCallback(boost::bind(&LLInventoryPanel::onSelectionChange, mLandmarksInventoryPanel, _1, _2));
 
-	initAccordion("tab_landmarks", mLandmarksInventoryPanel, true);
+	mMyLandmarksAccordionTab = initAccordion("tab_landmarks", mLandmarksInventoryPanel, true);
 }
 
 void LLLandmarksPanel::initMyInventoryPanel()
@@ -588,7 +588,7 @@ void LLLandmarksPanel::initLandmarksPanel(LLPlacesInventoryPanel* inventory_list
 	inventory_list->saveFolderState();
 }
 
-void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list,	bool expand_tab)
+LLAccordionCtrlTab* LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list,	bool expand_tab)
 {
 	LLAccordionCtrlTab* accordion_tab = getChild<LLAccordionCtrlTab>(accordion_tab_name);
 
@@ -596,6 +596,7 @@ void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPl
 	accordion_tab->setDropDownStateChangedCallback(
 		boost::bind(&LLLandmarksPanel::onAccordionExpandedCollapsed, this, _2, inventory_list));
 	accordion_tab->setDisplayChildren(expand_tab);
+	return accordion_tab;
 }
 
 void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list)
@@ -776,6 +777,11 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const
 			//in case My Landmarks tab is completely empty (thus cannot be determined as being selected)
 			menu_create_inventory_item(mLandmarksInventoryPanel->getRootFolder(), NULL, LLSD("category"), 
 				gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK));
+
+			if (mMyLandmarksAccordionTab)
+			{
+				mMyLandmarksAccordionTab->changeOpenClose(false);
+			}
 		}
 	}
 }
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index 2b46ba99333e43c16b80f0552be9d0c5f45d4931..c9217a4b2f99fbf64c50ede1e832dae9027b9866 100644
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
@@ -112,7 +112,7 @@ class LLLandmarksPanel : public LLPanelPlacesTab, LLRemoteParcelInfoObserver
 	void initMyInventoryPanel();
 	void initLibraryInventoryPanel();
 	void initLandmarksPanel(LLPlacesInventoryPanel* inventory_list);
-	void initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab);
+	LLAccordionCtrlTab* initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab);
 	void onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list);
 	void deselectOtherThan(const LLPlacesInventoryPanel* inventory_list);
 
@@ -169,6 +169,8 @@ class LLLandmarksPanel : public LLPanelPlacesTab, LLRemoteParcelInfoObserver
 	
 	typedef	std::vector<LLAccordionCtrlTab*> accordion_tabs_t;
 	accordion_tabs_t			mAccordionTabs;
+
+	LLAccordionCtrlTab*			mMyLandmarksAccordionTab;
 };
 
 #endif //LL_LLPANELLANDMARKS_H
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index 421c9df9a1584e8c1b913c07db9f991f61c7b685..d40141c91d3a6de090085d7a66fa419a62667eca 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -44,6 +44,7 @@
 #include "llfiltereditor.h"
 #include "llfloaterreg.h"
 #include "llpreviewtexture.h"
+#include "llresmgr.h"
 #include "llscrollcontainer.h"
 #include "llsdserialize.h"
 #include "llspinctrl.h"
@@ -538,7 +539,7 @@ BOOL LLPanelMainInventory::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
 // virtual
 void LLPanelMainInventory::changed(U32)
 {
-	// empty, but must have this defined for abstract base class.
+	updateItemcountText();
 }
 
 
@@ -550,6 +551,34 @@ void LLPanelMainInventory::draw()
 		mFilterEditor->setText(mFilterSubString);
 	}	
 	LLPanel::draw();
+	updateItemcountText();
+}
+
+void LLPanelMainInventory::updateItemcountText()
+{
+	LLLocale locale(LLLocale::USER_LOCALE);
+	std::string item_count_string;
+	LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount());
+
+	LLStringUtil::format_map_t string_args;
+	string_args["[ITEM_COUNT]"] = item_count_string;
+	string_args["[FILTER]"] = getFilterText();
+
+	std::string text = "";
+
+	if (LLInventoryModel::backgroundFetchActive())
+	{
+		text = getString("ItemcountFetching", string_args);
+	}
+	else if (LLInventoryModel::isEverythingFetched())
+	{
+		text = getString("ItemcountCompleted", string_args);
+	}
+	else
+	{
+		text = getString("ItemcountUnknown");
+	}
+	childSetText("ItemcountText",text);
 }
 
 void LLPanelMainInventory::setFilterTextFromFilter() 
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index d9ea0da2da78f1711dd8ba96009859b0a47186e0..b43e057f831bc09727bb13fb51a3649faa22dd2d 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -113,7 +113,8 @@ class LLPanelMainInventory : public LLPanel, LLInventoryObserver
 	void setSortBy(const LLSD& userdata);
 	void saveTexture(const LLSD& userdata);
 	bool isSaveTextureEnabled(const LLSD& userdata);
-	
+	void updateItemcountText();
+
 private:
 	LLFloaterInventoryFinder* getFinder();
 
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index 9e92ee337fdcd602b3278000e444549eb8b287b5..7505581904b0fe538ba833af6233c9ebe8323060 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -1578,7 +1578,7 @@ void LLPanelObjectInventory::reset()
 	p.title = "task inventory";
 	p.task_id = getTaskUUID();
 	p.parent_panel = this;
-	p.tool_tip= p.name;
+	p.tool_tip= LLTrans::getString("PanelContentsTooltip");
 	mFolders = LLUICtrlFactory::create<LLFolderView>(p);
 	// this ensures that we never say "searching..." or "no items found"
 	mFolders->getFilter()->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS);
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index 6cd8a78b25354976d1f344c336ffb57ab258b388..43913f3632636b49c22c072d6ed6fcdade4ecbe8 100644
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -660,8 +660,9 @@ struct compare_decode_pair
 
 struct KillView
 {
-	void operator()(LLView* viewp) const
+	void operator()(LLView* viewp)
 	{
+		viewp->getParent()->removeChild(viewp);
 		viewp->die();
 	}
 };
@@ -676,8 +677,12 @@ void LLTextureView::draw()
 		for_each(mTextureBars.begin(), mTextureBars.end(), KillView());
 		mTextureBars.clear();
 			
-		delete mGLTexMemBar;		
-		mGLTexMemBar = 0;
+		if (mGLTexMemBar)
+		{
+			removeChild(mGLTexMemBar);
+			mGLTexMemBar->die();
+			mGLTexMemBar = 0;
+		}
 
 		typedef std::multiset<decode_pair_t, compare_decode_pair > display_list_t;
 		display_list_t display_image_list;
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 2f4a69a53c4fb021c156d9fa6ab4b4ec63bc4b9d..d15db536e6c2e53ddd61463217b23fe83d247cda 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -412,24 +412,24 @@ ECursorType cursor_from_object(LLViewerObject* object)
 	case CLICK_ACTION_SIT:
 		if ((gAgent.getAvatarObject() != NULL) && (!gAgent.getAvatarObject()->isSitting())) // not already sitting?
 		{
-			cursor = UI_CURSOR_HAND;
+			cursor = UI_CURSOR_TOOLSIT;
 		}
 		break;
 	case CLICK_ACTION_BUY:
-		cursor = UI_CURSOR_HAND;
+		cursor = UI_CURSOR_TOOLBUY;
 		break;
 	case CLICK_ACTION_OPEN:
 		// Open always opens the parent.
 		if (parent && parent->allowOpen())
 		{
-			cursor = UI_CURSOR_HAND;
+			cursor = UI_CURSOR_TOOLOPEN;
 		}
 		break;
 	case CLICK_ACTION_PAY:	
 		if ((object && object->flagTakesMoney())
 			|| (parent && parent->flagTakesMoney()))
 		{
-			cursor = UI_CURSOR_HAND;
+			cursor = UI_CURSOR_TOOLBUY;
 		}
 		break;
 	case CLICK_ACTION_ZOOM:
@@ -964,7 +964,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
 					}
 				}
 			}
-
+			
 
 			// Avoid showing tip over media that's displaying unless it's for sale
 			// also check the primary node since sometimes it can have an action even though
@@ -972,9 +972,9 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
 			
 			bool needs_tip = (!is_media_displaying || 
 				              for_sale) &&
-							 (has_media || 
-							  needs_tooltip(nodep) || 
-							  needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode()));
+				(has_media || 
+				 needs_tooltip(nodep) || 
+				 needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode()));
 			
 			if (show_all_object_tips || needs_tip)
 			{
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 64dcd62a6a0e1f260036c9e01004334193e48578..b9509a98f5052b01f40f00f65389effad31bc0d4 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1258,8 +1258,9 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
 		{
 			LLPluginClassMedia* media_source = new LLPluginClassMedia(owner);
 			media_source->setSize(default_width, default_height);
-			std::string language_code = LLUI::getLanguage();
-			if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"), user_data_path, language_code))
+			media_source->setUserDataPath(user_data_path);
+			media_source->setLanguageCode(LLUI::getLanguage());
+			if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")))
 			{
 				return media_source;
 			}
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 1d58daba2ce5047a8d98b7ec1c80276f3113e8ad..5c40d02f8d0ded8aa68d30ff6276a231c3e941f9 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -86,6 +86,7 @@
 #include "lltoolmgr.h"
 #include "lltoolpie.h"
 #include "lltoolselectland.h"
+#include "lltrans.h"
 #include "llviewergenericmessage.h"
 #include "llviewerhelp.h"
 #include "llviewermenufile.h"	// init_menu_file()
@@ -7047,7 +7048,7 @@ LLVOAvatar* find_avatar_from_object( const LLUUID& object_id )
 
 void handle_disconnect_viewer(void *)
 {
-	LLAppViewer::instance()->forceDisconnect("Testing viewer disconnect");
+	LLAppViewer::instance()->forceDisconnect(LLTrans::getString("TestingDisconnect"));
 }
 
 void force_error_breakpoint(void *)
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index eed3f252319ddf01b0274abd0ca873f70241f50f..bd0012057cec49c9e74e1a7a7fae570ff73d121a 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3080,7 +3080,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
 			<< x << ":" << y 
 			<< " current pos " << gAgent.getPositionGlobal()
 			<< LL_ENDL;
-		LLAppViewer::instance()->forceDisconnect("You were sent to an invalid region.");
+		LLAppViewer::instance()->forceDisconnect(LLTrans::getString("SentToInvalidRegion"));
 		return;
 
 	}
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index 2c5c0a37e8f3c8d3898f78bbbd82ccbaf041cef4..b967436df6f536380f64b6db0e16342b7e4dec53 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -210,25 +210,29 @@ void LLViewerParcelMedia::play(LLParcel* parcel)
 			// A new impl will be created below.
 		}
 	}
-
-	if(!sMediaImpl)
+	
+	// Don't ever try to play if the media type is set to "none/none"
+	if(stricmp(mime_type.c_str(), "none/none") != 0)
 	{
-		LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL;
-
-		// There is no media impl, make a new one
-		sMediaImpl = LLViewerMedia::newMediaImpl(
-			placeholder_texture_id,
-			media_width, 
-			media_height, 
-			media_auto_scale,
-			media_loop);
-		sMediaImpl->setIsParcelMedia(true);
-		sMediaImpl->navigateTo(media_url, mime_type, true);
-	}
+		if(!sMediaImpl)
+		{
+			LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL;
+
+			// There is no media impl, make a new one
+			sMediaImpl = LLViewerMedia::newMediaImpl(
+				placeholder_texture_id,
+				media_width, 
+				media_height, 
+				media_auto_scale,
+				media_loop);
+			sMediaImpl->setIsParcelMedia(true);
+			sMediaImpl->navigateTo(media_url, mime_type, true);
+		}
 
-	//LLFirstUse::useMedia();
+		//LLFirstUse::useMedia();
 
-	LLViewerParcelMediaAutoPlay::playStarted();
+		LLViewerParcelMediaAutoPlay::playStarted();
+	}
 }
 
 // static
@@ -312,11 +316,14 @@ std::string LLViewerParcelMedia::getURL()
 	if(sMediaImpl.notNull())
 		url = sMediaImpl->getMediaURL();
 	
-	if (url.empty())
-		url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL();
-	
-	if (url.empty())
-		url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL();
+	if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), "none/none") != 0)
+	{
+		if (url.empty())
+			url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL();
+		
+		if (url.empty())
+			url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL();
+	}
 	
 	return url;
 }
diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp
index ad2723b66b242f2798ca9fcfeef40446ea6bfed6..f55d6d89c4eea08929f0b78b5986ba58761396ff 100644
--- a/indra/newview/llviewerparcelmediaautoplay.cpp
+++ b/indra/newview/llviewerparcelmediaautoplay.cpp
@@ -86,6 +86,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick()
 	LLParcel *this_parcel = NULL;
 	LLViewerRegion *this_region = NULL;
 	std::string this_media_url;
+	std::string this_media_type;
 	LLUUID this_media_texture_id;
 	S32 this_parcel_id = 0;
 	LLUUID this_region_id;
@@ -101,7 +102,9 @@ BOOL LLViewerParcelMediaAutoPlay::tick()
 
 	if (this_parcel)
 	{
-		this_media_url = std::string(this_parcel->getMediaURL());
+		this_media_url = this_parcel->getMediaURL();
+		
+		this_media_type = this_parcel->getMediaType();
 
 		this_media_texture_id = this_parcel->getMediaID();
 
@@ -118,14 +121,15 @@ BOOL LLViewerParcelMediaAutoPlay::tick()
 		mLastRegionID = this_region_id;
 	}
 
-	mTimeInParcel += mPeriod;                 // increase mTimeInParcel by the amount of time between ticks
+	mTimeInParcel += mPeriod;					// increase mTimeInParcel by the amount of time between ticks
 
-	if ((!mPlayed) &&                         // if we've never played
-		(mTimeInParcel > AUTOPLAY_TIME) &&    // and if we've been here for so many seconds
-		(this_media_url.size() != 0) &&       // and if the parcel has media
-		(LLViewerParcelMedia::sMediaImpl.isNull()))   // and if the media is not already playing
+	if ((!mPlayed) &&							// if we've never played
+		(mTimeInParcel > AUTOPLAY_TIME) &&		// and if we've been here for so many seconds
+		(!this_media_url.empty()) &&			// and if the parcel has media
+		(stricmp(this_media_type.c_str(), "none/none") != 0) &&
+		(LLViewerParcelMedia::sMediaImpl.isNull()))	// and if the media is not already playing
 	{
-		if (this_media_texture_id.notNull())  // and if the media texture is good
+		if (this_media_texture_id.notNull())	// and if the media texture is good
 		{
 			LLViewerMediaTexture *image = LLViewerTextureManager::getMediaTexture(this_media_texture_id, FALSE) ;
 
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 32c24b3ebd3b1d666e78cbf674f293ff74c8bfb6..98ca76ed01e2e457e47dadaa5f5499f4442d57f6 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -489,7 +489,7 @@ BOOL LLVOAvatarSelf::buildMenus()
 			{
 				LLMenuItemCallGL::Params item_params;
 				item_params.name = attachment->getName();
-				item_params.label = attachment->getName();
+				item_params.label = LLTrans::getString(attachment->getName());
 				item_params.on_click.function_name = "Object.AttachToAvatar";
 				item_params.on_click.parameter = attach_index;
 				item_params.on_enable.function_name = "Object.EnableWear";
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index d7e5b464a65dbeba861aa8b94970b0fa49264835..19f303ab8877b99dc341bea32945cd1221c7d416 100644
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
@@ -45,6 +45,7 @@
 #include "llhttpnode.h"
 #include "llregionhandle.h"
 #include "llsurface.h"
+#include "lltrans.h"
 #include "llviewercamera.h"
 #include "llviewertexture.h"
 #include "llviewertexturelist.h"
@@ -258,7 +259,7 @@ void LLWorld::removeRegion(const LLHost &host)
 		llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl;
 
 		llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl;
-		LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in.");
+		LLAppViewer::instance()->forceDisconnect(LLTrans::getString("YouHaveBeenDisconnected"));
 		return;
 	}
 
diff --git a/indra/newview/res-sdl/ll_icon.BMP b/indra/newview/res-sdl/ll_icon.BMP
index 4a44aafbfaeefcc50b9a461693f9de9bc29b8930..6f9366df41ea2e93bad37ae347c7ec7b07541b75 100644
Binary files a/indra/newview/res-sdl/ll_icon.BMP and b/indra/newview/res-sdl/ll_icon.BMP differ
diff --git a/indra/newview/res/ll_icon.png b/indra/newview/res/ll_icon.png
index 414b703111a6b0c1513e824f40688f8e79836228..ae573b3874a253c24d8050f2ef4439742f51ee94 100644
Binary files a/indra/newview/res/ll_icon.png and b/indra/newview/res/ll_icon.png differ
diff --git a/indra/newview/res/toolbuy.cur b/indra/newview/res/toolbuy.cur
new file mode 100644
index 0000000000000000000000000000000000000000..7fd552a78e97ad980e6138a25ec9ede085731112
Binary files /dev/null and b/indra/newview/res/toolbuy.cur differ
diff --git a/indra/newview/res/toolopen.cur b/indra/newview/res/toolopen.cur
new file mode 100644
index 0000000000000000000000000000000000000000..1562f5bc95517983e4cc60ca02ba599b7c48c180
Binary files /dev/null and b/indra/newview/res/toolopen.cur differ
diff --git a/indra/newview/res/toolsit.cur b/indra/newview/res/toolsit.cur
new file mode 100644
index 0000000000000000000000000000000000000000..a1f99cfe6d4b0ee3bb726d6b49b4d5f9acb2c84a
Binary files /dev/null and b/indra/newview/res/toolsit.cur differ
diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc
index 38291e45c933417911212e67d2d4b758bd2287c7..7a965cf57e50bc3cf38a666484781fdf6db88996 100644
--- a/indra/newview/res/viewerRes.rc
+++ b/indra/newview/res/viewerRes.rc
@@ -2,19 +2,12 @@
 //
 #include "resource.h"
 
-#ifdef IDC_STATIC
-#undef IDC_STATIC
-#endif
-#define IDC_STATIC (-1)
-#include "winresrc.h"
-
 #define APSTUDIO_READONLY_SYMBOLS
 /////////////////////////////////////////////////////////////////////////////
 //
 // Generated from the TEXTINCLUDE 2 resource.
 //
-// Commented out because it only compiles if you have MFC installed.
-//#include "winres.h"
+#include "winres.h"
 
 /////////////////////////////////////////////////////////////////////////////
 #undef APSTUDIO_READONLY_SYMBOLS
@@ -34,18 +27,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 // TEXTINCLUDE
 //
 
-1 TEXTINCLUDE
+1 TEXTINCLUDE 
 BEGIN
     "resource.h\0"
 END
 
-2 TEXTINCLUDE
+2 TEXTINCLUDE 
 BEGIN
     "#include ""winres.h""\r\n"
     "\0"
 END
 
-3 TEXTINCLUDE
+3 TEXTINCLUDE 
 BEGIN
     "\r\n"
     "\0"
@@ -84,9 +77,8 @@ END
 //
 
 #ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
+GUIDELINES DESIGNINFO 
 BEGIN
-
     "SPLASHSCREEN", DIALOG
     BEGIN
         LEFTMARGIN, 7
@@ -127,6 +119,9 @@ TOOLPIPETTE             CURSOR                  "toolpipette.cur"
 TOOLPLAY                CURSOR                  "toolplay.cur"
 TOOLPAUSE               CURSOR                  "toolpause.cur"
 TOOLMEDIAOPEN           CURSOR                  "toolmediaopen.cur"
+TOOLOPEN                CURSOR                  "toolopen.cur"
+TOOLSIT                 CURSOR                  "toolsit.cur"
+TOOLBUY                 CURSOR                  "toolbuy.cur"
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -134,8 +129,8 @@ TOOLMEDIAOPEN           CURSOR                  "toolmediaopen.cur"
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,0,200030
- PRODUCTVERSION 2,0,0,200030
+ FILEVERSION 2,0,0,3422
+ PRODUCTVERSION 2,0,0,3422
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -166,12 +161,6 @@ BEGIN
     END
 END
 
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
 #endif    // English (U.S.) resources
 /////////////////////////////////////////////////////////////////////////////
 
diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png
index c9fbde987a6615c783207ad967cb0c6c49670d04..8342d7cfee55aeb3558946099eff623cb577d48d 100644
Binary files a/indra/newview/skins/default/textures/icons/SL_Logo.png and b/indra/newview/skins/default/textures/icons/SL_Logo.png differ
diff --git a/indra/newview/skins/default/xui/de/panel_profile.xml b/indra/newview/skins/default/xui/de/panel_profile.xml
index cb598f89f6dbd17552ff59a28fcc9c97eb8cc7d5..cda2788e402d810b6187b6f664487d205f1af52e 100644
--- a/indra/newview/skins/default/xui/de/panel_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_profile.xml
@@ -41,10 +41,10 @@
 			</scroll_container>
 		</layout_panel>
 		<layout_panel name="profile_buttons_panel">
-			<button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an" width="109"/>
-			<button label="IM" name="im" tool_tip="Instant Messenger öffnen" width="24"/>
+			<button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/>
+			<button label="IM" name="im" tool_tip="Instant Messenger öffnen"/>
 			<button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/>
-			<button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen" width="36"/>
+			<button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/>
 			<button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/>
 			<button label="â–¼" name="overflow_btn" tool_tip="Dem Einwohner Geld geben oder Inventar an den Einwohner schicken"/>
 		</layout_panel>
diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml
index 0d381fe5cbbddb36b8487146374e0dc2319a7951..ba2e0d3277ff18f491056056fe8441f81e0542f2 100644
--- a/indra/newview/skins/default/xui/en/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory.xml
@@ -14,22 +14,6 @@
  single_instance="false"
  title="MY INVENTORY"
  width="467">
-    <floater.string
-     name="Title">
-        MY INVENTORY
-    </floater.string>
-    <floater.string
-     name="TitleFetching">
-        MY INVENTORY (Fetching [ITEM_COUNT] Items...) [FILTER]
-    </floater.string>
-    <floater.string
-     name="TitleCompleted">
-        MY INVENTORY ([ITEM_COUNT] Items) [FILTER]
-    </floater.string>
-    <floater.string
-     name="Fetched">
-        Fetched
-    </floater.string>
     <panel
      bottom="560"
 	 class="panel_main_inventory"
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
index d7a7daf30ccbb04476ce08a3c9f7d7b23bccde28..b5a3764e739ce2c9465616e91ff93d82135c93f6 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
@@ -10,7 +10,7 @@
  help_topic="preferences"
  single_instance="true"
  title="PREFERENCES"
- width="620">
+ width="658">
     <button
      follows="right|bottom"
      height="23"
@@ -48,7 +48,7 @@
      tab_width="115"
      tab_padding_right="5"
      top="21"
-     width="620">
+     width="658">
         <panel
 	 class="panel_preference"
          filename="panel_preferences_general.xml"
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index 12d169b70a5ba8ae9682090db2f4564cb770855f..2235b84869bb8d5d8be67def3e5787fb13314bcf 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -741,7 +741,7 @@
      halign="center"
      left="0"
      name="Object Info Tabs"
-     tab_max_width="54"
+     tab_max_width="100"
      tab_min_width="40"
      tab_position="top"
      tab_height="25"
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
index 1e2e74f88240d6fa772a9d8635e7a52968ff6f9c..876ff9961beffeb52226ab64981d95848d3344b9 100644
--- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
@@ -69,7 +69,7 @@
      name="last_interaction"
      text_color="LtGray_50"
      value="0s"
-     width="24" />
+     width="35" />
     <button
      follows="right"
      height="16"
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 50983d297650afd6fb00cf1da02bd54238c4849b..c7768c6eb624e0ae3d9b0a962a4bc62e32607ba6 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -10,9 +10,34 @@
  name="main inventory panel"
  width="330">
     <panel.string
-     name="Title">
-        Things
+     name="Itemcount">
     </panel.string>
+    <panel.string
+     name="ItemcountFetching">
+        Fetching [ITEM_COUNT] Items... [FILTER]
+    </panel.string>
+    <panel.string
+     name="ItemcountCompleted">
+        [ITEM_COUNT] Items [FILTER]
+    </panel.string>
+    <panel.string
+     name="ItemcountUnknown">
+
+    </panel.string>
+	<text
+		     type="string"
+		     length="1"
+		     follows="left|top"
+		     height="13"
+		     layout="topleft"
+    		 left="12"
+		     name="ItemcountText"
+		     font="SansSerifMedium"
+		     text_color="EmphasisColor"
+		     top_pad="0"
+		     width="300">
+	        Items:
+    </text>
     <menu_bar
      bg_visible="false"
      follows="left|top|right"
@@ -21,8 +46,8 @@
      left="10"
      mouse_opaque="false"
      name="Inventory Menu"
-     top="0"
-	   visible="true"
+     top="+10"
+	 visible="true"
      width="290">
         <menu
          height="101"
@@ -377,30 +402,30 @@
     <filter_editor
      text_pad_left="10"
      follows="left|top|right"
-	height="23"
+	 height="23"
      label="Filter Inventory"
      layout="topleft"
      left="10"
-max_length="300"
+     max_length="300"
      name="inventory search editor"
-     top="26"
+     top="+31"
      width="303" />
     <tab_container
-            bg_opaque_color="DkGray2"
+       bg_opaque_color="DkGray2"
        bg_alpha_color="DkGray2"
        background_visible="true"
        background_opaque="true"
-follows="all"
-halign="center"
-     height="305"
-     layout="topleft"
-     left="6"
-     name="inventory filter tabs"
-     tab_height="30"
-     tab_position="top"
-     tab_min_width="100"
-     top_pad="10"
-     width="315">
+       follows="all"
+       halign="center"
+       height="300"
+       layout="topleft"
+       left="6"
+       name="inventory filter tabs"
+       tab_height="30"
+       tab_position="top"
+       tab_min_width="100"
+       top_pad="10"
+       width="315">
         <inventory_panel
             bg_opaque_color="DkGray2"
        bg_alpha_color="DkGray2"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 4be4d6b4328483460fb17723f1a004cf8eb0cbbe..c658e0de6f40ce8162b57de75841c04b9b1d8ace 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -12,6 +12,10 @@
 	<panel.string
      name="aspect_ratio_text">
         [NUM]:[DEN]
+    </panel.string>
+    <panel.string
+     name="middle_mouse">
+        Middle Mouse
     </panel.string>
          <icon
 	 follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
index 188fd3b7bc0e82a2d345ad3379302e6def1e78ed..516457dd931d066b7fa558fca2e2b220403990e4 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
@@ -51,13 +51,13 @@
         Always show:
     </text>
     <scroll_list
-     follows="top|left"
+     follows="top|left|right"
      height="140"
      layout="topleft"
      left="10"
      multi_select="true"
      name="enabled_popups"
-     width="475" />
+     width="495" />
 	 <button
 	 enabled_control="FirstSelectedDisabledPopups"
      follows="top|left"
@@ -99,11 +99,11 @@
         Never show:
     </text>
     <scroll_list
-     follows="top|left"
+     follows="top|left|right"
      height="140"
      layout="topleft"
      left="10"
      multi_select="true"
      name="disabled_popups"
-     width="475" />
+     width="495" />
 </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
index d11aebe943d409d06106fef755fbad6db109a1f4..e667fa9a2b0a0dde0724e23055219847b520c3e1 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -365,12 +365,12 @@
       use_ellipses="false"
       hover="false"
      commit_on_focus_lost = "true"
-     follows="left|top"
+     follows="left|top|right"
      height="60"
      layout="topleft"
      left="50"
      name="busy_response"
-     width="440"
+     width="450"
      word_wrap="true">
        log_in_to_change
     </text_editor>
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 111daec242add714e1047580cb85ec1f2ccc79ff..3a766bb7989b386b7fa427a8105417cc3f41dbfb 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -56,7 +56,9 @@
 	<string name="SavingSettings">Saving your settings...</string>
 	<string name="LoggingOut">Logging out...</string>
 	<string name="ShuttingDown">Shutting down...</string>
-
+	<string name="YouHaveBeenDisconnected">You have been disconnected from the region you were in.</string>
+	<string name="SentToInvalidRegion">You were sent to an invalid region.</string>
+	<string name="TestingDisconnect">Testing viewer disconnect</string>
 
 	<!-- Tooltip, lltooltipview.cpp -->
 	<string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->
@@ -79,6 +81,12 @@
 	<string name="TooltipHttpUrl">Click to view this web page</string>
 	<string name="TooltipSLURL">Click to view this location's information</string>
 	<string name="TooltipAgentUrl">Click to view this Resident's profile</string>
+	<string name="TooltipAgentMute">Click to mute this Resident</string>
+	<string name="TooltipAgentUnmute">Click to unmute this Resident</string>
+	<string name="TooltipAgentIM">Click to IM this Resident</string>
+	<string name="TooltipAgentPay">Click to Pay this Resident</string>
+	<string name="TooltipAgentOfferTeleport">Click to offer a teleport request to this Resident</string>
+	<string name="TooltipAgentRequestFriend">Click to send a friend request to this Resident</string>
 	<string name="TooltipGroupUrl">Click to view this group's description</string>
 	<string name="TooltipEventUrl">Click to view this event's description</string>
 	<string name="TooltipClassifiedUrl">Click to view this classified</string>
@@ -95,6 +103,14 @@
 	<string name="SLurlLabelTeleport">Teleport to</string>
 	<string name="SLurlLabelShowOnMap">Show Map for</string>
 
+	<!-- label strings for secondlife:///app/agent SLapps -->
+	<string name="SLappAgentMute">Mute</string>
+	<string name="SLappAgentUnmute">Unmute</string>
+	<string name="SLappAgentIM">IM</string>
+	<string name="SLappAgentPay">Pay</string>
+	<string name="SLappAgentOfferTeleport">Offer Teleport to </string>
+	<string name="SLappAgentRequestFriend">Friend Request </string>
+
 	<!-- ButtonToolTips, llfloater.cpp -->
 	<string name="BUTTON_CLOSE_DARWIN">Close (&#8984;W)</string>
 	<string name="BUTTON_CLOSE_WIN">Close (Ctrl+W)</string>
@@ -1836,6 +1852,7 @@ Clears (deletes) the media and all params from the given face.
 	<string name="LoadingContents">Loading contents...</string>
 	<string name="NoContents">No contents</string>
 	<string name="WornOnAttachmentPoint" value=" (worn on [ATTACHMENT_POINT])" />
+	<string name="ActiveGesture" value="[GESLABEL] (active)"/>
 	<!-- Inventory permissions -->
 	<string name="PermYes">Yes</string>
 	<string name="PermNo">No</string>
@@ -1892,6 +1909,7 @@ Clears (deletes) the media and all params from the given face.
 	<string name="InvFolder favorite">Favorites</string>
 	<string name="InvFolder Current Outfit">Current Outfit</string>
 	<string name="InvFolder My Outfits">My Outfits</string>
+	<string name="InvFolder Accessories">Accessories</string>
 
   <!-- are used for Friends and Friends/All folders in Inventory "Calling cards" folder. See EXT-694-->
 	<string name="InvFolder Friends">Friends</string>
@@ -2121,6 +2139,7 @@ Clears (deletes) the media and all params from the given face.
 
 	<!-- panel contents -->
 	<string name="PanelContentsNewScript">New Script</string>
+	<string name="PanelContentsTooltip">Content of object</string>
 
   <!-- panel preferences general -->
   <string name="BusyModeResponseDefault">The Resident you messaged is in &apos;busy mode&apos; which means they have requested not to be disturbed.  Your message will still be shown in their IM panel for later viewing.</string>
diff --git a/indra/newview/skins/default/xui/fr/panel_profile.xml b/indra/newview/skins/default/xui/fr/panel_profile.xml
index 8cb46419379c378eca9ad12f531420326cae1b24..f801aee312ba648bd813124ffb31d46de2f8eb1d 100644
--- a/indra/newview/skins/default/xui/fr/panel_profile.xml
+++ b/indra/newview/skins/default/xui/fr/panel_profile.xml
@@ -42,8 +42,8 @@
 		</layout_panel>
 		<layout_panel name="profile_buttons_panel">
 			<button label="Devenir amis" name="add_friend" tool_tip="Proposer à un résident de devenir votre ami"/>
-			<button label="IM" name="im" tool_tip="Ouvrir une session IM" width="30"/>
-			<button label="Appeler" name="call" tool_tip="Appeler ce résident" width="60"/>
+			<button label="IM" name="im" tool_tip="Ouvrir une session IM"/>
+			<button label="Appeler" name="call" tool_tip="Appeler ce résident"/>
 			<button label="Carte" name="show_on_map_btn" tool_tip="Afficher le résident sur la carte"/>
 			<button label="Téléporter" name="teleport" tool_tip="Proposez une téléportation"/>
 			<button label="▼" name="overflow_btn" tool_tip="Payer ou partager l&apos;inventaire avec le résident"/>
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index 910e6e0960f94bb9ce8a8e81934c0a1f67a619f6..28b12f2bdfe8476aa1ed2a28fb362935c6fe1b80 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -17,13 +17,13 @@
 		Ricerca hardware...
 	</string>
 	<string name="StartupLoading">
-		In Caricamento
+		Caricamento in corso
 	</string>
 	<string name="LoginInProgress">
 		In connessione. [APP_NAME] può sembrare rallentata.  Attendi.
 	</string>
 	<string name="LoginInProgressNoFrozen">
-		Logging in...
+		Accesso in corso...
 	</string>
 	<string name="LoginAuthenticating">
 		In autenticazione
@@ -80,7 +80,7 @@
 		Errore di rete: Non è stato possibile stabilire un collegamento, controlla la tua connessione.
 	</string>
 	<string name="Quit">
-		Termina
+		Esci
 	</string>
 	<string name="create_account_url">
 		http://join.secondlife.com/index.php?lang=it-IT
@@ -152,10 +152,10 @@
 		Clicca per vedere questa inserzione
 	</string>
 	<string name="TooltipParcelUrl">
-		Clicca per vedere la descrizione della parcel
+		Clicca per vedere la descrizione del lotto
 	</string>
 	<string name="TooltipTeleportUrl">
-		Clicca per teleportarti a questa destinazione
+		Clicca per effettuare il teleport a questa destinazione
 	</string>
 	<string name="TooltipObjectIMUrl">
 		Clicca per vedere la descrizione dell&apos;oggetto
@@ -166,7 +166,7 @@
 	<string name="TooltipSLAPP">
 		Clicca per avviare il comando secondlife://
 	</string>
-	<string name="CurrentURL" value=" URL attuale: [CurrentURL]"/>
+	<string name="CurrentURL" value="URL attuale: [CurrentURL]"/>
 	<string name="SLurlLabelTeleport">
 		Teleportati a
 	</string>
@@ -174,7 +174,7 @@
 		Mostra la mappa per
 	</string>
 	<string name="BUTTON_CLOSE_DARWIN">
-		Chiudi (&#8984;W)
+		Chiudi (⌘W)
 	</string>
 	<string name="BUTTON_CLOSE_WIN">
 		Chiudi (Ctrl+W)
@@ -195,10 +195,10 @@
 		Disàncora
 	</string>
 	<string name="BUTTON_HELP">
-		Mostra gli aiuti
+		Mostra Aiuto
 	</string>
 	<string name="Searching">
-		In ricerca...
+		Ricerca in corso...
 	</string>
 	<string name="NoneFound">
 		Nessun risultato.
@@ -267,19 +267,19 @@
 		biglietto da visita
 	</string>
 	<string name="landmark">
-		landmark
+		punto di riferimento
 	</string>
 	<string name="legacy script">
 		script (vecchia versione)
 	</string>
 	<string name="clothing">
-		abito
+		vestiario
 	</string>
 	<string name="object">
 		oggetto
 	</string>
 	<string name="note card">
-		notecard
+		biglietto
 	</string>
 	<string name="folder">
 		cartella
@@ -309,7 +309,7 @@
 		immagine targa
 	</string>
 	<string name="trash">
-		cestino
+		Cestino
 	</string>
 	<string name="jpeg image">
 		immagine jpeg
@@ -546,7 +546,7 @@
 		Si
 	</string>
 	<string name="texture_loading">
-		In Caricamento...
+		Caricamento in corso...
 	</string>
 	<string name="worldmap_offline">
 		Offline
@@ -684,25 +684,25 @@
 		Scegli la cartella
 	</string>
 	<string name="AvatarSetNotAway">
-		Imposta non assente
+		Imposta come non assente
 	</string>
 	<string name="AvatarSetAway">
-		Imposta assente
+		Imposta come assente
 	</string>
 	<string name="AvatarSetNotBusy">
-		Imposta non occupato
+		Imposta come non occupato
 	</string>
 	<string name="AvatarSetBusy">
-		Imposta occupato
+		Imposta come occupato
 	</string>
 	<string name="shape">
-		Shape
+		Figura corporea
 	</string>
 	<string name="skin">
-		Skin
+		Pelle
 	</string>
 	<string name="hair">
-		Capelli
+		Capigliature
 	</string>
 	<string name="eyes">
 		Occhi
@@ -717,7 +717,7 @@
 		Scarpe
 	</string>
 	<string name="socks">
-		Calze
+		Calzini
 	</string>
 	<string name="jacket">
 		Giacca
@@ -729,7 +729,7 @@
 		Maglietta intima
 	</string>
 	<string name="underpants">
-		slip
+		Slip
 	</string>
 	<string name="skirt">
 		Gonna
@@ -744,16 +744,16 @@
 		non valido
 	</string>
 	<string name="next">
-		Seguente
+		Avanti
 	</string>
 	<string name="ok">
 		OK
 	</string>
 	<string name="GroupNotifyGroupNotice">
-		Notice di gruppo
+		Avviso di gruppo
 	</string>
 	<string name="GroupNotifyGroupNotices">
-		Notice di gruppo
+		Avvisi di gruppo
 	</string>
 	<string name="GroupNotifySentBy">
 		Inviato da
@@ -762,7 +762,7 @@
 		Allegato:
 	</string>
 	<string name="GroupNotifyViewPastNotices">
-		Visualizza i notice passati o scegli qui di non riceverne.
+		Visualizza gli avvisi precedenti o scegli qui di non riceverne.
 	</string>
 	<string name="GroupNotifyOpenAttachment">
 		Apri l&apos;allegato
@@ -771,7 +771,7 @@
 		Salva l&apos;allegato
 	</string>
 	<string name="TeleportOffer">
-		Offerta di Teletrasporto
+		Offerta di Teleport
 	</string>
 	<string name="StartUpNotification">
 		[%d]  una nuova notifica è arrivata mentre eri assente...
@@ -819,40 +819,40 @@
 		Non hai una copia
 di questa texture in inventario.
 	</string>
-	<string name="no_transfer" value=" (no transfer)"/>
-	<string name="no_modify" value=" (no modify)"/>
-	<string name="no_copy" value=" (no copy)"/>
-	<string name="worn" value=" (indossato)"/>
-	<string name="link" value=" (link)"/>
-	<string name="broken_link" value=" (broken_link)"/>
+	<string name="no_transfer" value="(nessun trasferimento)"/>
+	<string name="no_modify" value="(nessuna modifica)"/>
+	<string name="no_copy" value="(nessuna copia)"/>
+	<string name="worn" value="(indossato)"/>
+	<string name="link" value="(link)"/>
+	<string name="broken_link" value="(broken_link)&quot;"/>
 	<string name="LoadingContents">
-		Contenuto in caricamento...
+		Caricamento del contenuto...
 	</string>
 	<string name="NoContents">
 		Nessun contenuto
 	</string>
-	<string name="WornOnAttachmentPoint" value=" (indossato su [ATTACHMENT_POINT])"/>
-	<string name="Chat" value=" Chat :"/>
-	<string name="Sound" value=" Suono :"/>
-	<string name="Wait" value=" --- Attendi :"/>
-	<string name="AnimFlagStop" value=" Ferma l&apos;Animazione :"/>
-	<string name="AnimFlagStart" value=" Inizia l&apos;Animazione :"/>
-	<string name="Wave" value=" Wave"/>
-	<string name="HelloAvatar" value=" Ciao, avatar!"/>
-	<string name="ViewAllGestures" value="  Visualizza tutte le gesture &gt;&gt;"/>
-	<string name="Animations" value=" Animazioni,"/>
-	<string name="Calling Cards" value=" Biglietti da visita,"/>
-	<string name="Clothing" value=" Vestiti,"/>
-	<string name="Gestures" value=" Gesture,"/>
-	<string name="Landmarks" value=" Landmark,"/>
-	<string name="Notecards" value=" Notecard,"/>
-	<string name="Objects" value=" Oggetti,"/>
-	<string name="Scripts" value=" Script,"/>
-	<string name="Sounds" value=" Suoni,"/>
-	<string name="Textures" value=" Texture,"/>
-	<string name="Snapshots" value=" Fotografie,"/>
-	<string name="No Filters" value="No "/>
-	<string name="Since Logoff" value=" - Dalla disconnessione"/>
+	<string name="WornOnAttachmentPoint" value="(indossato su [ATTACHMENT_POINT])"/>
+	<string name="Chat" value="Chat :"/>
+	<string name="Sound" value="Suono :"/>
+	<string name="Wait" value="--- Attendi :"/>
+	<string name="AnimFlagStop" value="Ferma l&apos;animazione :"/>
+	<string name="AnimFlagStart" value="Inizia l&apos;animazione :"/>
+	<string name="Wave" value="Saluta con la mano"/>
+	<string name="HelloAvatar" value="Ciao, avatar!"/>
+	<string name="ViewAllGestures" value="Visualizza tutto &gt;&gt;"/>
+	<string name="Animations" value="Animazioni,"/>
+	<string name="Calling Cards" value="Biglietti da visita,"/>
+	<string name="Clothing" value="Vestiti,"/>
+	<string name="Gestures" value="Gesture,"/>
+	<string name="Landmarks" value="Punti di riferimento,"/>
+	<string name="Notecards" value="Biglietti,"/>
+	<string name="Objects" value="Oggetti,"/>
+	<string name="Scripts" value="Script,"/>
+	<string name="Sounds" value="Suoni,"/>
+	<string name="Textures" value="Texture,"/>
+	<string name="Snapshots" value="Fotografie,"/>
+	<string name="No Filters" value="No"/>
+	<string name="Since Logoff" value="- Dall&apos;uscita"/>
 	<string name="InvFolder My Inventory">
 		Il mio inventario
 	</string>
@@ -869,22 +869,22 @@ di questa texture in inventario.
 		Suoni
 	</string>
 	<string name="InvFolder Calling Cards">
-		Biglieti da visita
+		Biglietti da visita
 	</string>
 	<string name="InvFolder Landmarks">
-		Landmark
+		Punti di riferimento
 	</string>
 	<string name="InvFolder Scripts">
 		Script
 	</string>
 	<string name="InvFolder Clothing">
-		Vestiti
+		Vestiario
 	</string>
 	<string name="InvFolder Objects">
 		Oggetti
 	</string>
 	<string name="InvFolder Notecards">
-		Notecard
+		Biglietti
 	</string>
 	<string name="InvFolder New Folder">
 		Nuova cartella
@@ -920,22 +920,22 @@ di questa texture in inventario.
 		Preferiti
 	</string>
 	<string name="InvFolder Current Outfit">
-		Outfit attuale
+		Abbigliamento attuale
 	</string>
 	<string name="InvFolder My Outfits">
-		I miei Outfit
+		Il mio vestiario
 	</string>
 	<string name="InvFolder Friends">
 		Amici
 	</string>
 	<string name="InvFolder All">
-		Tutti
+		Tutto
 	</string>
 	<string name="Buy">
-		Compra
+		Acquista
 	</string>
 	<string name="BuyforL$">
-		Compra per L$
+		Acquista per L$
 	</string>
 	<string name="Stone">
 		Pietra
@@ -962,7 +962,7 @@ di questa texture in inventario.
 		Luce
 	</string>
 	<string name="KBShift">
-		Shift
+		Maiusc
 	</string>
 	<string name="KBCtrl">
 		Ctrl
@@ -1112,13 +1112,13 @@ di questa texture in inventario.
 		[COUNT] giorni
 	</string>
 	<string name="GroupMembersA">
-		[COUNT] membro
+		[COUNT] iscritto
 	</string>
 	<string name="GroupMembersB">
-		[COUNT] membri
+		[COUNT] iscritti
 	</string>
 	<string name="GroupMembersC">
-		[COUNT] membri
+		[COUNT] iscritti
 	</string>
 	<string name="AcctTypeResident">
 		Residente
@@ -1127,10 +1127,10 @@ di questa texture in inventario.
 		In prova
 	</string>
 	<string name="AcctTypeCharterMember">
-		Membro onorario
+		Socio onorario
 	</string>
 	<string name="AcctTypeEmployee">
-		Impiegato Linden Lab
+		Dipendente Linden Lab
 	</string>
 	<string name="PaymentInfoUsed">
 		Informazioni di pagamento usate
@@ -1139,7 +1139,7 @@ di questa texture in inventario.
 		Informazioni di pagamento registrate
 	</string>
 	<string name="NoPaymentInfoOnFile">
-		Nessuna informazione di pagamento
+		Nessuna informazione di pagamento disponibile
 	</string>
 	<string name="AgeVerified">
 		Età verificata
@@ -1154,7 +1154,7 @@ di questa texture in inventario.
 		In alto a destra
 	</string>
 	<string name="Top">
-		In  alto
+		in  alto
 	</string>
 	<string name="Top Left">
 		In alto a sinistra
@@ -1196,22 +1196,22 @@ di questa texture in inventario.
 		ricompila
 	</string>
 	<string name="ResetQueueTitle">
-		Avanzamento reset
+		Azzera avanzamento
 	</string>
 	<string name="ResetQueueStart">
-		reset
+		azzera
 	</string>
 	<string name="RunQueueTitle">
-		Avanzamento attivazione
+		Attiva avanzamento
 	</string>
 	<string name="RunQueueStart">
-		Attiva
+		attiva
 	</string>
 	<string name="NotRunQueueTitle">
-		Avanzamento disattivazione
+		Disattiva avanzamento
 	</string>
 	<string name="NotRunQueueStart">
-		Disattivazione
+		disattiva
 	</string>
 	<string name="CompileSuccessful">
 		Compilazione riuscita!
@@ -1231,18 +1231,18 @@ di questa texture in inventario.
 	<string name="GroupsNone">
 		nessuno
 	</string>
-	<string name="Group" value=" (gruppo)"/>
+	<string name="Group" value="(gruppo)"/>
 	<string name="Unknown">
 		(Sconosciuto)
 	</string>
 	<string name="SummaryForTheWeek" value="Riassunto della settimana, partendo dal"/>
-	<string name="NextStipendDay" value="Il prossimo giorno di stipendio è "/>
-	<string name="GroupIndividualShare" value="                      Gruppo       Dividendi individuali"/>
+	<string name="NextStipendDay" value="Il prossimo giorno di stipendio è"/>
+	<string name="GroupIndividualShare" value="Gruppo       Dividendi individuali"/>
 	<string name="Balance">
 		Saldo
 	</string>
 	<string name="Credits">
-		Crediti
+		Ringraziamenti
 	</string>
 	<string name="Debits">
 		Debiti
@@ -1257,7 +1257,7 @@ di questa texture in inventario.
 		Proprietà principale
 	</string>
 	<string name="IMMainland">
-		mainland
+		continente
 	</string>
 	<string name="IMTeen">
 		teen
@@ -1266,13 +1266,13 @@ di questa texture in inventario.
 		errore
 	</string>
 	<string name="RegionInfoAllEstatesOwnedBy">
-		la proprietà posseduta da [OWNER]
+		tutte le proprietà immobiliari di [OWNER]
 	</string>
 	<string name="RegionInfoAllEstatesYouOwn">
-		Le proprietà che possiedi
+		tutte le tue proprietà immobiliari
 	</string>
 	<string name="RegionInfoAllEstatesYouManage">
-		Le proprietà di cui sei manager per conto di [OWNER]
+		tutte le proprietà immobiliari che gestisci per conto di [OWNER]
 	</string>
 	<string name="RegionInfoAllowedResidents">
 		Residenti ammessi: ([ALLOWEDAGENTS], massimo [MAXACCESS])
@@ -1287,10 +1287,10 @@ di questa texture in inventario.
 		[COUNT] trovato/i
 	</string>
 	<string name="PanelContentsNewScript">
-		Nuovo Script
+		Nuovo script
 	</string>
 	<string name="MuteByName">
-		(per nome)
+		(in base al nome)
 	</string>
 	<string name="MuteAgent">
 		(residente)
@@ -1302,18 +1302,18 @@ di questa texture in inventario.
 		(gruppo)
 	</string>
 	<string name="RegionNoCovenant">
-		Non esiste nessun regolamento per questa proprietà.
+		Non esiste alcun regolamento per questa proprietà.
 	</string>
 	<string name="RegionNoCovenantOtherOwner">
-		Non esiste nessun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita.
+		Non esiste alcun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab.  Contatta il proprietario del terreno per i dettagli della vendita.
 	</string>
 	<string name="covenant_last_modified">
 		Ultima modifica:
 	</string>
-	<string name="none_text" value=" (nessuno) "/>
-	<string name="never_text" value=" (mai) "/>
+	<string name="none_text" value="(nessuno)"/>
+	<string name="never_text" value="(mai)"/>
 	<string name="GroupOwned">
-		Posseduta da un gruppo
+		Di proprietà di un gruppo
 	</string>
 	<string name="Public">
 		Pubblica
@@ -1328,22 +1328,22 @@ di questa texture in inventario.
 		Anteprima
 	</string>
 	<string name="MultiPropertiesTitle">
-		Proprietà
+		Beni immobiliari
 	</string>
 	<string name="InvOfferAnObjectNamed">
-		Un oggetto chiamato
+		Un oggetto denominato
 	</string>
 	<string name="InvOfferOwnedByGroup">
-		Posseduto dal gruppo
+		di proprietà del gruppo
 	</string>
 	<string name="InvOfferOwnedByUnknownGroup">
-		Posseduto da un gruppo sconosciuto
+		di proprietà di un gruppo sconosciuto
 	</string>
 	<string name="InvOfferOwnedBy">
-		Posseduto da
+		di proprietà di
 	</string>
 	<string name="InvOfferOwnedByUnknownUser">
-		Posseduto da un&apos;utente sconosciuto
+		di proprietà di un utente sconosciuto
 	</string>
 	<string name="InvOfferGaveYou">
 		Ti ha offerto
@@ -1379,7 +1379,7 @@ di questa texture in inventario.
 		Saldo
 	</string>
 	<string name="GroupMoneyCredits">
-		Crediti
+		Ringraziamenti
 	</string>
 	<string name="GroupMoneyDebits">
 		Debiti
@@ -1391,7 +1391,7 @@ di questa texture in inventario.
 		Oggetti acquisiti
 	</string>
 	<string name="Cancel">
-		Cancella
+		Annulla
 	</string>
 	<string name="UploadingCosts">
 		Costi di caricamento [%s]
@@ -1401,22 +1401,22 @@ di questa texture in inventario.
 Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 	</string>
 	<string name="AddLandmarkNavBarMenu">
-		Aggiungi landmark...
+		Aggiungi punto di riferimento...
 	</string>
 	<string name="EditLandmarkNavBarMenu">
-		Modifica landmark...
+		Modifica punto di riferimento...
 	</string>
 	<string name="accel-mac-control">
-		&#8963;
+		⌃
 	</string>
 	<string name="accel-mac-command">
-		&#8984;
+		⌘
 	</string>
 	<string name="accel-mac-option">
-		&#8997;
+		⌥
 	</string>
 	<string name="accel-mac-shift">
-		&#8679;
+		⇧
 	</string>
 	<string name="accel-win-control">
 		Ctrl+
@@ -1428,22 +1428,22 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 		Shift+
 	</string>
 	<string name="FileSaved">
-		File Salvato
+		File salvato
 	</string>
 	<string name="Receiving">
 		In ricezione
 	</string>
 	<string name="AM">
-		AM
+		antemeridiane
 	</string>
 	<string name="PM">
-		PM
+		pomeridiane
 	</string>
 	<string name="PST">
-		PST
+		Ora Pacifico
 	</string>
 	<string name="PDT">
-		PDT
+		Ora legale Pacifico
 	</string>
 	<string name="Forward">
 		Avanti
@@ -1455,7 +1455,7 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 		Destra
 	</string>
 	<string name="Back">
-		Dietro
+		Indietro
 	</string>
 	<string name="North">
 		Nord
@@ -1476,13 +1476,13 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 		Giù
 	</string>
 	<string name="Any Category">
-		Tutte le categorie
+		Qualsiasi categoria
 	</string>
 	<string name="Shopping">
-		Shopping
+		Acquisti
 	</string>
 	<string name="Land Rental">
-		Affitto terreni
+		Affitto terreno
 	</string>
 	<string name="Property Rental">
 		Affitto proprietà
@@ -1494,13 +1494,13 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 		Nuovi prodotti
 	</string>
 	<string name="Employment">
-		Impiego
+		Lavoro
 	</string>
 	<string name="Wanted">
-		Richiesti
+		Cercasi
 	</string>
 	<string name="Service">
-		Servizi
+		Servizio
 	</string>
 	<string name="Personal">
 		Personale
@@ -1539,7 +1539,7 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 		Residenziale
 	</string>
 	<string name="Stage">
-		Stage
+		Fase
 	</string>
 	<string name="Other">
 		Altro
@@ -1551,10 +1551,10 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
 		Tu
 	</string>
 	<string name="Multiple Media">
-		Media Multipli
+		Più supporti
 	</string>
 	<string name="Play Media">
-		Media Play/Pausa
+		Riproduci/Pausa supporto
 	</string>
 	<string name="MBCmdLineError">
 		Un errore è stato riscontrato analizzando la linea di comando.
@@ -1562,17 +1562,17 @@ Per informazioni: http://wiki.secondlife.com/wiki/Client_parameters
 Errore:
 	</string>
 	<string name="MBCmdLineUsg">
-		uso linea di comando del programma [APP_NAME] :
+		Uso linea di comando del programma [APP_NAME] :
 	</string>
 	<string name="MBUnableToAccessFile">
 		Il programma [APP_NAME] non è in grado di accedere ad un file necessario.
 
-Potrebbe darsi che tu abbia copie multiple attivate, o il tuo sistema reputa erroneamente che il file sia già aperto.
+Potrebbe darsi che tu abbia copie multiple attivate o che il tuo sistema reputi erroneamente che il file sia già aperto.
 Se il problema persiste, riavvia il computer e riprova.
-Se il problema persiste ancora, dovresti completamente disinstallare l&apos;applicazione [APP_NAME] e reinstallarla.
+Se il problema continua ancora, dovresti completamente disinstallare l&apos;applicazione [APP_NAME] e reinstallarla.
 	</string>
 	<string name="MBFatalError">
-		Errore fatale
+		Errore critico
 	</string>
 	<string name="MBRequiresAltiVec">
 		Il programma [APP_NAME] richiede un processore con AltiVec (G4 o superiore).
@@ -1591,7 +1591,7 @@ Vuoi mandare un crash report?
 	</string>
 	<string name="MBNoDirectX">
 		Il programmma [APP_NAME] non riesce a trovare una DirectX 9.0b o superiore.
-[APP_NAME] usa le DirectX per determinare hardware e/o i driver  non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni. Sebbene tu possa avviare il programma [APP_NAME] senza di esse, raccomandiamo caldamente di installare le DirectX 9.0b.
+[APP_NAME] usa DirectX per rilevare hardware e/o i driver  non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni.  Benché tu possa avviare il programma [APP_NAME] senza di esse, consigliamo caldamente l&apos;esecuzione con DirectX 9.0b.
 
 Vuoi continuare?
 	</string>
@@ -1599,8 +1599,8 @@ Vuoi continuare?
 		Attenzione
 	</string>
 	<string name="MBNoAutoUpdate">
-		L&apos;aggiornamento automatico non è stato ancora implementato per Linux.
-Raccomandiamo di scaricare l&apos;utima versione da www.secondlife.com.
+		L&apos;aggiornamento automatico non è stato ancora realizzato per Linux.
+Consigliamo di scaricare l&apos;ultima versione direttamente da www.secondlife.com.
 	</string>
 	<string name="MBRegClassFailed">
 		RegisterClass non riuscito
@@ -1609,8 +1609,8 @@ Raccomandiamo di scaricare l&apos;utima versione da www.secondlife.com.
 		Errore
 	</string>
 	<string name="MBFullScreenErr">
-		Impossibile visualizzare a schermo intero a risoluzione [WIDTH] x [HEIGHT].
-Visualizzazione corrente ridotta a finestra.
+		Impossibile visualizzare a schermo intero con risoluzione [WIDTH] x [HEIGHT].
+Visualizzazione corrente in modalità finestra.
 	</string>
 	<string name="MBDestroyWinFailed">
 		Errore di arresto durante il tentativo di chiusura della finestra (DestroyWindow() non riuscito)
@@ -1628,14 +1628,14 @@ Visualizzazione corrente ridotta a finestra.
 		Impossibile ottenere una descrizione del formato pixel
 	</string>
 	<string name="MBTrueColorWindow">
-		[APP_NAME] richiede True Color (32-bit) per funzionare.
-Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32-bit.
+		[APP_NAME] richiede True Color (32 bit) per funzionare.
+Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32 bit.
 	</string>
 	<string name="MBAlpha">
-		[APP_NAME] non funziona poichè è impossibile trovare un canale alpha ad 8 Bit. Questo problema normalmente deriva dai driver della scheda video.
+		[APP_NAME] non funziona poichè è impossibile trovare un canale alpha a 8 bit.  Questo problema normalmente deriva dai driver della scheda video.
 Assicurati di avere installato i driver della scheda video più recenti.
-Assicurati anche che il monitor sia impostato a True Color (32-bit) nel pannello di controllo &gt; Display &gt; Settings.
-Se il messaggio persiste, contatta contatta [SUPPORT_SITE].
+Assicurati anche che il monitor sia impostato a True Color (32 bit) nel Pannello di controllo &gt; Schermo &gt; Impostazioni.
+Se il messaggio persiste, contatta [SUPPORT_SITE].
 	</string>
 	<string name="MBPixelFmtSetErr">
 		Impossibile impostare il formato pixel
@@ -1647,7 +1647,7 @@ Se il messaggio persiste, contatta contatta [SUPPORT_SITE].
 		Impossibile attivare il GL rendering
 	</string>
 	<string name="MBVideoDrvErr">
-		[APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a reinstallarli di nuovo.
+		[APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a installarli di nuovo.
 
 Se il messaggio persiste, contatta [SUPPORT_SITE].
 	</string>
@@ -1673,43 +1673,43 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Lobi attaccati
 	</string>
 	<string name="Back Bangs">
-		#Back Bangs
+		Frangetta da dietro
 	</string>
 	<string name="Back Bangs Down">
-		#Back Bangs Down
+		Frangetta da dietro giù
 	</string>
 	<string name="Back Bangs Up">
-		#Back Bangs Up
+		Frangetta da dietro su
 	</string>
 	<string name="Back Fringe">
 		Frangetta all&apos;indietro
 	</string>
 	<string name="Back Hair">
-		#Back Hair
+		Capelli da dietro
 	</string>
 	<string name="Back Hair Down">
-		#Back Hair Down
+		Capelli da dietro giù
 	</string>
 	<string name="Back Hair Up">
-		#Back Hair Up
+		Capelli da dietro su
 	</string>
 	<string name="Baggy">
-		Con le borse
+		Larghi
 	</string>
 	<string name="Bangs">
 		Frange
 	</string>
 	<string name="Bangs Down">
-		#Bangs Down
+		Frangetta giù
 	</string>
 	<string name="Bangs Up">
-		#Bangs Up
+		Frangetta su
 	</string>
 	<string name="Beady Eyes">
 		Occhi piccoli
 	</string>
 	<string name="Belly Size">
-		punto vita
+		Punto vita
 	</string>
 	<string name="Big">
 		Grande
@@ -1718,22 +1718,22 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Sedere grande
 	</string>
 	<string name="Big Eyeball">
-		#Big Eyeball
+		Bulbo oculare grande
 	</string>
 	<string name="Big Hair Back">
-		Gonfiore dei capelli: dietro
+		Capigliatura grande: Indietro
 	</string>
 	<string name="Big Hair Front">
-		Gonfiore dei capelli: davanti
+		Capigliatura grande: anteriore
 	</string>
 	<string name="Big Hair Top">
-		Gonfiore dei capelli: sopra
+		Capigliatura grande: in  alto
 	</string>
 	<string name="Big Head">
-		Grandezza testa
+		Grande testa
 	</string>
 	<string name="Big Pectorals">
-		Grandezza pettorali
+		Grandi pettorali
 	</string>
 	<string name="Big Spikes">
 		Capelli con punte
@@ -1766,13 +1766,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Lentiggini e nei
 	</string>
 	<string name="Body Thick">
-		Corpo robusto
+		Corpo più robusto
 	</string>
 	<string name="Body Thickness">
 		Robustezza del corpo
 	</string>
 	<string name="Body Thin">
-		Magrezza del corpo
+		Corpo più magro
 	</string>
 	<string name="Bow Legged">
 		Gambe arcuate
@@ -1781,7 +1781,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Altezza del seno
 	</string>
 	<string name="Breast Cleavage">
-		Avvicinamento dei seni
+		Décolleté
 	</string>
 	<string name="Breast Size">
 		Grandezza del seno
@@ -1796,7 +1796,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Grandezza delle sopracciglia
 	</string>
 	<string name="Bug Eyes">
-		Sporgenza degli occhi
+		Occhi sporgenti
 	</string>
 	<string name="Bugged Eyes">
 		Occhi sporgenti
@@ -1817,19 +1817,19 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Grandezza del sedere
 	</string>
 	<string name="bustle skirt">
-		Arricciatura posteriore
+		Crinolina
 	</string>
 	<string name="no bustle">
-		Meno arricciatura
+		Nessuna crinolina
 	</string>
 	<string name="more bustle">
-		Più arricciatura
+		Più crinolina
 	</string>
 	<string name="Chaplin">
 		Baffetti
 	</string>
 	<string name="Cheek Bones">
-		Mascella
+		Zigomi
 	</string>
 	<string name="Chest Size">
 		Ampiezza del torace
@@ -1838,7 +1838,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Angolo del mento
 	</string>
 	<string name="Chin Cleft">
-		Fessura inf. del mento
+		Fossetta sul mento
 	</string>
 	<string name="Chin Curtains">
 		Barba sottomento
@@ -1847,16 +1847,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Profondità mento
 	</string>
 	<string name="Chin Heavy">
-		Appuntita verso l&apos;alto
+		Mento forte
 	</string>
 	<string name="Chin In">
 		Mento in dentro
 	</string>
 	<string name="Chin Out">
-		Mento in fuori
+		Mento sporgente
 	</string>
 	<string name="Chin-Neck">
-		Grandezza mento-collo
+		Mento-collo
 	</string>
 	<string name="Clear">
 		Trasparente
@@ -1871,46 +1871,46 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Chiusa
 	</string>
 	<string name="Closed Back">
-		Spacco chiuso dietro
+		Chiuso dietro
 	</string>
 	<string name="Closed Front">
-		Spacco chiuso davanti
+		Chiuso davanti
 	</string>
 	<string name="Closed Left">
-		Spacco chiuso sx
+		Chiuso sinistra
 	</string>
 	<string name="Closed Right">
-		Spacco chiuso dx
+		Chiuso destra
 	</string>
 	<string name="Coin Purse">
 		Meno pronunciati
 	</string>
 	<string name="Collar Back">
-		Scollatura posteriore
+		Colletto posteriore
 	</string>
 	<string name="Collar Front">
-		Scollatura anteriore
+		Colletto anteriore
 	</string>
 	<string name="Corner Down">
 		Angolo all&apos;ingiù
 	</string>
 	<string name="Corner Normal">
-		Angolo Normale
+		Angolo normale
 	</string>
 	<string name="Corner Up">
 		Angolo all&apos;insù
 	</string>
 	<string name="Creased">
-		Alzato
+		Piega
 	</string>
 	<string name="Crooked Nose">
 		Naso storto
 	</string>
 	<string name="Cropped Hair">
-		Capelli raccolti
+		Capelli corti
 	</string>
 	<string name="Cuff Flare">
-		Fondo pantalone
+		Svasato con risvolto
 	</string>
 	<string name="Dark">
 		Scuro
@@ -1922,7 +1922,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Più scuro
 	</string>
 	<string name="Deep">
-		Più pronunciato
+		Profondo
 	</string>
 	<string name="Default Heels">
 		Tacchi standard
@@ -1931,40 +1931,40 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Punta del piede standard
 	</string>
 	<string name="Dense">
-		Meno rade
+		Folti
 	</string>
 	<string name="Dense hair">
-		#Dense Hair
+		Capelli folti
 	</string>
 	<string name="Double Chin">
 		Doppio mento
 	</string>
 	<string name="Downturned">
-		Naso all&apos;ingiù
+		All&apos;ingiù
 	</string>
 	<string name="Duffle Bag">
 		Più pronunciati
 	</string>
 	<string name="Ear Angle">
-		Orecchie a sventola
+		Angolo orecchie
 	</string>
 	<string name="Ear Size">
 		Grandezza orecchie
 	</string>
 	<string name="Ear Tips">
-		Tipo di orecchio
+		Estremità orecchie
 	</string>
 	<string name="Egg Head">
 		Ovalizzazione testa
 	</string>
 	<string name="Eye Bags">
-		Borse sotto agli occhi
+		Occhiaie
 	</string>
 	<string name="Eye Color">
 		Colore degli occhi
 	</string>
 	<string name="Eye Depth">
-		Occhi incavati
+		Profondità degli occhi
 	</string>
 	<string name="Eye Lightness">
 		Luminosità degli occhi
@@ -1973,7 +1973,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Apertura degli occhi
 	</string>
 	<string name="Eye Pop">
-		Differenza apertura occhi
+		Prominenza degli occhi
 	</string>
 	<string name="Eye Size">
 		Grandezza occhi
@@ -1982,7 +1982,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Distanza occhi
 	</string>
 	<string name="Eyeball Size">
-		#Eyeball Size
+		Grandezza bulbo oculare
 	</string>
 	<string name="Eyebrow Arc">
 		Arco delle sopracciglia
@@ -2009,64 +2009,64 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Colore dell&apos;eyeliner
 	</string>
 	<string name="Eyes Back">
-		#Eyes Back
+		Occhi indietro
 	</string>
 	<string name="Eyes Bugged">
 		Occhi sporgenti
 	</string>
 	<string name="Eyes Forward">
-		#Eyes Forward
+		Occhi in avanti
 	</string>
 	<string name="Eyes Long Head">
-		#Eyes Long Head
+		Occhi testa lunga
 	</string>
 	<string name="Eyes Shear Left Up">
-		Distorsione occhi in alto a sx
+		Occhio a sinistra verso l&apos;alto
 	</string>
 	<string name="Eyes Shear Right Up">
-		Distorsione occhi in alto a dx
+		Occhio a destra verso il basso
 	</string>
 	<string name="Eyes Short Head">
-		#Eyes Short Head
+		Occhi testa corta
 	</string>
 	<string name="Eyes Spread">
-		#Eyes Spread
+		Spaziatura occhi
 	</string>
 	<string name="Eyes Sunken">
-		#Eyes Sunken
+		Occhi infossati
 	</string>
 	<string name="Eyes Together">
-		#Eyes Together
+		Occhi ravvicinati
 	</string>
 	<string name="Face Shear">
-		Distorsione del viso
+		Taglio del viso
 	</string>
 	<string name="Facial Definition">
-		Lineamenti del viso
+		Definizione del viso
 	</string>
 	<string name="Far Set Eyes">
 		Occhi distanti
 	</string>
 	<string name="Fat">
-		#Fat
+		Grasso
 	</string>
 	<string name="Fat Head">
-		#Fat Head
+		Testa grossa
 	</string>
 	<string name="Fat Lips">
 		Labbra carnose
 	</string>
 	<string name="Fat Lower">
-		#Fat Lower
+		Inferiore carnoso
 	</string>
 	<string name="Fat Lower Lip">
 		Labbro inferiore sporgente
 	</string>
 	<string name="Fat Torso">
-		#Fat Torso
+		Torace grosso
 	</string>
 	<string name="Fat Upper">
-		#Fat Upper
+		Torace grosso
 	</string>
 	<string name="Fat Upper Lip">
 		Labbro superiore sporgente
@@ -2081,7 +2081,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Dita
 	</string>
 	<string name="Flared Cuffs">
-		Fondo largo
+		Risvolti svasati
 	</string>
 	<string name="Flat">
 		Piatto
@@ -2090,88 +2090,88 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Sedere piatto
 	</string>
 	<string name="Flat Head">
-		Viso piatto
+		Testa piatta
 	</string>
 	<string name="Flat Toe">
 		Punta piatta
 	</string>
 	<string name="Foot Size">
-		Grandezza piede
+		Misura piede
 	</string>
 	<string name="Forehead Angle">
 		Angolo della fronte
 	</string>
 	<string name="Forehead Heavy">
-		Appuntita verso il basso
+		Fronte sporgente
 	</string>
 	<string name="Freckles">
 		Lentiggini
 	</string>
 	<string name="Front Bangs Down">
-		#Front Bangs Down
+		Frangette in giù
 	</string>
 	<string name="Front Bangs Up">
-		#Front Bangs Up
+		Frangette in su
 	</string>
 	<string name="Front Fringe">
 		Frangetta
 	</string>
 	<string name="Front Hair">
-		#Front Hair
+		Capelli davanti
 	</string>
 	<string name="Front Hair Down">
-		#Front Hair Down
+		Capelli davanti sciolti
 	</string>
 	<string name="Front Hair Up">
-		#Front Hair Up
+		Capelli davanti raccolti
 	</string>
 	<string name="Full Back">
-		Scostati
+		Dietro gonfi
 	</string>
 	<string name="Full Eyeliner">
-		Con eyeliner
+		Eyeliner marcato
 	</string>
 	<string name="Full Front">
-		Anteriore pieno
+		Anteriore gonfio
 	</string>
 	<string name="Full Hair Sides">
-		Riempimento lati
+		Lati capelli gonfi
 	</string>
 	<string name="Full Sides">
-		Pieni
+		Lati gonfi
 	</string>
 	<string name="Glossy">
 		Lucido
 	</string>
 	<string name="Glove Fingers">
-		Dita dei guanti
+		Dita con guanti
 	</string>
 	<string name="Glove Length">
 		Lunghezza guanti
 	</string>
 	<string name="Hair">
-		Capelli
+		Capigliature
 	</string>
 	<string name="Hair Back">
-		Capelli: dietro
+		Capelli: Indietro
 	</string>
 	<string name="Hair Front">
-		Capelli: davanti
+		Capelli: anteriore
 	</string>
 	<string name="Hair Sides">
 		Capelli: lati
 	</string>
 	<string name="Hair Sweep">
-		Traslazione
+		Direzione capigliatura
 	</string>
 	<string name="Hair Thickess">
-		Spessore
+		Foltezza
 	</string>
 	<string name="Hair Thickness">
-		Spessore barba
+		Foltezza
 	</string>
 	<string name="Hair Tilt">
-		Rotazione capelli
+		Inclinazione
 	</string>
 	<string name="Hair Tilted Left">
 		Verso sinistra
@@ -2180,16 +2180,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Verso destra
 	</string>
 	<string name="Hair Volume">
-		Capelli: volume
+		Capelli: Volume
 	</string>
 	<string name="Hand Size">
 		Grandezza mani
 	</string>
 	<string name="Handlebars">
-		Baffi lunghi
+		Baffi a manubrio
 	</string>
 	<string name="Head Length">
-		Sporgenza del viso
+		Lunghezza testa
 	</string>
 	<string name="Head Shape">
 		Forma della testa
@@ -2198,7 +2198,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Grandezza della testa
 	</string>
 	<string name="Head Stretch">
-		Compressione lat testa
+		Allungamento testa
 	</string>
 	<string name="Heel Height">
 		Altezza tacchi
@@ -2222,7 +2222,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Alta
 	</string>
 	<string name="High and Tight">
-		Cavallo alto
+		Alto e stretto
 	</string>
 	<string name="Higher">
 		Più alto
@@ -2267,7 +2267,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Forma del mento
 	</string>
 	<string name="Join">
-		Avvicinati
+		Iscriviti
 	</string>
 	<string name="Jowls">
 		Guance
@@ -2297,7 +2297,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Meno
 	</string>
 	<string name="Less Body Fat">
-		Meno grasso
+		Meno grasso corporeo
 	</string>
 	<string name="Less Curtains">
 		Meno
@@ -2339,16 +2339,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Meno
 	</string>
 	<string name="Lighter">
-		Più chiaro
+		Più leggero
 	</string>
 	<string name="Lip Cleft">
-		Distanza divis. labbro sup.
+		Distanza fossetta labbro
 	</string>
 	<string name="Lip Cleft Depth">
-		Prof. spacco labbro sup.
+		Prof. fossetta labbro
 	</string>
 	<string name="Lip Fullness">
-		Riempimento delle labbra
+		Volume labbra
 	</string>
 	<string name="Lip Pinkness">
 		Tonalità rosa labbra
@@ -2375,7 +2375,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Lungo
 	</string>
 	<string name="Long Head">
-		Viso sporgente
+		Testa lunga
 	</string>
 	<string name="Long Hips">
 		Bacino alto
@@ -2387,7 +2387,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Collo lungo
 	</string>
 	<string name="Long Pigtails">
-		Ciuffi laterali lunghi
+		Codini lunghi
 	</string>
 	<string name="Long Ponytail">
 		Codino lungo
@@ -2399,16 +2399,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Braccia lunghe
 	</string>
 	<string name="Longcuffs">
-		Longcuffs
+		Maniche lunghe
 	</string>
 	<string name="Loose Pants">
-		Non attillati
+		Pantaloni ampi
 	</string>
 	<string name="Loose Shirt">
-		Non attillata
+		Camicia ampia
 	</string>
 	<string name="Loose Sleeves">
-		Maniche lente
+		Maniche non attillate
 	</string>
 	<string name="Love Handles">
 		Maniglie dell&apos;amore
@@ -2426,7 +2426,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Bassa
 	</string>
 	<string name="Low and Loose">
-		Cavallo basso
+		Basso e ampio
 	</string>
 	<string name="Lower">
 		Più basso
@@ -2435,7 +2435,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Parte bassa del setto
 	</string>
 	<string name="Lower Cheeks">
-		Guance
+		Guance inferiori
 	</string>
 	<string name="Male">
 		Maschio
@@ -2444,13 +2444,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Riga nel mezzo
 	</string>
 	<string name="More">
-		Di più
+		Altro
 	</string>
 	<string name="More Blush">
 		Più fard
 	</string>
 	<string name="More Body Fat">
-		Più grasso
+		Più grasso corporeo
 	</string>
 	<string name="More Curtains">
 		Più
@@ -2519,7 +2519,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Posizione della bocca
 	</string>
 	<string name="Mowhawk">
-		Vuoti
+		Moicana
 	</string>
 	<string name="Muscular">
 		Muscolatura
@@ -2597,10 +2597,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Superiore normale
 	</string>
 	<string name="Nose Left">
-		Storto a sinistra
+		Naso a sinistra
 	</string>
 	<string name="Nose Right">
-		Storto a destra
+		Naso a destra
 	</string>
 	<string name="Nose Size">
 		Grandezza naso
@@ -2630,13 +2630,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Opaco
 	</string>
 	<string name="Open">
-		Aperto
+		Apri
 	</string>
 	<string name="Open Back">
 		Retro aperto
 	</string>
 	<string name="Open Front">
-		Aperto Frontale
+		Davanti aperto
 	</string>
 	<string name="Open Left">
 		Lato sin. aperto
@@ -2672,7 +2672,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Genitali
 	</string>
 	<string name="Painted Nails">
-		Unghie colorate
+		Unghie smaltate
 	</string>
 	<string name="Pale">
 		Pallido
@@ -2687,7 +2687,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Lunghezza pantaloni
 	</string>
 	<string name="Pants Waist">
-		Altezza slip
+		Taglia pantalone
 	</string>
 	<string name="Pants Wrinkles">
 		Pantaloni con le grinze
@@ -2705,7 +2705,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Pigmento
 	</string>
 	<string name="Pigtails">
-		Ciuffi
+		Codini
 	</string>
 	<string name="Pink">
 		Rosa
@@ -2807,16 +2807,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Meno pronunciato
 	</string>
 	<string name="Shear Back">
-		Accostamento posteriore
+		Taglio posteriore
 	</string>
 	<string name="Shear Face">
-		Distorsione viso
+		Taglio del viso
 	</string>
 	<string name="Shear Front">
-		Riempimento davanti
+		Taglio anteriore
 	</string>
 	<string name="Shear Left">
-		A sinistra
+		Taglio a sinistra
 	</string>
 	<string name="Shear Left Up">
 		Distorto a sinistra
@@ -2828,10 +2828,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Distorto a destra
 	</string>
 	<string name="Sheared Back">
-		Accostati
+		Taglio verso dietro
 	</string>
 	<string name="Sheared Front">
-		Anteriormente vuoto
+		Taglio verso davanti
 	</string>
 	<string name="Shift Left">
 		A sinistra
@@ -2867,10 +2867,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Collo corto
 	</string>
 	<string name="Short Pigtails">
-		Ciuffi laterali corti
+		Codini corti
 	</string>
 	<string name="Short Ponytail">
-		Codino Corto
+		Codino corto
 	</string>
 	<string name="Short Sideburns">
 		Basette corte
@@ -2900,13 +2900,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Basette
 	</string>
 	<string name="Sides Hair">
-		Capigliatura later.
+		Capigliatura di lato
 	</string>
 	<string name="Sides Hair Down">
-		Giù
+		Capigliatura di lato sciolta
 	</string>
 	<string name="Sides Hair Up">
-		Su
+		Capigliatura di lato raccolta
 	</string>
 	<string name="Skinny">
 		Skinny
@@ -2930,19 +2930,19 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Morbidezza maniche
 	</string>
 	<string name="Slit Back">
-		Spacco: posteriore
+		Spacco: Indietro
 	</string>
 	<string name="Slit Front">
 		Spacco: anteriore
 	</string>
 	<string name="Slit Left">
-		Spacco: sinistro
+		Spacco: Sinistra
 	</string>
 	<string name="Slit Right">
-		Spacco: destro
+		Spacco: Destra
 	</string>
 	<string name="Small">
-		Piccolo
+		Piccola
 	</string>
 	<string name="Small Hands">
 		Mani piccole
@@ -3032,37 +3032,37 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Punta spessa
 	</string>
 	<string name="Thickness">
-		Thickness
+		Spessore
 	</string>
 	<string name="Thin">
-		Ossute
+		Sottili
 	</string>
 	<string name="Thin Eyebrows">
-		Sopracciglia fini
+		Sopracciglia sottili
 	</string>
 	<string name="Thin Lips">
-		Labbra fini
+		Labbra sottili
 	</string>
 	<string name="Thin Nose">
-		Naso fino
+		Naso sottile
 	</string>
 	<string name="Tight Chin">
-		Mento magro
+		Mento stretto
 	</string>
 	<string name="Tight Cuffs">
 		Fondo stretto
 	</string>
 	<string name="Tight Pants">
-		Attillati
+		Pantaloni attillati
 	</string>
 	<string name="Tight Shirt">
-		Attilata
+		Camicia attillata
 	</string>
 	<string name="Tight Skirt">
-		Attillata
+		Gonna attillata
 	</string>
 	<string name="Tight Sleeves">
-		Attillate
+		Maniche strette
 	</string>
 	<string name="Tilt Left">
 		Tilt Left
@@ -3089,7 +3089,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Distaccato
 	</string>
 	<string name="Uncreased">
-		Abbassato
+		Senza piega
 	</string>
 	<string name="Underbite">
 		Denti inf. in fuori
@@ -3104,13 +3104,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Parte alta degli zigomi
 	</string>
 	<string name="Upper Chin Cleft">
-		Fessura sup. del mento
+		Fossetta sup. del mento
 	</string>
 	<string name="Upper Eyelid Fold">
 		Piega palpebra sup.
 	</string>
 	<string name="Upturned">
-		Naso all&apos;insù
+		All&apos;insù
 	</string>
 	<string name="Very Red">
 		Molto rossi
@@ -3125,13 +3125,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Capelli bianchi
 	</string>
 	<string name="Wide">
-		Spalancati
+		Largo
 	</string>
 	<string name="Wide Back">
-		Laterali post. larghi
+		Dietro largo
 	</string>
 	<string name="Wide Front">
-		Laterali ant. larghi
+		Davanti largo
 	</string>
 	<string name="Wide Lips">
 		Labbra larghe
@@ -3143,31 +3143,31 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Grinze
 	</string>
 	<string name="LocationCtrlAddLandmarkTooltip">
-		Aggiungi ai miei landmark
+		Aggiungi ai miei punti di riferimento
 	</string>
 	<string name="LocationCtrlEditLandmarkTooltip">
-		Modifica i miei landmark
+		Modifica i miei punti di riferimento
 	</string>
 	<string name="LocationCtrlInfoBtnTooltip">
-		maggiori informazioni sulla posizione attuale
+		Maggiori informazioni sulla posizione attuale
 	</string>
 	<string name="LocationCtrlComboBtnTooltip">
-		Lo storico delle mie posizioni
+		La cronologia delle mie posizioni
 	</string>
 	<string name="UpdaterWindowTitle">
 		Aggiornamento [APP_NAME]
 	</string>
 	<string name="UpdaterNowUpdating">
-		[APP_NAME] In aggiornamento...
+		Aggiornamento di [APP_NAME]...
 	</string>
 	<string name="UpdaterNowInstalling">
-		[APP_NAME] In installazione...
+		Installazione di [APP_NAME]...
 	</string>
 	<string name="UpdaterUpdatingDescriptive">
-		Il Viewer del programma [APP_NAME] si sta aggiornando all&apos;ultima versione. Potrebbe volerci del tempo, attendi.
+		Il Viewer del programma [APP_NAME] si sta aggiornando all&apos;ultima versione.  Potrebbe volerci del tempo, attendi.
 	</string>
 	<string name="UpdaterProgressBarTextWithEllipses">
-		Aggiornamento in download...
+		Download dell&apos;aggiornamento...
 	</string>
 	<string name="UpdaterProgressBarText">
 		Download dell&apos;aggiornamento
@@ -3176,13 +3176,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		Download dell&apos;aggiornamento non riuscito
 	</string>
 	<string name="UpdaterFailUpdateDescriptive">
-		Il programma [APP_NAME] ha riscontrato un&apos;errore nel tentativo di aggiornamento. Consigliamo di scaricare l&apos;ultima versione direttamente da www.secondlife.com.
+		Il programma [APP_NAME] ha riscontrato un&apos;errore durante il tentativo di aggiornamento. Consigliamo di scaricare l&apos;ultima versione direttamente da www.secondlife.com.
 	</string>
 	<string name="UpdaterFailInstallTitle">
-		Tentativo di installazione aggiornamento non riuscito
+		Installazione dell&apos;aggiornamento non riuscita
 	</string>
 	<string name="UpdaterFailStartTitle">
-		Errore nell&apos;apertura del viewer
+		Errore nell&apos;avvio del viewer
 	</string>
 	<string name="IM_logging_string">
 		-- Registrazione messaggi instantanei abilitata --
@@ -3194,7 +3194,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		(anonimo)
 	</string>
 	<string name="IM_moderated_chat_label">
-		(Moderato: Voice spento di default)
+		(Moderato: Voci disattivate di default)
 	</string>
 	<string name="IM_unavailable_text_label">
 		La chat di testo non è disponibile per questa chiamata.
@@ -3203,7 +3203,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
 		La chat di testo è stata disabilitata da un moderatore di gruppo.
 	</string>
 	<string name="IM_default_text_label">
-		Clicca qua per inviare un messaggio instantaneo.
+		Clicca qui per inviare un messaggio instantaneo.
 	</string>
 	<string name="IM_to_label">
 		A
diff --git a/indra/test_apps/llplugintest/bookmarks.txt b/indra/test_apps/llplugintest/bookmarks.txt
index b8b83df38667abe008b2afaa9b0160c09c24b739..2ff64f217f57aa331aee5b21c465c50b30e73d34 100644
--- a/indra/test_apps/llplugintest/bookmarks.txt
+++ b/indra/test_apps/llplugintest/bookmarks.txt
@@ -18,20 +18,20 @@
 (Flash) Scribd,http://www.scribd.com/doc/14427744/Second-Life-Quickstart-Guide
 (Flash) MAME,http://yvern.com/fMAME/fMAME.html
 (QT) Local sample,file:///C|/Program Files/QuickTime/Sample.mov
-(QT) Movie - Watchmen Trailer,http://movies.apple.com/movies/wb/watchmen/watchmen-tlr2_480p.mov
-(QT) Movie - Transformers - Revenge of the Fallen,http://movies.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr1_h.320.mov
-(QT) Movie - Terminator Salvation,http://movies.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h.320.mov
-(QT) Movie - Angels and Demons,http://movies.apple.com/movies/sony_pictures/angelsanddemons/angelsanddemons-video_h.320.mov
-(QT) Movie - Sin City Trailer,http://movies.apple.com/movies/miramax/sin_city/sin_city_480.mov
-(QT) Movie - The Incredibles Trailer,http://movies.apple.com/movies/disney/the_incredibles/the_incredibles-tlr_a480.mov
+(QT) Movie - Watchmen Trailer,http://trailers.apple.com/movies/wb/watchmen/watchmen-tlr2_480p.mov
+(QT) Movie - Transformers - Revenge of the Fallen,http://trailers.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr1_h.320.mov
+(QT) Movie - Terminator Salvation,http://trailers.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h.320.mov
+(QT) Movie - Angels and Demons,http://trailers.apple.com/movies/sony_pictures/angelsanddemons/angelsanddemons-video_h.320.mov
+(QT) Movie - Sin City Trailer,http://trailers.apple.com/movies/miramax/sin_city/sin_city_480.mov
+(QT) Movie - The Incredibles Trailer,http://trailers.apple.com/movies/disney/the_incredibles/the_incredibles-tlr_a480.mov
 (QT) Movie - Streaming Apple Event,http://stream.qtv.apple.com/events/mar/0903lajkszg/m_090374535329zdwg_650_ref.mov
 (QT) Movie - MPEG-4 from Amazon S3,http://s3.amazonaws.com/callum-linden/flashdemo/interactive_flash_demo.mp4
-(QT) Movie - Star Trek,http://movies.apple.com/movies/paramount/star_trek/startrek-tlr3_h.320.mov
-(QT) Movie - Ice Age 3,http://movies.apple.com/movies/fox/ice_age_iii/iceage3-tlrd_h.320.mov
-(QT) Movie - AstroBoy,http://movies.apple.com/movies/summit/astroboy/astroboy-tsr_h.320.mov
-(QT) Movie - Ante Up,http://movies.apple.com/movies/independent/anteup/anteup_h.320.mov
-(QT) Movie - Every Little Step,http://movies.apple.com/movies/sony/everylittlestep/everylittlestep-clip_h.320.mov
-(QT) Movie - The Informers,http://movies.apple.com/movies/independent/theinformers/theinformers_h.320.mov
+(QT) Movie - Star Trek,http://trailers.apple.com/movies/paramount/star_trek/startrek-tlr3_h.320.mov
+(QT) Movie - Ice Age 3,http://trailers.apple.com/movies/fox/ice_age_iii/iceage3-tlrd_h.320.mov
+(QT) Movie - AstroBoy,http://trailers.apple.com/movies/summit/astroboy/astroboy-tsr_h.320.mov
+(QT) Movie - Ante Up,http://trailers.apple.com/movies/independent/anteup/anteup_h.320.mov
+(QT) Movie - Every Little Step,http://trailers.apple.com/movies/sony/everylittlestep/everylittlestep-clip_h.320.mov
+(QT) Movie - The Informers,http://trailers.apple.com/movies/independent/theinformers/theinformers_h.320.mov
 (QT) Animated GIF,http://upload.wikimedia.org/wikipedia/commons/4/44/Optical.greysquares.arp-animated.gif
 (QT) Apple Text Descriptors,http://ubrowser.com/tmp/apple_text.txt
 (EX) Example Plugin,example://blah
diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp
index e5a846f15a110e882d31aa0465225fc4939de3c7..5677308fb0bf2b135fe50f18e235f1e2f12414cf 100644
--- a/indra/test_apps/llplugintest/llmediaplugintest.cpp
+++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp
@@ -1593,8 +1593,8 @@ void LLMediaPluginTest::addMediaPanel( std::string url )
 	}
 	std::string user_data_path = std::string( cwd ) + "/";
 #endif
-
-	media_source->init( launcher_name, plugin_name, false, user_data_path );
+	media_source->setUserDataPath(user_data_path);
+	media_source->init( launcher_name, plugin_name, false );
 	media_source->setDisableTimeout(mDisableTimeout);
 
 	// make a new panel and save parameters
@@ -1831,7 +1831,8 @@ void LLMediaPluginTest::replaceMediaPanel( mediaPanel* panel, std::string url )
 	std::string user_data_path = std::string( cwd ) + "/";
 #endif
 
-	media_source->init( launcher_name, plugin_name, false, user_data_path );
+	media_source->setUserDataPath(user_data_path);
+	media_source->init( launcher_name, plugin_name, false );
 	media_source->setDisableTimeout(mDisableTimeout);
 
 	// make a new panel and save parameters