diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 3ab4257fabe90f4e5d0dd31aead6095d308c3197..fc9fcb2d9ecb49455d30436133da24a58101b4b1 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -35,7 +35,7 @@
 
 const S32 LL_VERSION_MAJOR = 2;
 const S32 LL_VERSION_MINOR = 0;
-const S32 LL_VERSION_PATCH = 0;
+const S32 LL_VERSION_PATCH = 1;
 const S32 LL_VERSION_BUILD = 203110;
 
 const char * const LL_CHANNEL = "Second Life Developer";
diff --git a/indra/llmessage/llassetstorage.cpp b/indra/llmessage/llassetstorage.cpp
index 20d71c6903f0bb271e74cafb7d4a9b51041aec77..bf0ed971436eea1a9b83f61d639989bb2e23fda4 100644
--- a/indra/llmessage/llassetstorage.cpp
+++ b/indra/llmessage/llassetstorage.cpp
@@ -408,8 +408,8 @@ bool LLAssetStorage::findInStaticVFSAndInvokeCallback(const LLUUID& uuid, LLAsse
 	if (exists)
 	{
 		LLVFile file(mStaticVFS, uuid, type);
-		U32 size = exists ? file.getSize() : 0;
-		if (size>0)
+		U32 size = file.getSize();
+		if (size > 0)
 		{
 			// we've already got the file
 			if (callback)
diff --git a/indra/media_plugins/webkit/windows_volume_catcher.cpp b/indra/media_plugins/webkit/windows_volume_catcher.cpp
index 1c1ef0b42f10a8ef5c542b992ee1573526160fa9..8debe8fac685c16ee394cc124fe1a9f94cd9f59c 100644
--- a/indra/media_plugins/webkit/windows_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/windows_volume_catcher.cpp
@@ -232,14 +232,22 @@ VolumeCatcherImpl::VolumeCatcherImpl()
 :	mVolume(1.0f),	// default volume is max
 	mPan(0.f)		// default pan is centered
 {
-	// for each reported mixer "device", create a proxy object and add to list
-	U32 num_mixers = mixerGetNumDevs();
-	for (U32 mixer_index = 0; mixer_index < num_mixers; ++mixer_index)
+	OSVERSIONINFOEX	V = {sizeof(OSVERSIONINFOEX)};	//EX for NT 5.0 and later
+
+	::GetVersionEx((POSVERSIONINFO)&V);
+
+	// disable volume on XP and below
+	if (V.dwPlatformId == VER_PLATFORM_WIN32_NT && V.dwMajorVersion >= 6)
 	{
-		Mixer* mixerp = Mixer::create(mixer_index);
-		if (mixerp)
+		// for each reported mixer "device", create a proxy object and add to list
+		U32 num_mixers = mixerGetNumDevs();
+		for (U32 mixer_index = 0; mixer_index < num_mixers; ++mixer_index)
 		{
-			mMixers.push_back(mixerp);
+			Mixer* mixerp = Mixer::create(mixer_index);
+			if (mixerp)
+			{
+				mMixers.push_back(mixerp);
+			}
 		}
 	}
 }
@@ -279,6 +287,7 @@ void VolumeCatcherImpl::setVolume(F32 volume)
 		}
 
 	}
+
 	mVolume = volume;
 }
 
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 41588994464b398cde7bf0c80b75364b0588b550..efb16d1e4217ea2c635d47e8c68d77580c6a9468 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -303,6 +303,7 @@ set(viewer_SOURCE_FILES
     llpanelcontents.cpp
     llpaneleditwearable.cpp
     llpanelface.cpp
+    llpanelgenerictip.cpp
     llpanelgroup.cpp
     llpanelgroupgeneral.cpp
     llpanelgroupinvite.cpp
@@ -342,6 +343,7 @@ set(viewer_SOURCE_FILES
     llpanelprofile.cpp
     llpanelprofileview.cpp
     llpanelteleporthistory.cpp
+    llpaneltiptoast.cpp
     llpanelvolume.cpp
     llpanelvolumepulldown.cpp
     llparcelselection.cpp
@@ -437,7 +439,6 @@ set(viewer_SOURCE_FILES
     lltracker.cpp
     lltransientdockablefloater.cpp
     lltransientfloatermgr.cpp
-    llpanelgenerictip.cpp
     lluilistener.cpp
     lluploaddialog.cpp
     llurl.cpp
@@ -802,6 +803,7 @@ set(viewer_HEADER_FILES
     llpanelcontents.h
     llpaneleditwearable.h
     llpanelface.h
+    llpanelgenerictip.h
     llpanelgroup.h
     llpanelgroupgeneral.h
     llpanelgroupinvite.h
@@ -841,6 +843,7 @@ set(viewer_HEADER_FILES
     llpanelprofile.h
     llpanelprofileview.h
     llpanelteleporthistory.h
+    llpaneltiptoast.h
     llpanelvolume.h
     llpanelvolumepulldown.h
     llparcelselection.h
@@ -939,7 +942,6 @@ set(viewer_HEADER_FILES
     lltracker.h
     lltransientdockablefloater.h
     lltransientfloatermgr.h
-    llpanelgenerictip.h
     lluiconstants.h
     lluilistener.h
     lluploaddialog.h
diff --git a/indra/newview/llavatarpropertiesprocessor.cpp b/indra/newview/llavatarpropertiesprocessor.cpp
index 33e5046f5062b5fa90a99dc510a9ae2f226d9a96..c7e788f345a69084942addcb0414bcfb3c51e20c 100644
--- a/indra/newview/llavatarpropertiesprocessor.cpp
+++ b/indra/newview/llavatarpropertiesprocessor.cpp
@@ -37,6 +37,7 @@
 // Viewer includes
 #include "llagent.h"
 #include "llagentpicksinfo.h"
+#include "lldateutil.h"
 #include "llviewergenericmessage.h"
 
 // Linden library includes
@@ -246,6 +247,7 @@ std::string LLAvatarPropertiesProcessor::paymentInfo(const LLAvatarData* avatar_
 void LLAvatarPropertiesProcessor::processAvatarPropertiesReply(LLMessageSystem* msg, void**)
 {
 	LLAvatarData avatar_data;
+	std::string birth_date;
 
 	msg->getUUIDFast(	_PREHASH_AgentData,			_PREHASH_AgentID, 		avatar_data.agent_id);
 	msg->getUUIDFast(	_PREHASH_AgentData,			_PREHASH_AvatarID, 		avatar_data.avatar_id);
@@ -254,11 +256,12 @@ void LLAvatarPropertiesProcessor::processAvatarPropertiesReply(LLMessageSystem*
 	msg->getUUIDFast(	_PREHASH_PropertiesData,	_PREHASH_PartnerID,		avatar_data.partner_id);
 	msg->getStringFast(	_PREHASH_PropertiesData,	_PREHASH_AboutText,		avatar_data.about_text);
 	msg->getStringFast(	_PREHASH_PropertiesData,	_PREHASH_FLAboutText,	avatar_data.fl_about_text);
-	msg->getStringFast(	_PREHASH_PropertiesData,	_PREHASH_BornOn,		avatar_data.born_on);
+	msg->getStringFast(	_PREHASH_PropertiesData,	_PREHASH_BornOn,		birth_date);
 	msg->getString(		_PREHASH_PropertiesData,	_PREHASH_ProfileURL,	avatar_data.profile_url);
 	msg->getU32Fast(	_PREHASH_PropertiesData,	_PREHASH_Flags,			avatar_data.flags);
 
 
+	LLDateUtil::dateFromPDTString(avatar_data.born_on, birth_date);
 	avatar_data.caption_index = 0;
 
 	S32 charter_member_size = 0;
diff --git a/indra/newview/llavatarpropertiesprocessor.h b/indra/newview/llavatarpropertiesprocessor.h
index 716c1b8065869026c2026d7b54c296df45193b2d..b9e8bfd0ab7b7a975ccbbf91ed87ea2559371770 100644
--- a/indra/newview/llavatarpropertiesprocessor.h
+++ b/indra/newview/llavatarpropertiesprocessor.h
@@ -67,7 +67,7 @@ struct LLAvatarData
 	LLUUID		partner_id;
 	std::string	about_text;
 	std::string	fl_about_text;
-	std::string	born_on;
+	LLDate		born_on;
 	std::string	profile_url;
 	U8			caption_index;
 	std::string	caption_text;
diff --git a/indra/newview/lldateutil.cpp b/indra/newview/lldateutil.cpp
index abb2fdeb9a0a2f9e94c22f71a32cfb0ddda32e7b..3e71ecdfba84042b23e57d52994da101ad0cbe58 100644
--- a/indra/newview/lldateutil.cpp
+++ b/indra/newview/lldateutil.cpp
@@ -59,19 +59,22 @@ static S32 days_from_month(S32 year, S32 month)
 	}
 }
 
-std::string LLDateUtil::ageFromDate(const std::string& date_string,
-									const LLDate& now)
+bool LLDateUtil::dateFromPDTString(LLDate& date, const std::string& str)
+{
+	S32 month, day, year;
+	S32 matched = sscanf(str.c_str(), "%d/%d/%d", &month, &day, &year);
+	if (matched != 3) return false;
+	date.fromYMDHMS(year, month, day);
+	F64 secs_since_epoch = date.secondsSinceEpoch();
+	// Correct for the fact that specified date is in Pacific time, == UTC - 8
+	secs_since_epoch += 8.0 * 60.0 * 60.0;
+	date.secondsSinceEpoch(secs_since_epoch);
+	return true;
+}
+
+std::string LLDateUtil::ageFromDate(const LLDate& born_date, const LLDate& now)
 {
 	S32 born_month, born_day, born_year;
-	S32 matched = sscanf(date_string.c_str(), "%d/%d/%d", &born_month, &born_day, &born_year);
-	if (matched != 3) return "???";
-	LLDate born_date;
-	born_date.fromYMDHMS(born_year, born_month, born_day);
-	F64 born_date_secs_since_epoch = born_date.secondsSinceEpoch();
-	// Correct for the fact that account creation dates are in Pacific time,
-	// == UTC - 8
-	born_date_secs_since_epoch += 8.0 * 60.0 * 60.0;
-	born_date.secondsSinceEpoch(born_date_secs_since_epoch);
 	// explode out to month/day/year again
 	born_date.split(&born_year, &born_month, &born_day);
 
@@ -155,6 +158,16 @@ std::string LLDateUtil::ageFromDate(const std::string& date_string,
 	return LLTrans::getString("TodayOld");
 }
 
+std::string LLDateUtil::ageFromDate(const std::string& date_string, const LLDate& now)
+{
+	LLDate born_date;
+
+	if (!dateFromPDTString(born_date, date_string))
+		return "???";
+
+	return ageFromDate(born_date, now);
+}
+
 std::string LLDateUtil::ageFromDate(const std::string& date_string)
 {
 	return ageFromDate(date_string, LLDate::now());
diff --git a/indra/newview/lldateutil.h b/indra/newview/lldateutil.h
index 041be07f12069cc969443f2233e28369ae6fb857..a0df21022efbc923a495a980bf3ebaf453d60176 100644
--- a/indra/newview/lldateutil.h
+++ b/indra/newview/lldateutil.h
@@ -36,6 +36,29 @@ class LLDate;
 
 namespace LLDateUtil
 {
+	/**
+	 * Convert a date provided by the server into seconds since the Epoch.
+	 * 
+	 * @param[out] date Number of seconds since 01/01/1970 UTC.
+	 * @param[in]  str  Date string (MM/DD/YYYY) in PDT time zone.
+	 * 
+	 * @return true on success, false on parse error
+	 */
+	bool dateFromPDTString(LLDate& date, const std::string& str);
+
+	/**
+	 * Get human-readable avatar age.
+	 * 
+	 * Used for avatar inspectors and profiles.
+	 * 
+	 * @param born_date Date an avatar was born on.
+	 * @param now       Current date.
+	 * 
+	 * @return human-readable localized string like "1 year, 2 months",
+	 *         or "???" on error.
+	 */
+	std::string ageFromDate(const LLDate& born_date, const LLDate& now);
+
 	// Convert a date provided by the server (MM/DD/YYYY) into a localized,
 	// human-readable age (1 year, 2 months) using translation strings.
 	// Pass LLDate::now() for now.
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index 698ccec9c184210b54d3b36c162d4b26dda1bdf2..679ab4c713da5c35e7554ba465324901f3a0e4ca 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -46,6 +46,7 @@
 
 #include "llagent.h"
 #include "llcombobox.h"
+#include "llmimetypes.h"
 #include "llnotifications.h"
 #include "llnotificationsutil.h"
 #include "llsavedsettingsglue.h"
@@ -351,7 +352,7 @@ void LLFloaterAuction::doResetParcel()
 		body["music_url"] = empty;
 		body["media_url"] = empty;
 		body["media_desc"] = empty;
-		body["media_type"] = std::string("none/none");
+		body["media_type"] = LLMIMETypes::getDefaultMimeType();
 		body["media_width"] = (S32) 0;
 		body["media_height"] = (S32) 0;
 		body["auto_scale"] = (S32) 0;
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index a6a8194685c85efd15cbcff3ff90767a13ca8c03..e994a18d9b1e7be1a158c838d85326b347e4e1e5 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -988,7 +988,7 @@ void profile_pic_upload_callback(const LLUUID& uuid)
 void LLSnapshotLivePreview::confirmSavingTexture(bool set_as_profile_pic)
 {
 	LLSD args;
-	args["AMOUNT"] = "10"; // *TODO: there's currently no way to avoid hardcoding the upload price
+	args["AMOUNT"] = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload();
 	LLNotificationsUtil::add("UploadConfirmation", args, LLSD(),
 			boost::bind(&LLSnapshotLivePreview::onSavingTextureConfirmed, this, _1, _2, set_as_profile_pic));
 }
diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index 3db9587797d590b08bb23dbaa88111b9a005b0b1..104827f4a3dd5061299acf9a69b8abbecb4bd6e1 100644
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
@@ -144,9 +144,6 @@ BOOL LLFloaterTOS::postBuild()
 		// Don't use the start_url parameter for this browser instance -- it may finish loading before we get to add our observer.
 		// Store the URL separately and navigate here instead.
 		web_browser->navigateTo( getString( "loading_url" ) );
-		
-		gResponsePtr = LLIamHere::build( this );
-		LLHTTPClient::get( getString( "real_url" ), gResponsePtr );
 	}
 
 	return TRUE;
@@ -163,10 +160,19 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )
 		if ( alive )
 		{
 			// navigate to the "real" page 
-			loadIfNeeded();
+			if(!mRealNavigateBegun && mSiteAlive)
+			{
+				LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html");
+				if(web_browser)
+				{
+					mRealNavigateBegun = true;
+					web_browser->navigateTo( getString( "real_url" ) );
+				}
+			}
 		}
 		else
 		{
+			LL_INFOS("TOS") << "ToS page: ToS page unavailable!" << LL_ENDL;
 			// normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads)
 			// but if the page is unavailable, we need to do this now
 			LLCheckBoxCtrl* tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
@@ -175,22 +181,8 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )
 	}
 }
 
-void LLFloaterTOS::loadIfNeeded()
-{
-	if(!mRealNavigateBegun && mSiteAlive)
-	{
-		LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html");
-		if(web_browser)
-		{
-			mRealNavigateBegun = true;
-			web_browser->navigateTo( getString( "real_url" ) );
-		}
-	}
-}
-
 LLFloaterTOS::~LLFloaterTOS()
 {
-
 	// tell the responder we're not here anymore
 	if ( gResponsePtr )
 		gResponsePtr->setParent( 0 );
@@ -215,7 +207,7 @@ void LLFloaterTOS::updateAgree(LLUICtrl*, void* userdata )
 void LLFloaterTOS::onContinue( void* userdata )
 {
 	LLFloaterTOS* self = (LLFloaterTOS*) userdata;
-	llinfos << "User agrees with TOS." << llendl;
+	LL_INFOS("TOS") << "User agrees with TOS." << LL_ENDL;
 
 	if(self->mReplyPumpName != "")
 	{
@@ -229,7 +221,7 @@ void LLFloaterTOS::onContinue( void* userdata )
 void LLFloaterTOS::onCancel( void* userdata )
 {
 	LLFloaterTOS* self = (LLFloaterTOS*) userdata;
-	llinfos << "User disagrees with TOS." << llendl;
+	LL_INFOS("TOS") << "User disagrees with TOS." << LL_ENDL;
 	LLNotificationsUtil::add("MustAgreeToLogIn", LLSD(), LLSD(), login_alert_done);
 
 	if(self->mReplyPumpName != "")
@@ -254,11 +246,13 @@ void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev
 		if(!mLoadingScreenLoaded)
 		{
 			mLoadingScreenLoaded = true;
-			loadIfNeeded();
+
+			gResponsePtr = LLIamHere::build( this );
+			LLHTTPClient::get( getString( "real_url" ), gResponsePtr );
 		}
 		else if(mRealNavigateBegun)
 		{
-			llinfos << "NAVIGATE COMPLETE" << llendl;
+			LL_INFOS("TOS") << "TOS: NAVIGATE COMPLETE" << LL_ENDL;
 			// enable Agree to TOS radio button now that page has loaded
 			LLCheckBoxCtrl * tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
 			tos_agreement->setEnabled( true );
diff --git a/indra/newview/llfloatertos.h b/indra/newview/llfloatertos.h
index 6ea56408eeaf1b0e39936a53e8587ebcd881b6cf..d985ccbab0c7dbfad745532b0408c4a9556fe45b 100644
--- a/indra/newview/llfloatertos.h
+++ b/indra/newview/llfloatertos.h
@@ -67,8 +67,6 @@ class LLFloaterTOS :
 
 private:
 
-	void			loadIfNeeded();
-	
 	std::string		mMessage;
 	int				mWebBrowserWindowId;
 	bool			mLoadingScreenLoaded;
diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp
index 91d0f0e370057086d8c9c350194be3a903b9f604..002d417e4c09a847a820a8d1a20b0fec19b9ae1a 100644
--- a/indra/newview/llfloaterurlentry.cpp
+++ b/indra/newview/llfloaterurlentry.cpp
@@ -40,6 +40,7 @@
 #include "llpanelface.h"
 
 #include "llcombobox.h"
+#include "llmimetypes.h"
 #include "llnotificationsutil.h"
 #include "llurlhistory.h"
 #include "lluictrlfactory.h"
@@ -71,14 +72,14 @@ class LLMediaTypeResponder : public LLHTTPClient::Responder
 
 	  virtual void error( U32 status, const std::string& reason )
 	  {
-		  completeAny(status, "none/none");
+		  completeAny(status, LLMIMETypes::getDefaultMimeType());
 	  }
 
 	  void completeAny(U32 status, const std::string& mime_type)
 	  {
 		  // Set empty type to none/none.  Empty string is reserved for legacy parcels
 		  // which have no mime type set.
-		  std::string resolved_mime_type = ! mime_type.empty() ? mime_type : "none/none";
+		  std::string resolved_mime_type = ! mime_type.empty() ? mime_type : LLMIMETypes::getDefaultMimeType();
 		  LLFloaterURLEntry* floater_url_entry = (LLFloaterURLEntry*)mParent.get();
 		  if ( floater_url_entry )
 			  floater_url_entry->headerFetchComplete( status, resolved_mime_type );
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 94ea236757281f92285425b032e5e53c0c44b82b..e48bb77bda0c9ffcc5152df94c4a93d148991943 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -58,6 +58,7 @@
 #include "llfloaterreg.h"
 #include "llmenubutton.h"
 #include "lltooltip.h"	// positionViewNearMouse()
+#include "lltrans.h"
 #include "lluictrl.h"
 
 #include "llavatariconctrl.h"
@@ -380,7 +381,11 @@ void LLInspectAvatar::requestUpdate()
 void LLInspectAvatar::processAvatarData(LLAvatarData* data)
 {
 	LLStringUtil::format_map_t args;
-	args["[BORN_ON]"] = data->born_on;
+	{
+		std::string birth_date = LLTrans::getString("AvatarBirthDateFormat");
+		LLStringUtil::format(birth_date, LLSD().with("datetime", (S32) data->born_on.secondsSinceEpoch()));
+		args["[BORN_ON]"] = birth_date;
+	}
 	args["[AGE]"] = LLDateUtil::ageFromDate(data->born_on, LLDate::now());
 	args["[SL_PROFILE]"] = data->about_text;
 	args["[RW_PROFILE"] = data->fl_about_text;
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index 544a8158962534e263519793baa0fbc697591f22..29d99d328a85c3369c39a98eada4fce3afb191ee 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -148,6 +148,7 @@ void LLInventoryCompletionObserver::watchItem(const LLUUID& id)
 
 LLInventoryFetchItemsObserver::LLInventoryFetchItemsObserver(const LLUUID& item_id) :
 	LLInventoryFetchObserver(item_id),
+
 	mNumTries(MAX_NUM_NOTIFICATIONS_TO_PROCESS)
 {
 	mIDs.clear();
@@ -155,7 +156,9 @@ LLInventoryFetchItemsObserver::LLInventoryFetchItemsObserver(const LLUUID& item_
 }
 
 LLInventoryFetchItemsObserver::LLInventoryFetchItemsObserver(const uuid_vec_t& item_ids) :
-	LLInventoryFetchObserver(item_ids)
+	LLInventoryFetchObserver(item_ids),
+
+	mNumTries(MAX_NUM_NOTIFICATIONS_TO_PROCESS)
 {
 }
 
diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h
index c48ffaa55d18a5334a7365bddc7e742e688862c9..8d60df7e8d0775524520daed7dda0e66d081c144 100644
--- a/indra/newview/llinventoryobserver.h
+++ b/indra/newview/llinventoryobserver.h
@@ -148,7 +148,6 @@ class LLInventoryFetchComboObserver : public LLInventoryObserver
 
 	virtual void done() = 0;
 protected:
-	BOOL mDone;
 	LLInventoryFetchItemsObserver *mFetchItems;
 	LLInventoryFetchDescendentsObserver *mFetchDescendents;
 };
diff --git a/indra/newview/llmimetypes.cpp b/indra/newview/llmimetypes.cpp
index 235487cf46f30f3b274313f0bce281651cc10c2e..7bddc0d84c5698133e86ee06e59a3581b56bd2fe 100644
--- a/indra/newview/llmimetypes.cpp
+++ b/indra/newview/llmimetypes.cpp
@@ -34,6 +34,7 @@
 #include "llviewerprecompiledheaders.h"
 
 #include "llmimetypes.h"
+#include "lltrans.h"
 #include "llxmlnode.h"
 
 #include "lluictrlfactory.h"
@@ -49,6 +50,7 @@ std::string sDefaultImpl;
 	// Returned when we don't know what impl to use
 std::string sXMLFilename; 
     // Squirrel away XML filename so we know how to reset
+std::string DEFAULT_MIME_TYPE = "none/none";
 
 /////////////////////////////////////////////////////////////////////////////
 
@@ -212,7 +214,7 @@ std::string LLMIMETypes::findIcon(const std::string& mime_type)
 // static
 std::string LLMIMETypes::findDefaultMimeType(const std::string& widget_type)
 {
-	std::string mime_type = "none/none";
+	std::string mime_type = getDefaultMimeType();
 	mime_widget_set_map_t::iterator it = sWidgetMap.find(widget_type);
 	if(it != sWidgetMap.end())
 	{
@@ -221,6 +223,18 @@ std::string LLMIMETypes::findDefaultMimeType(const std::string& widget_type)
 	return mime_type;
 }
 
+// static
+const std::string& LLMIMETypes::getDefaultMimeType()
+{
+	return DEFAULT_MIME_TYPE;
+}
+
+const std::string& LLMIMETypes::getDefaultMimeTypeTranslation()
+{
+	static std::string mime_type = LLTrans::getString("DefaultMimeType");
+	return mime_type;
+}
+
 // static
 std::string LLMIMETypes::findToolTip(const std::string& mime_type)
 {
diff --git a/indra/newview/llmimetypes.h b/indra/newview/llmimetypes.h
index b217ce7a817a52164240ccade77ad0d606c38e92..3461769ff330ea5a5a5dd57e8d5768f973206ad1 100644
--- a/indra/newview/llmimetypes.h
+++ b/indra/newview/llmimetypes.h
@@ -66,6 +66,10 @@ class LLMIMETypes
 	static std::string findDefaultMimeType(const std::string& widget_type);
 		// Canonical mime type associated with this widget set
 
+	static const std::string& getDefaultMimeType();
+
+	static const std::string& getDefaultMimeTypeTranslation();
+
 	static bool findAllowResize(const std::string& mime_type);
 		// accessor for flag to enable/disable media size edit fields
 
diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp
index 407de79c89441c94d12d0c417d57afd0d4aa8280..e528f871aff748cb457e57c3554091c0ff0d709b 100644
--- a/indra/newview/llnotificationtiphandler.cpp
+++ b/indra/newview/llnotificationtiphandler.cpp
@@ -41,10 +41,11 @@
 #include "llviewercontrol.h"
 #include "llviewerwindow.h"
 #include "llnotificationmanager.h"
+#include "llpaneltiptoast.h"
 
 using namespace LLNotificationsUI;
 
-class LLOnlineStatusToast : public LLToastPanel
+class LLOnlineStatusToast : public LLPanelTipToast
 {
 public:
 
@@ -57,7 +58,7 @@ class LLOnlineStatusToast : public LLToastPanel
 		Params() {}
 	};
 
-	LLOnlineStatusToast(Params& p) : LLToastPanel(p.notification)
+	LLOnlineStatusToast(Params& p) : LLPanelTipToast(p.notification)
 	{
 		LLUICtrlFactory::getInstance()->buildPanel(this, "panel_online_status_toast.xml");
 
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index a0ba2f739b07a28e8fa8f9cec4ecd104331afb64..dd632ccefe33bebf47f083c04c5ae7a53e4179f8 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -51,6 +51,7 @@
 #include "llnotificationsutil.h"
 #include "llvoiceclient.h"
 #include "llnamebox.h"
+#include "lltrans.h"
 
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 // Class LLDropTarget
@@ -645,7 +646,11 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
 	LLAvatarIconIDCache::getInstance()->remove(avatar_data->avatar_id);
 
 	LLStringUtil::format_map_t args;
-	args["[REG_DATE]"] = avatar_data->born_on;
+	{
+		std::string birth_date = LLTrans::getString("AvatarBirthDateFormat");
+		LLStringUtil::format(birth_date, LLSD().with("datetime", (S32) avatar_data->born_on.secondsSinceEpoch()));
+		args["[REG_DATE]"] = birth_date;
+	}
 	args["[AGE]"] = LLDateUtil::ageFromDate( avatar_data->born_on, LLDate::now());
 	std::string register_date = getString("RegisterDateFormat", args);
 	childSetValue("register_date", register_date );
diff --git a/indra/newview/llpanelgenerictip.cpp b/indra/newview/llpanelgenerictip.cpp
index 2e977faf096ba6db34eb8cc5c1811ccad5049715..e0658554a4f158ac68d09d45d6f465469c5e4e90 100644
--- a/indra/newview/llpanelgenerictip.cpp
+++ b/indra/newview/llpanelgenerictip.cpp
@@ -36,15 +36,10 @@
 #include "llpanelgenerictip.h"
 #include "llnotifications.h"
 
-/**
- * Generic toast tip panel.
- * This is particular case of toast panel that decoupled from LLToastNotifyPanel.
- * From now LLToastNotifyPanel is deprecated and will be removed after all  panel
- * types are represented in separate classes.
- */
+
 LLPanelGenericTip::LLPanelGenericTip(
 		const LLNotificationPtr& notification) :
-	LLToastPanel(notification)
+		LLPanelTipToast(notification)
 {
 	LLUICtrlFactory::getInstance()->buildPanel(this, "panel_generic_tip.xml");
 
diff --git a/indra/newview/llpanelgenerictip.h b/indra/newview/llpanelgenerictip.h
index 0eb502498af96815826f42e738310c5ccf013640..defa0697275e902f5cae5ad91fe30daa4e4cee3d 100644
--- a/indra/newview/llpanelgenerictip.h
+++ b/indra/newview/llpanelgenerictip.h
@@ -34,14 +34,24 @@
 #ifndef LL_PANELGENERICTIP_H
 #define LL_PANELGENERICTIP_H
 
-#include "lltoastpanel.h"
+#include "llpaneltiptoast.h"
 
-class LLPanelGenericTip: public LLToastPanel
+/**
+ * Represents tip toast panel that contains only one child element - message text.
+ * This panel can be used for different cases of tip notifications.
+ */
+class LLPanelGenericTip: public LLPanelTipToast
 {
 	// disallow instantiation of this class
 private:
 	// grant privileges to instantiate this class to LLToastPanel
 	friend class LLToastPanel;
+	/**
+	 * Generic toast tip panel.
+	 * This is particular case of toast panel that decoupled from LLToastNotifyPanel.
+	 * From now LLToastNotifyPanel is deprecated and will be removed after all  panel
+	 * types are represented in separate classes.
+	 */
 	LLPanelGenericTip(const LLNotificationPtr& notification);
 };
 #endif /* LL_PANELGENERICTIP_H */
diff --git a/indra/newview/llpanellandmedia.cpp b/indra/newview/llpanellandmedia.cpp
index 42ad9820a818848a8ef8bac1b8f794e0e7ce5a89..e834e229cd33e44ed1a429431f293d5bba73d5b8 100644
--- a/indra/newview/llpanellandmedia.cpp
+++ b/indra/newview/llpanellandmedia.cpp
@@ -153,7 +153,7 @@ void LLPanelLandMedia::refresh()
 		std::string mime_type = parcel->getMediaType();
 		if (mime_type.empty())
 		{
-			mime_type = "none/none";
+			mime_type = LLMIMETypes::getDefaultMimeTypeTranslation();
 		}
 		setMediaType(mime_type);
 		mMediaTypeCombo->setEnabled( can_change_media );
@@ -218,7 +218,7 @@ void LLPanelLandMedia::refresh()
 
 void LLPanelLandMedia::populateMIMECombo()
 {
-	std::string default_mime_type = "none/none";
+	std::string default_mime_type = LLMIMETypes::getDefaultMimeType();
 	std::string default_label;
 	LLMIMETypes::mime_widget_set_map_t::const_iterator it;
 	for (it = LLMIMETypes::sWidgetMap.begin(); it != LLMIMETypes::sWidgetMap.end(); ++it)
@@ -235,8 +235,7 @@ void LLPanelLandMedia::populateMIMECombo()
 			mMediaTypeCombo->add(info.mLabel, mime_type);
 		}
 	}
-	// *TODO: The sort order is based on std::map key, which is
-	// ASCII-sorted and is wrong in other languages.  TRANSLATE
+
 	mMediaTypeCombo->add( default_label, default_mime_type, ADD_BOTTOM );
 }
 
@@ -248,7 +247,15 @@ void LLPanelLandMedia::setMediaType(const std::string& mime_type)
 
 	std::string media_key = LLMIMETypes::widgetType(mime_type);
 	mMediaTypeCombo->setValue(media_key);
-	childSetText("mime_type", mime_type);
+
+	std::string mime_str = mime_type;
+	if(LLMIMETypes::getDefaultMimeType() == mime_type)
+	{
+		// Instead of showing predefined "none/none" we are going to show something 
+		// localizable - "none" for example (see EXT-6542)
+		mime_str = LLMIMETypes::getDefaultMimeTypeTranslation();
+	}
+	childSetText("mime_type", mime_str);
 }
 
 void LLPanelLandMedia::setMediaURL(const std::string& media_url)
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index 79786c06d9409febd7daac5cc77e107bacbaf49c..6411cd802daa3b93f4c96bb20f3a43d2b03a163b 100644
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
@@ -1062,15 +1062,10 @@ void LLPanelNearByMedia::showBasicControls(bool playing, bool include_zoom, bool
 	mStopCtrl->setVisible(playing);
 	mPlayCtrl->setVisible(!playing);
 	mPauseCtrl->setVisible(false);
-#ifdef PER_MEDIA_VOLUME
 	mVolumeSliderCtrl->setVisible(true);
 	mMuteCtrl->setVisible(true);
 	mMuteBtn->setValue(muted);
 	mVolumeSlider->setValue(volume);
-#else
-	mVolumeSliderCtrl->setVisible(false);
-	mMuteCtrl->setVisible(false);
-#endif
 	mZoomCtrl->setVisible(include_zoom && !is_zoomed);
 	mUnzoomCtrl->setVisible(include_zoom && is_zoomed);	
 	mStopCtrl->setEnabled(true);
diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp
index 5209d507550439db38a9f65a6783518b3cf7ae5c..0648d996851e5e56a3a3fffb58e7ef8d252ce6a5 100644
--- a/indra/newview/llpanelprimmediacontrols.cpp
+++ b/indra/newview/llpanelprimmediacontrols.cpp
@@ -350,6 +350,11 @@ void LLPanelPrimMediaControls::updateShape()
 		mHomeCtrl->setEnabled(has_focus && can_navigate);
 		LLPluginClassMediaOwner::EMediaStatus result = ((media_impl != NULL) && media_impl->hasMedia()) ? media_plugin->getStatus() : LLPluginClassMediaOwner::MEDIA_NONE;
 		
+		mVolumeCtrl->setVisible(has_focus);
+		mVolumeCtrl->setEnabled(has_focus);
+		mVolumeSliderCtrl->setEnabled(has_focus && shouldVolumeSliderBeVisible());
+		mVolumeSliderCtrl->setVisible(has_focus && shouldVolumeSliderBeVisible());
+
 		if(media_plugin && media_plugin->pluginSupportsMediaTime())
 		{
 			mReloadCtrl->setEnabled(false);
@@ -462,14 +467,6 @@ void LLPanelPrimMediaControls::updateShape()
 			mSkipBackCtrl->setVisible(FALSE);
 			mSkipBackCtrl->setEnabled(FALSE);
 			
-#ifdef PER_MEDIA_VOLUME
-			// these should be pulled up above the pluginSupportsMediaTime
-			// if check once we always have PER_MEDIA_VOLUME turned on
-			mVolumeCtrl->setVisible(has_focus);
-			mVolumeCtrl->setEnabled(has_focus);
-			mVolumeSliderCtrl->setEnabled(has_focus && shouldVolumeSliderBeVisible());
-			mVolumeSliderCtrl->setVisible(has_focus && shouldVolumeSliderBeVisible());
-
 			if(media_impl->getVolume() <= 0.0)
 			{
 				mMuteBtn->setToggleState(true);
@@ -478,12 +475,6 @@ void LLPanelPrimMediaControls::updateShape()
 			{
 				mMuteBtn->setToggleState(false);
 			}
-#else
-			mVolumeCtrl->setVisible(FALSE);
-			mVolumeSliderCtrl->setVisible(FALSE);
-			mVolumeCtrl->setEnabled(FALSE);
-			mVolumeSliderCtrl->setEnabled(FALSE);
-#endif
 
 			if (mMediaPanelScroll)
 			{
diff --git a/indra/newview/llpaneltiptoast.cpp b/indra/newview/llpaneltiptoast.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..23367df41aa82b35666c387bacb78e7b540826a9
--- /dev/null
+++ b/indra/newview/llpaneltiptoast.cpp
@@ -0,0 +1,69 @@
+/**
+ * @file llpaneltiptoast.cpp
+ * @brief Represents a base class of tip toast panels.
+ *
+ * $LicenseInfo:firstyear=2010&license=viewergpl$
+ *
+ * Copyright (c) 2010, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab.  Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llpaneltiptoast.h"
+
+BOOL LLPanelTipToast::postBuild()
+{
+	mMessageText= findChild<LLUICtrl>("message");
+
+	if (mMessageText != NULL)
+	{
+		mMessageText->setMouseUpCallback(boost::bind(&LLPanelTipToast::onMessageTextClick,this));
+		setMouseUpCallback(boost::bind(&LLPanelTipToast::onPanelClick, this, _2, _3, _4));
+	}
+	else
+	{
+		llassert(!"Can't find child 'message' text box.");
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+void LLPanelTipToast::onMessageTextClick()
+{
+	// notify parent toast about need hide
+	LLSD info;
+	info["action"] = "hide_toast";
+	notifyParent(info);
+}
+
+void LLPanelTipToast::onPanelClick(S32 x, S32 y, MASK mask)
+{
+	if (!mMessageText->getRect().pointInRect(x, y))
+	{
+		onMessageTextClick();
+	}
+}
diff --git a/indra/newview/llpaneltiptoast.h b/indra/newview/llpaneltiptoast.h
new file mode 100644
index 0000000000000000000000000000000000000000..e8678aa1d32e77fe9df1c73f0ee3b96b12665c32
--- /dev/null
+++ b/indra/newview/llpaneltiptoast.h
@@ -0,0 +1,57 @@
+/**
+ * @file llpaneltiptoast.h
+ * @brief Represents a base class of tip toast panels.
+ *
+ * $LicenseInfo:firstyear=2010&license=viewergpl$
+ *
+ * Copyright (c) 2010, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab.  Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+
+#include "lltoastpanel.h"
+
+#ifndef LL_PANELTOASTTIP_H
+#define LL_PANELTOASTTIP_H
+
+/**
+ * Base class for tip toast panels.
+ *
+ * Tip toast panels are required to have text message box named as 'message'.
+ */
+class LLPanelTipToast : public LLToastPanel
+{
+	LOG_CLASS(LLPanelTipToast);
+public:
+	LLPanelTipToast(const LLNotificationPtr& notification): LLToastPanel(notification) {}
+	virtual BOOL postBuild();
+private:
+	void onMessageTextClick();
+	void onPanelClick(S32 x, S32 y, MASK mask);
+
+	LLUICtrl* mMessageText;
+};
+
+#endif /* LL_PANELTOASTTIP_H */
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 53f92f7ad1d7d887ae81b4090a8fc9647ae1e6a2..c3748ca81d07d134b18d5d222600bc47c659b6e9 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -643,6 +643,7 @@ LLContextMenu* LLParticipantList::LLParticipantListMenu::createMenu()
 	registrar.add("ParticipantList.ModerateVoice", boost::bind(&LLParticipantList::LLParticipantListMenu::moderateVoice, this, _2));
 
 	enable_registrar.add("ParticipantList.EnableItem", boost::bind(&LLParticipantList::LLParticipantListMenu::enableContextMenuItem,	this, _2));
+	enable_registrar.add("ParticipantList.EnableItem.Moderate", boost::bind(&LLParticipantList::LLParticipantListMenu::enableModerateContextMenuItem,	this, _2));
 	enable_registrar.add("ParticipantList.CheckItem",  boost::bind(&LLParticipantList::LLParticipantListMenu::checkContextMenuItem,	this, _2));
 
 	// create the context menu from the XUI
@@ -667,7 +668,7 @@ void LLParticipantList::LLParticipantListMenu::show(LLView* spawning_view, const
 
 	if (uuids.size() == 0) return;
 
-	const LLUUID speaker_id = mUUIDs.front();
+	const LLUUID& speaker_id = mUUIDs.front();
 	BOOL is_muted = isMuted(speaker_id);
 
 	if (is_muted)
@@ -801,28 +802,18 @@ void LLParticipantList::LLParticipantListMenu::moderateVoiceOtherParticipants(co
 bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD& userdata)
 {
 	std::string item = userdata.asString();
+	const LLUUID& participant_id = mUUIDs.front();
+
+	// For now non of "can_view_profile" action and menu actions listed below except "can_block"
+	// can be performed for Avaline callers.
+	bool is_participant_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(participant_id);
+	if (!is_participant_avatar && "can_block" != item) return false;
+
 	if (item == "can_mute_text" || "can_block" == item || "can_share" == item || "can_im" == item 
 		|| "can_pay" == item)
 	{
 		return mUUIDs.front() != gAgentID;
 	}
-	else if (item == "can_allow_text_chat")
-	{
-		return isGroupModerator();
-	}
-	else if ("can_moderate_voice" == item)
-	{
-		if (isGroupModerator())
-		{
-			LLPointer<LLSpeaker> speakerp = mParent.mSpeakerMgr->findSpeaker(mUUIDs.front());
-			if (speakerp.notNull())
-			{
-				// not in voice participants can not be moderated
-				return speakerp->isInVoiceChannel();
-			}
-		}
-		return false;
-	}
 	else if (item == std::string("can_add"))
 	{
 		// We can add friends if:
@@ -855,6 +846,36 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD&
 	return true;
 }
 
+/*
+Processed menu items with such parameters:
+	can_allow_text_chat
+	can_moderate_voice
+*/
+bool LLParticipantList::LLParticipantListMenu::enableModerateContextMenuItem(const LLSD& userdata)
+{
+	// only group moderators can perform actions related to this "enable callback"
+	if (!isGroupModerator()) return false;
+
+	const LLUUID& participant_id = mUUIDs.front();
+	LLPointer<LLSpeaker> speakerp = mParent.mSpeakerMgr->findSpeaker(participant_id);
+
+	// not in voice participants can not be moderated
+	bool speaker_in_voice = speakerp.notNull() && speakerp->isInVoiceChannel();
+
+	const std::string& item = userdata.asString();
+
+	if ("can_moderate_voice" == item)
+	{
+		return speaker_in_voice;
+	}
+
+	// For now non of menu actions except "can_moderate_voice" can be performed for Avaline callers.
+	bool is_participant_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(participant_id);
+	if (!is_participant_avatar) return false;
+
+	return true;
+}
+
 bool LLParticipantList::LLParticipantListMenu::checkContextMenuItem(const LLSD& userdata)
 {
 	std::string item = userdata.asString();
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index 9e5a2cbc1fb86cedac9ac2ed4673e69701799c8f..bbef8baaac25e70214f7be59fb64c70704ca7029 100644
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
@@ -158,6 +158,7 @@ class LLParticipantList
 			LLParticipantList& mParent;
 		private:
 			bool enableContextMenuItem(const LLSD& userdata);
+			bool enableModerateContextMenuItem(const LLSD& userdata);
 			bool checkContextMenuItem(const LLSD& userdata);
 
 			void sortParticipantList(const LLSD& userdata);
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index 911ed6ade7585f9fbabb868bb4d318bf935f2acb..22b12ee132df2f557260902e3d7e169872902965 100644
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
@@ -119,29 +119,9 @@ BOOL LLToast::postBuild()
 		mTimer->stop();
 	}
 
-	if (mIsTip)
-	{
-		mTextEditor = mPanel->getChild<LLTextEditor>("text_editor_box");
-
-		if (mTextEditor)
-		{
-			mTextEditor->setMouseUpCallback(boost::bind(&LLToast::hide,this));
-			mPanel->setMouseUpCallback(boost::bind(&LLToast::handleTipToastClick, this, _2, _3, _4));
-		}
-	}
-
 	return TRUE;
 }
 
-//--------------------------------------------------------------------------
-void LLToast::handleTipToastClick(S32 x, S32 y, MASK mask)
-{
-	if (!mTextEditor->getRect().pointInRect(x, y))
-	{
-		hide();
-	}
-}
-
 //--------------------------------------------------------------------------
 void LLToast::setHideButtonEnabled(bool enabled)
 {
@@ -421,4 +401,13 @@ bool LLToast::isNotificationValid()
 
 //--------------------------------------------------------------------------
 
+S32	LLToast::notifyParent(const LLSD& info)
+{
+	if (info.has("action") && "hide_toast" == info["action"].asString())
+	{
+		hide();
+		return 1;
+	}
 
+	return LLModalDialog::notifyParent(info);
+}
diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h
index bd07ff9fb14b9ebe4dd232fb3b92c4fbc5a44a18..4a213580da672fa4972ccc28c32d7bd1fd89d754 100644
--- a/indra/newview/lltoast.h
+++ b/indra/newview/lltoast.h
@@ -190,14 +190,14 @@ class LLToast : public LLModalDialog
 	boost::signals2::connection setMouseEnterCallback( const commit_signal_t::slot_type& cb ) { return mToastMouseEnterSignal.connect(cb); };
 	boost::signals2::connection setMouseLeaveCallback( const commit_signal_t::slot_type& cb ) { return mToastMouseLeaveSignal.connect(cb); };
 
+	virtual S32	notifyParent(const LLSD& info);
+
 private:
 
 	void onToastMouseEnter();
 
 	void onToastMouseLeave();
 
-	void handleTipToastClick(S32 x, S32 y, MASK mask);
-
 	void	expire();
 
 	LLUUID				mNotificationID;
@@ -213,7 +213,6 @@ class LLToast : public LLModalDialog
 
 	LLPanel*		mPanel;
 	LLButton*		mHideBtn;
-	LLTextEditor*	mTextEditor;
 
 	LLColor4	mBgColor;
 	bool		mCanFade;
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 58138d9917431884dcee82f8f2dc2d2d161e585f..3c0345df90e2f80010f9b68b02d70e9279afae31 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -2245,7 +2245,7 @@ void LLViewerMediaImpl::navigateInternal()
 	// This helps in supporting legacy media content where the server the media resides on returns a bogus MIME type
 	// but the parcel owner has correctly set the MIME type in the parcel media settings.
 	
-	if(!mMimeType.empty() && (mMimeType != "none/none"))
+	if(!mMimeType.empty() && (mMimeType != LLMIMETypes::getDefaultMimeType()))
 	{
 		std::string plugin_basename = LLMIMETypes::implType(mMimeType);
 		if(!plugin_basename.empty())
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index bc6716697e63f8c7aacf9e44b67ca56780a55efd..e829d7a5b47bb9f15e07d9bee4198f4d5c126d79 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -46,12 +46,6 @@
 
 #include "llurl.h"
 
-
-#if defined(LL_DARWIN) || (LL_WINDOWS && !LL_RELEASE_FOR_DOWNLOAD )
-#define PER_MEDIA_VOLUME
-#endif
-
-
 class LLViewerMediaImpl;
 class LLUUID;
 class LLViewerMediaTexture;
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index c8a4b27f40e56e36978de764ae9a9947d854ed21..06f24d92d67d5ec334c1e83f8442d4b941487b13 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -794,7 +794,10 @@ class LLViewerInventoryMoveFromWorldObserver : public LLInventoryMoveFromWorldOb
 
 		// Store selected items (without destination folder)
 		mSelectedItems.clear();
-		mActivePanel->getRootFolder()->getSelectionList(mSelectedItems);
+		if (mActivePanel)
+		{
+			mActivePanel->getRootFolder()->getSelectionList(mSelectedItems);
+		}
 		mSelectedItems.erase(mMoveIntoFolderID);
 	}
 
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index b967436df6f536380f64b6db0e16342b7e4dec53..202f8822e37eaf9e126a67fb67fb1a4bc28739e0 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -35,6 +35,7 @@
 
 #include "llagent.h"
 #include "llaudioengine.h"
+#include "llmimetypes.h"
 #include "llviewercontrol.h"
 #include "llviewermedia.h"
 #include "llviewerregion.h"
@@ -212,7 +213,7 @@ void LLViewerParcelMedia::play(LLParcel* parcel)
 	}
 	
 	// Don't ever try to play if the media type is set to "none/none"
-	if(stricmp(mime_type.c_str(), "none/none") != 0)
+	if(stricmp(mime_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)
 	{
 		if(!sMediaImpl)
 		{
@@ -306,7 +307,7 @@ LLPluginClassMediaOwner::EMediaStatus LLViewerParcelMedia::getStatus()
 // static
 std::string LLViewerParcelMedia::getMimeType()
 {
-	return sMediaImpl.notNull() ? sMediaImpl->getMimeType() : "none/none";
+	return sMediaImpl.notNull() ? sMediaImpl->getMimeType() : LLMIMETypes::getDefaultMimeType();
 }
 
 //static 
@@ -316,7 +317,7 @@ std::string LLViewerParcelMedia::getURL()
 	if(sMediaImpl.notNull())
 		url = sMediaImpl->getMediaURL();
 	
-	if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), "none/none") != 0)
+	if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0)
 	{
 		if (url.empty())
 			url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL();
diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp
index f55d6d89c4eea08929f0b78b5986ba58761396ff..032ad6635a023714a93b93868664670df9bdd408 100644
--- a/indra/newview/llviewerparcelmediaautoplay.cpp
+++ b/indra/newview/llviewerparcelmediaautoplay.cpp
@@ -42,6 +42,7 @@
 #include "message.h"
 #include "llviewertexturelist.h"         // for texture stats
 #include "llagent.h"
+#include "llmimetypes.h"
 
 const F32 AUTOPLAY_TIME  = 5;          // how many seconds before we autoplay
 const F32 AUTOPLAY_SIZE  = 24*24;      // how big the texture must be (pixel area) before we autoplay
@@ -126,7 +127,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick()
 	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) &&
+		(stricmp(this_media_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 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
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 5100f4e59a1a6566c6e855aaee0bb4de777d6d81..3f021d1f843243201dce110f62215f03be4a5c73 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1,6 +1,6 @@
 /** 
  * @File llvoavatar.cpp
- * @brief Implementation of LLVOAvatar class which is a derivation fo LLViewerObject
+ * @brief Implementation of LLVOAvatar class which is a derivation of LLViewerObject
  *
  * $LicenseInfo:firstyear=2001&license=viewergpl$
  * 
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 8da4c226edd5e17f4adad30b5b82ed11fcb86730..c80d59966c90fe24f87ec8823b13ae9d55a38716 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -1,6 +1,6 @@
 /**
  * @file llvoavatar.h
- * @brief Declaration of LLVOAvatar class which is a derivation fo
+ * @brief Declaration of LLVOAvatar class which is a derivation of
  * LLViewerObject
  *
  * $LicenseInfo:firstyear=2001&license=viewergpl$
diff --git a/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml
index 54a8a43edf7c343d55d2f2fdcac7eb9440603c1c..837dfa9e8c2c3496dba5dc6ead9521ca18225959 100644
--- a/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml
@@ -66,7 +66,7 @@
 				Key-Zeit:
 			</text>
 			<spinner label="Std." name="WLCurKeyHour" />
-			<spinner label="Min." name="WLCurKeyMin" label_width="100" width="66"/>
+			<spinner label="Min." name="WLCurKeyMin"/>
 			<text name="WLCurKeyTimeText2">
 				Key-Voreinstellung:
 			</text>
@@ -79,8 +79,8 @@
 				Zykluslänge:
 			</text>
 			<spinner label="Std." name="WLLengthOfDayHour" />
-			<spinner label="Min." name="WLLengthOfDayMin" label_width="100" width="66"/>
-			<spinner label="Sek." name="WLLengthOfDaySec" label_width="100" width="66"/>
+			<spinner label="Min." name="WLLengthOfDayMin"/>
+			<spinner label="Sek." name="WLLengthOfDaySec"/>
 			<text name="DayCycleText3">
 				Vorschau:
 			</text>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index fd05f02ceb85b98081a73fe915eebfa2fd7f7f29..b3aeb8cd68ee42359ff8a273dd557867616dcd48 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -3577,4 +3577,7 @@ Missbrauchsbericht
 	<string name="Contents">
 		Inhalt
 	</string>
+    <string name="AvatarBirthDateFormat">
+        [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
+    </string>
 </strings>
diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml
index 2fa112af8c3840d61b9568da373fd7b15426c13e..421f3a72c61f14c69164180ba65225793f76ea84 100644
--- a/indra/newview/skins/default/xui/en/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml
@@ -213,7 +213,8 @@
      left="10"
      name="(Drag below to save.)"
      top_pad="66"
-     width="130">
+     width="130"
+     wrap="true">
         (Drag below to save)
     </text>
 </floater>
diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
index 2c0c8d45b3b349079623f1d2bcbee352ffd48d4d..42a9ff551edf33747dec29efd639494bdc46e21f 100644
--- a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
@@ -7,7 +7,7 @@
  help_topic="day_cycle_floater"
  save_rect="true"
  title="DAY CYCLE EDITOR"
- width="646">
+ width="658">
     <tab_container
      follows="left|top"
      height="255"
@@ -16,7 +16,7 @@
      name="Day Cycle Tabs"
      tab_position="top"
      top="20"
-     width="644">
+     width="656">
         <panel
          border="true"
          follows="left|top|right|bottom"
@@ -27,7 +27,7 @@
          mouse_opaque="false"
          name="Day Cycle"
          top="0"
-         width="642">
+         width="654">
             <multi_slider
              can_edit_text="true"
              control_name="WLTimeSlider"
@@ -313,7 +313,7 @@
              left="555"
              name="WLAddKey"
              top="30"
-             width="80" />
+             width="96" />
             <button
              height="20"
              label="Delete Key"
@@ -322,7 +322,7 @@
              left_delta="0"
              name="WLDeleteKey"
              top_pad="5"
-             width="80" />
+             width="96" />
             <text
              type="string"
              length="1"
@@ -348,7 +348,7 @@
              left="30"
              name="WLCurKeyTimeText"
              top="124"
-             width="100">
+             width="105">
                 Key Time:
             </text>
             <spinner
@@ -361,11 +361,11 @@
              label="Hour"
              label_width="30"
              layout="topleft"
-             left_delta="0"
+             left_delta="25"
              max_val="100"
              name="WLCurKeyHour"
              top_pad="4"
-             width="70" />
+             width="74" />
             <spinner
              control_name="WLCurKeyMin"
              decimal_digits="0"
@@ -402,7 +402,7 @@
              left_delta="0"
              name="WLKeyPresets"
              top_pad="7"
-             width="155" />
+             width="205" />
             <view_border
              bevel_style="none"
              follows="top|left"
@@ -410,7 +410,7 @@
              layout="topleft"
              left="12"
              top="101"
-             width="190" />
+             width="240" />
             <text
              type="string"
              length="1"
@@ -419,7 +419,7 @@
              font="SansSerif"
              height="16"
              layout="topleft"
-             left="220"
+             left_pad="15"
              name="DayCycleText"
              top="114"
              width="120">
@@ -444,7 +444,7 @@
              layout="topleft"
              left_delta="0"
              name="DayCycleText2"
-             top_pad="9"
+             top_pad="17"
              width="120">
                 Length of Cycle:
             </text>
@@ -462,7 +462,7 @@
              max_val="100"
              name="WLLengthOfDayHour"
              top_pad="4"
-             width="70" />
+             width="74" />
             <spinner
              control_name="WLLengthOfDayMin"
              decimal_digits="0"
@@ -492,57 +492,58 @@
              max_val="59"
              name="WLLengthOfDaySec"
              top_delta="0"
-             width="60" />
+             width="60"/>
             <text
              type="string"
+             halign="right"
              length="1"
              border_visible="true"
              follows="left|top|right"
              font="SansSerif"
              height="16"
              layout="topleft"
-             left="310"
+             left_delta="-23"
              name="DayCycleText3"
              top="114"
-             width="120">
-                Preview:
+             width="85">
+                Preview :
             </text>
             <button
              height="20"
              label="Play"
              label_selected="Play"
              layout="topleft"
-             left_delta="60"
+             left="480"
              name="WLAnimSky"
              top_pad="5"
-             width="50" />
+             width="83" />
             <button
              height="20"
              label="Stop!"
              label_selected="Stop"
              layout="topleft"
-             left_pad="5"
+             left_pad="4"
              name="WLStopAnimSky"
              top_delta="0"
-             width="50" />
+             width="83" />
             <button
              height="20"
              label="Use Estate Time"
              label_selected="Go to Estate Time"
              layout="topleft"
-             left_pad="5"
+             left="480"
              name="WLUseLindenTime"
-             top_delta="0"
-             width="150" />
+             top_pad="9"
+             width="170" />
             <button
              height="20"
              label="Save Test Day"
              label_selected="Save Test Day"
              layout="topleft"
-             left="480"
+             left_delta="0"
              name="WLSaveDayCycle"
-             top="175"
-             width="150" />
+             top_pad="9"
+             width="170" />
             <button
              height="20"
              label="Load Test Day"
@@ -550,8 +551,8 @@
              layout="topleft"
              left_delta="0"
              name="WLLoadDayCycle"
-             top_pad="5"
-             width="150" />
+             top_pad="3"
+             width="170" />
         </panel>
     </tab_container>
 </floater>
diff --git a/indra/newview/skins/default/xui/en/menu_participant_list.xml b/indra/newview/skins/default/xui/en/menu_participant_list.xml
index 59c7f4ed8575d81f760316ee487470d19a0e2722..2515b608684aa7b66880604477331c2bd3000a72 100644
--- a/indra/newview/skins/default/xui/en/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/en/menu_participant_list.xml
@@ -30,6 +30,9 @@
      name="View Profile">
         <menu_item_call.on_click
          function="Avatar.Profile" />
+        <menu_item_call.on_enable
+         function="ParticipantList.EnableItem"
+         parameter="can_view_profile" />
     </menu_item_call>
     <menu_item_call
      label="Add Friend"
@@ -153,7 +156,7 @@
          function="ParticipantList.ModerateVoice"
          parameter="selected" />
         <on_enable
-         function="ParticipantList.EnableItem"
+         function="ParticipantList.EnableItem.Moderate"
          parameter="can_moderate_voice" />
     </menu_item_call>
     <menu_item_call
@@ -164,7 +167,7 @@
          function="ParticipantList.ModerateVoice"
          parameter="others" />
         <on_enable
-         function="ParticipantList.EnableItem"
+         function="ParticipantList.EnableItem.Moderate"
          parameter="can_moderate_voice" />
     </menu_item_call>
     <menu_item_call
@@ -175,7 +178,7 @@
          function="ParticipantList.ModerateVoice"
          parameter="selected" />
         <on_enable
-         function="ParticipantList.EnableItem"
+         function="ParticipantList.EnableItem.Moderate"
          parameter="can_moderate_voice" />
     </menu_item_call>
     <menu_item_call
@@ -186,7 +189,7 @@
          function="ParticipantList.ModerateVoice"
          parameter="others" />
         <on_enable
-         function="ParticipantList.EnableItem"
+         function="ParticipantList.EnableItem.Moderate"
          parameter="can_moderate_voice" />
     </menu_item_call>
     </context_menu>
diff --git a/indra/newview/skins/default/xui/en/mime_types.xml b/indra/newview/skins/default/xui/en/mime_types.xml
index 76c0d027f336f42203c0da977608ced2e2740164..8e1e5ff062af580592834b13929882ccfe164913 100644
--- a/indra/newview/skins/default/xui/en/mime_types.xml
+++ b/indra/newview/skins/default/xui/en/mime_types.xml
@@ -138,6 +138,9 @@
 		<widgettype>
 			audio
 		</widgettype>
+		<impl>
+			media_plugin_quicktime
+		</impl>
 	</mimetype>
 	<mimetype name="video/*">
 		<label name="video2_label">
@@ -146,6 +149,9 @@
 		<widgettype>
 			movie
 		</widgettype>
+		<impl>
+			media_plugin_quicktime
+		</impl>
 	</mimetype>
 	<mimetype name="image/*">
 		<label name="image2_label">
diff --git a/indra/newview/skins/default/xui/en/mime_types_linux.xml b/indra/newview/skins/default/xui/en/mime_types_linux.xml
index 05cd8507252d619e4e05944ffb3c6474d45fbc28..4748c14554ad2b934711ba039de2cd7e34fbb683 100644
--- a/indra/newview/skins/default/xui/en/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/en/mime_types_linux.xml
@@ -138,6 +138,9 @@
 		<widgettype>
 			audio
 		</widgettype>
+		<impl>
+			media_plugin_gstreamer
+		</impl>
 	</mimetype>
 	<mimetype name="video/*">
 		<label name="video2_label">
@@ -146,6 +149,9 @@
 		<widgettype>
 			movie
 		</widgettype>
+		<impl>
+			media_plugin_gstreamer
+		</impl>
 	</mimetype>
 	<mimetype name="image/*">
 		<label name="image2_label">
diff --git a/indra/newview/skins/default/xui/en/mime_types_mac.xml b/indra/newview/skins/default/xui/en/mime_types_mac.xml
index 76c0d027f336f42203c0da977608ced2e2740164..8e1e5ff062af580592834b13929882ccfe164913 100644
--- a/indra/newview/skins/default/xui/en/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/en/mime_types_mac.xml
@@ -138,6 +138,9 @@
 		<widgettype>
 			audio
 		</widgettype>
+		<impl>
+			media_plugin_quicktime
+		</impl>
 	</mimetype>
 	<mimetype name="video/*">
 		<label name="video2_label">
@@ -146,6 +149,9 @@
 		<widgettype>
 			movie
 		</widgettype>
+		<impl>
+			media_plugin_quicktime
+		</impl>
 	</mimetype>
 	<mimetype name="image/*">
 		<label name="image2_label">
diff --git a/indra/newview/skins/default/xui/en/panel_generic_tip.xml b/indra/newview/skins/default/xui/en/panel_generic_tip.xml
index 453ed7c7a677412adc8c56563a77610a7fb830cb..eea92895f58191928cde40d1fabf5d1ea460968e 100644
--- a/indra/newview/skins/default/xui/en/panel_generic_tip.xml
+++ b/indra/newview/skins/default/xui/en/panel_generic_tip.xml
@@ -3,7 +3,7 @@
  height="40"
  layout="topleft"
  left="0"
- name="panel_system_tip"
+ name="panel_generic_tip"
  top="0"
  width="305">
     <text
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
index b5c237151005547dc559168cba1aee708f6ec48a..c5f44cd049a8f68d4978f98979f0c3b82f83a403 100644
--- a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
@@ -42,10 +42,11 @@
 
   <text 
    bottom_delta="-50" 
+   enabled="false"
    follows="top|left" 
    height="15" 
    left="10" 
-   enabled="false">
+   name="owner_label">
     Owner
   </text>
   
@@ -79,10 +80,11 @@
 
   <text 
    bottom_delta="-36" 
+   enabled="false"
    follows="top|left" 
    height="15" 
    left="10" 
-   enabled="false">
+   name="group_label">
     Group:
   </text>
   
@@ -126,10 +128,11 @@
 
   <text 
    bottom_delta="-36" 
+   enabled="false"
    follows="top|left" 
    height="15" 
    left="10" 
-   enabled="false">
+   name="anyone_label">
     Anyone
   </text>
   
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 8131b75b70454067221eb13597ba7c7169c087b1..8a4a28e1889e9dcd90e0ef13362e31a1e6b86b24 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -13,10 +13,10 @@
  width="333">
     <string
      name="no_people"
-     value="No people" />
+     value="No recent people. Looking for people to hang out with? Try [secondlife:///app/search/people Search] or the [secondlife:///app/worldmap World Map]." />
     <string
      name="no_one_near"
-     value="No one near" />
+     value="No one nearby. Looking for people to hang out with? Try [secondlife:///app/search/people Search] or the [secondlife:///app/worldmap World Map]." />
     <string
      name="no_friends_online"
      value="No friends online" />
@@ -35,10 +35,10 @@
      -->
     <string
      name="no_filtered_groups_msg"
-     value="[secondlife:///app/search/groups Try finding the group in search?]" />
+     value="Didn't find what you're looking for? Try [secondlife:///app/search/groups Search]." />
     <string
      name="no_groups_msg"
-     value="[secondlife:///app/search/groups Try searching for some groups to join.]" />
+     value="Looking for Groups to join? Try [secondlife:///app/search/groups Search]." />
     <filter_editor
      follows="left|top|right"
      height="23"
@@ -264,8 +264,8 @@
              top="10"
              width="293"
              wrap="true">
-                To add friends try [secondlife:///app/search/people global search] or use right-click on a Resident to add them as a friend.
-If you're looking for people to hang out with, [secondlife:///app/worldmap try the Map].
+                Find friends using [secondlife:///app/search/people Search] or right-click on a Resident to add them as a friend.
+Looking for people to hang out with? Try the [secondlife:///app/worldmap World Map].
              </text>
         </panel>
         <panel
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index 7ab74855a5be1d91a8970cb3073cbaffc75667de..0a56f711ddd0f27929be368465edc52830c6b583 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -332,21 +332,21 @@
 		increment="8"
 		initial_value="160"
 		label="Draw distance:"
-		label_width="140"
+		label_width="185"
 		layout="topleft"
-		left="216"
+		left="200"
 		max_val="512"
 		min_val="64"
 		name="DrawDistance"
 		top="3"
-		width="255" />
+		width="296" />
 		<text
 		type="string"
 		length="1"
 		follows="left|top"
 		height="12"
 		layout="topleft"
-		left_delta="250"
+		left_delta="291"
 		name="DrawDistanceMeterText2"
 		top_delta="0"
 		width="128">
@@ -360,13 +360,13 @@
 		increment="256"
 		initial_value="4096"
 		label="Max. particle count:"
-		label_width="140"
+		label_width="185"
 		layout="topleft"
-		left="216"
+		left="200"
 		max_val="8192"
 		name="MaxParticleCount"
 		top_pad="7"
-		width="262" />
+		width="303" />
 		<slider
 		control_name="RenderGlowResolutionPow"
 		decimal_digits="0"
@@ -375,7 +375,7 @@
 		increment="1"
 		initial_value="8"
 		label="Post process quality:"
-		label_width="140"
+		label_width="185"
 		layout="topleft"
 		left_delta="0"
 		max_val="9"
@@ -383,7 +383,7 @@
 		name="RenderPostProcess"
 		show_text="false"
 		top_pad="4"
-		width="223">
+		width="264">
 			<slider.commit_callback
 			function="Pref.UpdateSliderText"
 			parameter="PostProcessText" />
@@ -407,14 +407,14 @@
 		increment="0.125"
 		initial_value="160"
 		label="  Objects:"
-		label_width="140"
+		label_width="185"
 		layout="topleft"
 		left_delta="0"
 		max_val="2"
 		name="ObjectMeshDetail"
 		show_text="false"
 		top_pad="6"
-		width="223">
+		width="264">
 			<slider.commit_callback
 			function="Pref.UpdateSliderText"
 			parameter="ObjectMeshDetailText" />
@@ -425,13 +425,13 @@
 		height="16"
 		initial_value="160"
 		label="  Flexiprims:"
-		label_width="140"
+		label_width="185"
 		layout="topleft"
 		left_delta="0"
 		name="FlexibleMeshDetail"
 		show_text="false"
 		top_pad="4"
-		width="223">
+		width="264">
 			<slider.commit_callback
 			function="Pref.UpdateSliderText"
 			parameter="FlexibleMeshDetailText" />
@@ -443,13 +443,13 @@
         increment="0.125"
         initial_value="160"
         label="  Trees:"
-        label_width="140"
+        label_width="185"
         layout="topleft"
         left_delta="0"
         name="TreeMeshDetail"
         show_text="false"
         top_pad="4"
-        width="223">
+        width="264">
            <slider.commit_callback
             function="Pref.UpdateSliderText"
             parameter="TreeMeshDetailText" />
@@ -461,13 +461,13 @@
         increment="0.125"
         initial_value="160"
         label="  Avatars:"
-        label_width="140"
+        label_width="185"
         layout="topleft"
         left_delta="0"
         name="AvatarMeshDetail"
         show_text="false"
         top_pad="4"
-        width="223">
+        width="264">
            <slider.commit_callback
             function="Pref.UpdateSliderText"
             parameter="AvatarMeshDetailText" />
@@ -479,7 +479,7 @@
         increment="0.125"
         initial_value="160"
         label="  Terrain:"
-        label_width="140"
+        label_width="185"
         layout="topleft"
         left_delta="0"
         max_val="2"
@@ -487,7 +487,7 @@
         name="TerrainMeshDetail"
         show_text="false"
         top_pad="4"
-        width="223">
+        width="264">
            <slider.commit_callback
             function="Pref.UpdateSliderText"
             parameter="TerrainMeshDetailText" />
@@ -501,7 +501,7 @@
         increment="8"
         initial_value="160"
         label="  Sky:"
-        label_width="140"
+        label_width="185"
         layout="topleft"
         left_delta="0"
         max_val="128"
@@ -509,7 +509,7 @@
         name="SkyMeshDetail"
         show_text="false"
         top_pad="4"
-        width="223">
+        width="264">
            <slider.commit_callback
             function="Pref.UpdateSliderText"
             parameter="SkyMeshDetailText" />
@@ -520,7 +520,7 @@
         follows="left|top"
         height="12"
         layout="topleft"
-        left="444"
+        left="469"
         name="PostProcessText"
         top="305"
         width="128">
@@ -605,7 +605,7 @@
         follows="left|top"
         height="12"
         layout="topleft"
-        left_delta="-230"
+        left="200"
         name="LightingDetailText"
         top_pad="8"
         width="140">
@@ -616,15 +616,13 @@
         draw_border="false"
         height="38"
         layout="topleft"
-        left_delta="0"
         name="LightingDetailRadio"
         top_pad="5"
-        width="321">
+        width="200">
            <radio_item
             height="16"
             label="Sun and moon only"
             layout="topleft"
-            left="3"
             name="SunMoon"
             value="0"
             top="3"
@@ -633,7 +631,6 @@
             height="16"
             label="Nearby local lights"
             layout="topleft"
-            left_delta="0"
             name="LocalLights"
             value="1"
             top_delta="16"
@@ -645,7 +642,7 @@
         follows="left|top"
         height="12"
         layout="topleft"
-        left="358"
+        left_pad="-30"
         name="TerrainDetailText"
         top="465"
         width="155">
@@ -659,23 +656,21 @@
         left_delta="0"
         name="TerrainDetailRadio"
         top_pad="5"
-        width="321">
+        width="70">
            <radio_item
             height="16"
             label="Low"
             layout="topleft"
-            left="3"
             name="0"
             top="3"
-            width="315" />
+            width="50" />
            <radio_item
             height="16"
             label="High"
             layout="topleft"
-            left_delta="0"
             name="2"
             top_delta="16"
-            width="315" />
+            width="50" />
         </radio_group>
 	</panel>
 	
diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml
index 9186efc431e9a618a07182d5d015e177a2e40287..08e36d5e57a3eb8be1464272b1a125f74ec99b59 100644
--- a/indra/newview/skins/default/xui/en/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml
@@ -2,14 +2,14 @@
 <panel
  border="false"
  follows="top|left"
- height="320"
+ height="510"
  help_topic="panel_region_estate_tab"
  label="Estate"
  layout="topleft"
  left="0"
  name="Estate"
  top="320"
- width="480">
+ width="530">
     <text
      type="string"
      length="1"
@@ -20,7 +20,7 @@
      name="estate_help_text"
      top="14"
      word_wrap="true"
-     width="250">
+     width="300">
         Changes to settings on this tab will affect all regions in the estate.
     </text>
     <text
@@ -82,7 +82,7 @@
      layout="topleft"
      left_delta="-4"
      top_pad="5"
-     width="250" />
+     width="300" />
     <check_box
      height="20"
      label="Use Global Time"
@@ -184,14 +184,14 @@
      layout="topleft"
      name="apply_btn"
      top_pad="10"
-     left="78"
+     left="110"
      width="97" />
     <button
      follows="left|top"
      height="23"
      label="Send Message To Estate..."
      layout="topleft"
-     left="20"
+     left="45"
      name="message_estate_btn"
      top_pad="20"
      width="220" />
@@ -200,7 +200,7 @@
      height="23"
      label="Kick Resident from Estate..."
      layout="topleft"
-     left="20"
+     left="45"
      name="kick_user_from_estate_btn"
      top_pad="5"
      width="220" />
@@ -213,7 +213,7 @@
      height="20"
      layout="topleft"
      name="estate_manager_label"
-     right="470"
+     right="520"
      width="200">
         Estate Managers:
     </text>
@@ -222,7 +222,7 @@
      follows="top|left"
      height="71"
      layout="topleft"
-     right="470"
+     right="520"
      top_pad="-5"
      width="200" />
     <name_list
@@ -240,7 +240,7 @@
      label="Remove..."
      layout="topleft"
      name="remove_estate_manager_btn"
-     right="470"
+     right="520"
      top_pad="5"
      width="97" />
     <button
@@ -269,7 +269,7 @@
      follows="top|left"
      height="71"
      layout="topleft"
-     right="470"
+     right="520"
      top_pad="-5"
      width="200" />
     <name_list
@@ -287,7 +287,7 @@
      label="Remove..."
      layout="topleft"
      name="remove_allowed_avatar_btn"
-     right="470"
+     right="520"
      top_pad="5"
      width="97" />
     <button
@@ -316,7 +316,7 @@
      follows="top|left"
      height="71"
      layout="topleft"
-     right="470"
+     right="520"
      top_pad="-5"
      width="200" />
     <name_list
@@ -334,7 +334,7 @@
      label="Remove..."
      layout="topleft"
      name="remove_allowed_group_btn"
-     right="470"
+     right="520"
      top_pad="5"
      width="97" />
     <button
@@ -363,7 +363,7 @@
      follows="top|left"
      height="71"
      layout="topleft"
-     right="470"
+     right="520"
      top_pad="-5"
      width="200" />
     <name_list
@@ -381,7 +381,7 @@
      label="Remove..."
      layout="topleft"
      name="remove_banned_avatar_btn"
-     right="470"
+     right="520"
      top_pad="5"
      width="97" />
     <button
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 813f59ff8963523a083f7ef8940a6c137dfff1f2..a480266b5a97b3b145d21247b7a5dc6280784076 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -3103,4 +3103,10 @@ Abuse Report</string>
   <string name="New Script">New Script</string>
   <string name="New Folder">New Folder</string>
   <string name="Contents">Contents</string>
-</strings>
+
+  <!-- birth date format shared by avatar inspector and profile panels -->
+  <string name="AvatarBirthDateFormat">[mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]</string>
+  
+  <string name="DefaultMimeType">none/none</string>
+
+  </strings>
diff --git a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
index 47ad16b2775430d0ca645637d24da7a97a4424c5..9c3ac1be0edf6f56fa42654e348cb5f8b0be6e6a 100644
--- a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
@@ -57,8 +57,8 @@
 			<text name="WL12amHash2">
 				|
 			</text>
-			<button font="SansSerifSmall" width="96" left="546" label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/>
-			<button font="SansSerifSmall" width="96" left="546" label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/>
+			<button label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/>
+			<button label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/>
 			<text name="WLCurKeyFrameText">
 				Configuración del fotograma clave:
 			</text>
@@ -86,9 +86,9 @@
 			</text>
 			<button label="Probar" label_selected="Probar" name="WLAnimSky"/>
 			<button label="Parar" label_selected="Parar" name="WLStopAnimSky"/>
-			<button width="150" font="SansSerifSmall" label="Usar el horario del estado" label_selected="Ir al horario del estado" name="WLUseLindenTime"/>
-			<button left="440" width="180" font="SansSerifSmall" label="Guardar este tipo de día" label_selected="Guardar este tipo de día" name="WLSaveDayCycle"/>
-			<button left="440" width="180" font="SansSerifSmall" label="Cargar y probar un tipo de día" label_selected="Cargar y probar un tipo de día" name="WLLoadDayCycle"/>
+			<button label="Usar el horario del estado" label_selected="Ir al horario del estado" name="WLUseLindenTime"/>
+			<button label="Guardar este tipo de día" label_selected="Guardar este tipo de día" name="WLSaveDayCycle"/>
+			<button label="Cargar y probar un tipo de día" label_selected="Cargar y probar un tipo de día" name="WLLoadDayCycle"/>
 		</panel>
 	</tab_container>
 </floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
index e8122108a814fbaf49ffa04a11bcfe79ea194877..ec3b246c7673e71a6213ed1180e4f9d657c7648c 100644
--- a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
@@ -58,15 +58,15 @@
 				|
 			</text>
 			<button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey"/>
-			<button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey" width="89"/>
-			<text name="WLCurKeyFrameText" width="170">
+			<button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey"/>
+			<text name="WLCurKeyFrameText">
 				Réglages des images-clés :
 			</text>
-			<text name="WLCurKeyTimeText" width="170">
+			<text name="WLCurKeyTimeText">
 				Heure de la clé :
 			</text>
-			<spinner label="Heure" name="WLCurKeyHour" label_width="80" width="74"/>
-			<spinner label="Min" name="WLCurKeyMin" label_width="80"/>
+			<spinner label="Heure" name="WLCurKeyHour"/>
+			<spinner label="Min" name="WLCurKeyMin"/>
 			<text name="WLCurKeyTimeText2">
 				Préréglages clés :
 			</text>
@@ -78,9 +78,9 @@
 			<text name="DayCycleText2">
 				Durée du cycle :
 			</text>
-			<spinner label="Heure" name="WLLengthOfDayHour" label_width="80" width="74" />
+			<spinner label="Heure" name="WLLengthOfDayHour"/>
 			<spinner label="Min" name="WLLengthOfDayMin" />
-			<spinner label="S" name="WLLengthOfDaySec" label_width="10" width="50" left_delta="95"/>
+			<spinner label="S" name="WLLengthOfDaySec"/>
 			<text name="DayCycleText3">
 				Prévisualiser :
 			</text>
diff --git a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
index 808c758bb6f3e5d8235f59afc4526f421eebb492..98c385d29f587509b78257821cf822ef1b60f102 100644
--- a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
@@ -57,8 +57,8 @@
 			<text name="WL12amHash2">
 				|
 			</text>
-			<button font="SansSerifSmall" width="96" left="546" label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/>
-			<button font="SansSerifSmall" width="96" left="546" label="Cancella voce" label_selected="Cancella voce" name="WLDeleteKey"/>
+			<button label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/>
+			<button label_selected="Cancella voce" name="WLDeleteKey"/>
 			<text name="WLCurKeyFrameText">
 				Impostazioni del fotogramma chiave:
 			</text>
@@ -84,9 +84,9 @@
 			<text name="DayCycleText3">
 				Anteprima:
 			</text>
-			<button width="55" font="SansSerifSmall" label="Avvia" label_selected="Avvia" name="WLAnimSky"/>
-			<button width="55" left_delta="60" font="SansSerifSmall" label="Arresta!" label_selected="Arresta" name="WLStopAnimSky"/>
-			<button left_delta="60" width="150" font="SansSerifSmall" label="Usa l&apos;ora della proprietà" label_selected="Vai all&apos;ora della proprietà" name="WLUseLindenTime"/>
+			<button label="Avvia" label_selected="Avvia" name="WLAnimSky"/>
+			<button label="Arresta!" label_selected="Arresta" name="WLStopAnimSky"/>
+			<button label="Usa l&apos;ora della proprietà" label_selected="Vai all&apos;ora della proprietà" name="WLUseLindenTime"/>
 			<button label="Salva il test del giorno" label_selected="Salva il test del giorno" name="WLSaveDayCycle"/>
 			<button label="Carica il test del giorno" label_selected="Carica il test del giorno" name="WLLoadDayCycle"/>
 		</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
index d02a794219b963ebb5642852558cbaa7fbeae29b..5bd0cfb106f76b39be88a61cfec3f74276197be5 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
@@ -47,12 +47,12 @@
 		<check_box initial_value="true" label="Avatar bidimensionali (Impostor)" name="AvatarImpostors"/>
 		<check_box initial_value="true" label="Hardware Skinning" name="AvatarVertexProgram"/>
 		<check_box initial_value="true" label="Abiti dell&apos;avatar" name="AvatarCloth"/>
-		<slider label="Distanza di disegno:" label_width="158" name="DrawDistance" width="255"/>
+		<slider label="Distanza di disegno:" name="DrawDistance"/>
 		<text name="DrawDistanceMeterText2">
 			m
 		</text>
-		<slider label="Conteggio massimo particelle:" label_width="158" name="MaxParticleCount" width="262"/>
-		<slider label="Qualità in post-produzione:" label_width="158" name="RenderPostProcess" width="223"/>
+		<slider label="Conteggio massimo particelle:" name="MaxParticleCount"/>
+		<slider label="Qualità in post-produzione:" name="RenderPostProcess"/>
 		<text name="MeshDetailText">
 			Dettagli reticolo:
 		</text>
@@ -99,7 +99,7 @@
 		</radio_group>
 	</panel>
 	<button label="Applica" label_selected="Applica" name="Apply"/>
-	<button label="Reimposta" left="110" name="Defaults" width="190"/>
+	<button label="Reimposta" name="Defaults"/>
 	<button label="Avanzate" name="Advanced"/>
 	<button label="Hardware" label_selected="Hardware" name="GraphicsHardwareButton"/>
 </panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml
index 7bda25e00fcdbf991b042cc05c86693e45e58d62..b924af4e67d19a85e2cb60431d3a161bdf543b7a 100644
--- a/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml
@@ -84,10 +84,10 @@
 			<text name="DayCycleText3">
 				プレビュー:
 			</text>
-			<button label="再生" label_selected="再生" name="WLAnimSky" left_delta="70"/>
+			<button label="再生" label_selected="再生" name="WLAnimSky"/>
 			<button label="停止" label_selected="停止" name="WLStopAnimSky" />
 			<button label="不動産の時刻を使用"
-			     label_selected="不動産の時刻に変更" name="WLUseLindenTime" width="140"/>
+			     label_selected="不動産の時刻に変更" name="WLUseLindenTime"/>
 			<button label="デイテストを保存"
 			     label_selected="デイテストを保存" name="WLSaveDayCycle" />
 			<button label="デイテストをロード"
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index b9df82adcd505f02261e68e0cdb6f544edb8dcf9..a54d96061fbdef356fb22ff960fa569ddf154b25 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -3577,4 +3577,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
 	<string name="Contents">
 		コンテンツ
 	</string>
+    <string name="AvatarBirthDateFormat">
+        [year,datetime,slt]/[mthnum,datetime,slt]/[day,datetime,slt]
+    </string>
 </strings>
diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
index 42f34a3d827d5b81ca960b47c8c43a60b3cb3638..dbca247a2ff061f9ea16b1d9fc89055ce8f43fe4 100644
--- a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -30,9 +30,9 @@
 			<text name="WL12am2">
 				24:00
 			</text>
-			<button font="SansSerifSmall" width="96" left="546" label="Adicionar chave" label_selected="Adicionar chave" name="WLAddKey"/>
-			<button font="SansSerifSmall" width="96" left="546" label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/>
-			<text name="WLCurKeyFrameText" width="190" left="17">
+			<button label="Adicionar chave" label_selected="Adicionar chave" name="WLAddKey"/>
+			<button label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/>
+			<text name="WLCurKeyFrameText">
 				Configurações de Quadro-chave:
 			</text>
 			<text name="WLCurKeyTimeText">
@@ -47,7 +47,7 @@
 			<text name="DayCycleText">
 				Grudar:
 			</text>
-			<combo_box label="5 minutos" name="WLSnapOptions" width="85"/>
+			<combo_box label="5 minutos" name="WLSnapOptions"/>
 			<text name="DayCycleText2">
 				Duração do Ciclo:
 			</text>
@@ -59,7 +59,7 @@
 			</text>
 			<button label="Tocar" label_selected="Tocar" name="WLAnimSky"/>
 			<button label="Pare!" label_selected="Pare" name="WLStopAnimSky"/>
-			<button width="175" font="SansSerifSmall" label="Usar o horário da Propriedade" label_selected="Ir para o horário da Propriedade" name="WLUseLindenTime"/>
+			<button label="Usar o horário da Propriedade" label_selected="Ir para o horário da Propriedade" name="WLUseLindenTime"/>
 			<button label="Salvar o Dia teste" label_selected="Salvar o Dia teste" name="WLSaveDayCycle"/>
 			<button label="Carregar o Dia teste" label_selected="Carregar o Dia teste" name="WLLoadDayCycle"/>
 		</panel>
diff --git a/install.xml b/install.xml
index c998fef9b7e0aef50d344034e1cdad910a0fd5cc..651a6b9cf93a7379a25df495827d029863ce1214 100644
--- a/install.xml
+++ b/install.xml
@@ -1386,23 +1386,23 @@ anguage Infrstructure (CLI) international standard</string>
           <key>darwin</key>
           <map>
             <key>md5sum</key>
-            <string>38d836fa53d073b9f197eecd0f5615f0</string>
+            <string>3b7fa3a7ac07034a747759f22956b6d5</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8181-darwin-20100319.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8385-darwin-20100412.tar.bz2</uri>
           </map>
           <key>linux</key>
           <map>
             <key>md5sum</key>
-            <string>dd8dd1c223ecb8b232bf626cca6c63ac</string>
+            <string>3f834e00fa06e636814f22ad8685e407</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8181-linux-20100319.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8385-linux-20100412.tar.bz2</uri>
           </map>
           <key>windows</key>
           <map>
             <key>md5sum</key>
-            <string>8b4ce60f25823cd38896cb3b7eb0dd43</string>
+            <string>089a715a33cb48e030c9206966dfe31b</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8181-windows-20100319.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8385-windows-20100412.tar.bz2</uri>
           </map>
         </map>
       </map>