diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp
index 27c0c0b6406f2373bbd692286996e6f907dcdf00..11665aff7684f7c7f9a677f393be1f72e6485257 100644
--- a/indra/llcharacter/llcharacter.cpp
+++ b/indra/llcharacter/llcharacter.cpp
@@ -381,7 +381,7 @@ void LLCharacter::clearVisualParamWeights()
 		param;
 		param = getNextVisualParam())
 	{
-		if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+		if (param->isTweakable())
 		{
 			param->setWeight( param->getDefaultWeight(), FALSE );
 		}
diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp
index 703fe2f9cccbe500c606dcf1926e67ec1abaaaed..122406e20bd59ba443b3ac58e8877e081ea6b8c9 100644
--- a/indra/llcharacter/llvisualparam.cpp
+++ b/indra/llcharacter/llvisualparam.cpp
@@ -261,7 +261,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value, BOOL upload_bake)
 
 	if (mInfo)
 	{
-		if (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+		if (isTweakable())
 		{
 			mTargetWeight = llclamp(target_value, mInfo->mMinWeight, mInfo->mMaxWeight);
 		}
@@ -305,7 +305,7 @@ void LLVisualParam::animate( F32 delta, BOOL upload_bake )
 //-----------------------------------------------------------------------------
 void LLVisualParam::stopAnimating(BOOL upload_bake)
 { 
-	if (mIsAnimating && getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+	if (mIsAnimating && isTweakable())
 	{
 		mIsAnimating = FALSE; 
 		setWeight(mTargetWeight, upload_bake);
diff --git a/indra/llcharacter/llvisualparam.h b/indra/llcharacter/llvisualparam.h
index 12b45e6ebe64e712af6dc45ac301521d3fe395e2..20ee5fd7ec8bf533f84872375487ff6aad801aa9 100644
--- a/indra/llcharacter/llvisualparam.h
+++ b/indra/llcharacter/llvisualparam.h
@@ -52,6 +52,7 @@ enum EVisualParamGroup
 {
 	VISUAL_PARAM_GROUP_TWEAKABLE,
 	VISUAL_PARAM_GROUP_ANIMATABLE,
+	VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT,
 	NUM_VISUAL_PARAM_GROUPS
 };
 
@@ -144,6 +145,7 @@ class LLVisualParam
 	F32						getCurrentWeight() const 	{ return mCurWeight; }
 	F32						getLastWeight() const	{ return mLastWeight; }
 	BOOL					isAnimating() const	{ return mIsAnimating; }
+	BOOL					isTweakable() const { return (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)  || (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT); }
 
 	LLVisualParam*			getNextParam()		{ return mNext; }
 	void					setNextParam( LLVisualParam *next );
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index d7ab030a47082db75929b1df0dcfdbdb0505ba1f..f4af19b696e5e6994ce0962d3d077dd8601f5ce2 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -230,6 +230,8 @@ class LLButton
 	
 	void			setFont(const LLFontGL *font)		
 		{ mGLFont = ( font ? font : LLFontGL::getFontSansSerif()); }
+	const LLFontGL* getFont() const { return mGLFont; }
+
 
 	S32				getLastDrawCharsCount() const { return mLastDrawCharsCount; }
 
diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp
index f22b49f30feb81f16a4a4c3dbd6a879de22ede0d..b87851490db2ace3a2bcdff5daf0a589725be5eb 100644
--- a/indra/llui/llflatlistview.cpp
+++ b/indra/llui/llflatlistview.cpp
@@ -1227,7 +1227,7 @@ LLFlatListViewEx::LLFlatListViewEx(const Params& p)
 , mNoFilteredItemsMsg(p.no_filtered_items_msg)
 , mNoItemsMsg(p.no_items_msg)
 , mForceShowingUnmatchedItems(false)
-, mLastFilterSucceded(false)
+, mHasMatchedItems(false)
 {
 
 }
@@ -1285,7 +1285,7 @@ void LLFlatListViewEx::filterItems()
 	item_panel_list_t items;
 	getItems(items);
 
-	mLastFilterSucceded = false;
+	mHasMatchedItems = false;
 	for (item_panel_list_t::iterator
 			 iter = items.begin(),
 			 iter_end = items.end();
@@ -1296,13 +1296,16 @@ void LLFlatListViewEx::filterItems()
 		// i.e. we don't hide items that don't support 'match_filter' action, separators etc.
 		if (0 == pItem->notify(action))
 		{
-			mLastFilterSucceded = true;
+			mHasMatchedItems = true;
 			pItem->setVisible(true);
 		}
 		else
 		{
 			// TODO: implement (re)storing of current selection.
-			selectItem(pItem, false);
+			if(!mForceShowingUnmatchedItems)
+			{
+				selectItem(pItem, false);
+			}
 			pItem->setVisible(mForceShowingUnmatchedItems);
 		}
 	}
@@ -1311,9 +1314,9 @@ void LLFlatListViewEx::filterItems()
 	notifyParentItemsRectChanged();
 }
 
-bool LLFlatListViewEx::wasLasFilterSuccessfull()
+bool LLFlatListViewEx::hasMatchedItems()
 {
-	return mLastFilterSucceded;
+	return mHasMatchedItems;
 }
 
 //EOF
diff --git a/indra/llui/llflatlistview.h b/indra/llui/llflatlistview.h
index caeddfc179104291f9602d93b6a3d7ffce51a738..ded46d81226873733edca434dcde1e3fbd2ebece 100644
--- a/indra/llui/llflatlistview.h
+++ b/indra/llui/llflatlistview.h
@@ -488,7 +488,7 @@ class LLFlatListViewEx : public LLFlatListView
 	/**
 	 * Returns true if last call of filterItems() found at least one matching item
 	 */
-	bool wasLasFilterSuccessfull();
+	bool hasMatchedItems();
 
 protected:
 	LLFlatListViewEx(const Params& p);
@@ -512,7 +512,7 @@ class LLFlatListViewEx : public LLFlatListView
 	/**
 	 * True if last call of filterItems() found at least one matching item
 	 */
-	bool mLastFilterSucceded;
+	bool mHasMatchedItems;
 };
 
 #endif
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 9a56372e6821feb8dc71c7ec0fef8015927fd66e..39a6855273df547f08e87c4db82a90dcd3d4c1f5 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2754,10 +2754,10 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
 
 LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build");
 
-bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node)
+bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node)
 {
 	Params params(LLUICtrlFactory::getDefaultParams<LLFloater>());
-	LLXUIParser::instance().readXUI(node, params); // *TODO: Error checking
+	LLXUIParser::instance().readXUI(node, params, filename); // *TODO: Error checking
 
 	if (output_node)
 	{
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 654164ddc03a86e7f4d382460fc9b644db667e6f..3ea035777cf9546837b988db0343a00b30f9835b 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -149,7 +149,7 @@ friend class LLMultiFloater;
 	static void setupParamsForExport(Params& p, LLView* parent);
 
 	void initFromParams(const LLFloater::Params& p);
-	bool initFloaterXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node = NULL);
+	bool initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node = NULL);
 
 	/*virtual*/ void handleReshape(const LLRect& new_rect, bool by_user = false);
 	/*virtual*/ BOOL canSnapTo(const LLView* other_view);
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index b77126996e6aeb294757dde50e16fbf951c3d99a..b4a1bcb7c54e99cf1b48d6e8c9f82a3250ae55a2 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -139,6 +139,7 @@ LLMenuItemGL::Params::Params()
 :	shortcut("shortcut"),
 	jump_key("jump_key", KEY_NONE),
 	use_mac_ctrl("use_mac_ctrl", false),
+	allow_key_repeat("allow_key_repeat", false),
 	rect("rect"),
 	left("left"),
 	top("top"),
@@ -160,7 +161,7 @@ LLMenuItemGL::Params::Params()
 LLMenuItemGL::LLMenuItemGL(const LLMenuItemGL::Params& p)
 :	LLUICtrl(p),
 	mJumpKey(p.jump_key),
-	mAllowKeyRepeat(FALSE),
+	mAllowKeyRepeat(p.allow_key_repeat),
 	mHighlight( FALSE ),
 	mGotHover( FALSE ),
 	mBriefItem( FALSE ),
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index 6f0f83d4b9e041e085d6ea1aeac85e40e3443751..7668f301ea6e04e07f533e4275d00dec8491e34e 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -61,7 +61,8 @@ class LLMenuItemGL : public LLUICtrl
 	{
 		Optional<std::string>	shortcut;
 		Optional<KEY>			jump_key;
-		Optional<bool>			use_mac_ctrl;
+		Optional<bool>			use_mac_ctrl,
+								allow_key_repeat;
 
 		Ignored					rect,
 								left,
diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp
index 0cd052eefa0153ee7b2b3a91f94aa1ce5e605309..9ebdcb87c685730ae89f0e76f1575dd30b359fea 100644
--- a/indra/llui/llpanel.cpp
+++ b/indra/llui/llpanel.cpp
@@ -508,16 +508,19 @@ BOOL LLPanel::initPanelXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr outpu
 		if (xml_filename.empty())
 		{
 			node->getAttributeString("filename", xml_filename);
+			setXMLFilename(xml_filename);
 		}
 
 		if (!xml_filename.empty())
 		{
+			LLUICtrlFactory::instance().pushFileName(xml_filename);
+
 			LLFastTimer timer(FTM_EXTERNAL_PANEL_LOAD);
 			if (output_node)
 			{
 				//if we are exporting, we want to export the current xml
 				//not the referenced xml
-				LLXUIParser::instance().readXUI(node, params, xml_filename);
+				LLXUIParser::instance().readXUI(node, params, LLUICtrlFactory::getInstance()->getCurFileName());
 				Params output_params(params);
 				setupParamsForExport(output_params, parent);
 				output_node->setName(node->getName()->mString);
@@ -533,13 +536,13 @@ BOOL LLPanel::initPanelXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr outpu
 				return FALSE;
 			}
 
-			LLXUIParser::instance().readXUI(referenced_xml, params, xml_filename);
+			LLXUIParser::instance().readXUI(referenced_xml, params, LLUICtrlFactory::getInstance()->getCurFileName());
 
 			// add children using dimensions from referenced xml for consistent layout
 			setShape(params.rect);
 			LLUICtrlFactory::createChildren(this, referenced_xml, child_registry_t::instance());
 
-			setXMLFilename(xml_filename);
+			LLUICtrlFactory::instance().popFileName();
 		}
 
 		// ask LLUICtrlFactory for filename, since xml_filename might be empty
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index bf12384a2846132ac4e02375812c0a8670006b02..dff1cb93e73a6f1822fc0c20e630794285d0df9d 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -1752,6 +1752,33 @@ std::string LLUI::getLanguage()
 	return language;
 }
 
+struct SubDir : public LLInitParam::Block<SubDir>
+{
+	Mandatory<std::string> value;
+
+	SubDir()
+	:	value("value")
+	{}
+};
+
+struct Directory : public LLInitParam::Block<Directory>
+{
+	Multiple<SubDir, AtLeast<1> > subdirs;
+
+	Directory()
+	:	subdirs("subdir")
+	{}
+};
+
+struct Paths : public LLInitParam::Block<Paths>
+{
+	Multiple<Directory, AtLeast<1> > directories;
+
+	Paths()
+	:	directories("directory")
+	{}
+};
+
 //static
 void LLUI::setupPaths()
 {
@@ -1759,21 +1786,36 @@ void LLUI::setupPaths()
 
 	LLXMLNodePtr root;
 	BOOL success  = LLXMLNode::parseFile(filename, root, NULL);
+	Paths paths;
+	LLXUIParser::instance().readXUI(root, paths, filename);
+
 	sXUIPaths.clear();
 	
-	if (success)
+	if (success && paths.validateBlock())
 	{
 		LLStringUtil::format_map_t path_args;
 		path_args["[LANGUAGE]"] = LLUI::getLanguage();
 		
-		for (LLXMLNodePtr path = root->getFirstChild(); path.notNull(); path = path->getNextSibling())
+		for (LLInitParam::ParamIterator<Directory>::const_iterator it = paths.directories().begin(), 
+				end_it = paths.directories().end();
+			it != end_it;
+			++it)
 		{
-			std::string path_val_ui(path->getValue());
+			std::string path_val_ui;
+			for (LLInitParam::ParamIterator<SubDir>::const_iterator subdir_it = it->subdirs().begin(),
+					subdir_end_it = it->subdirs().end();
+				subdir_it != subdir_end_it;)
+			{
+				path_val_ui += subdir_it->value();
+				if (++subdir_it != subdir_end_it)
+					path_val_ui += gDirUtilp->getDirDelimiter();
+			}
 			LLStringUtil::format(path_val_ui, path_args);
 			if (std::find(sXUIPaths.begin(), sXUIPaths.end(), path_val_ui) == sXUIPaths.end())
 			{
 				sXUIPaths.push_back(path_val_ui);
 			}
+
 		}
 	}
 	else // parsing failed
diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp
index 930dadc377f63ba6ffa12b272d5d9b96e3b1e457..6b337e0d74c89ae01522370c168556f5224f50f4 100644
--- a/indra/llui/lluictrlfactory.cpp
+++ b/indra/llui/lluictrlfactory.cpp
@@ -101,7 +101,9 @@ void LLUICtrlFactory::loadWidgetTemplate(const std::string& widget_tag, LLInitPa
 
 	if (LLUICtrlFactory::getLayeredXMLNode(filename, root_node))
 	{
+		LLUICtrlFactory::instance().pushFileName(filename);
 		LLXUIParser::instance().readXUI(root_node, block, filename);
+		LLUICtrlFactory::instance().popFileName();
 	}
 }
 
@@ -211,7 +213,7 @@ bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filen
 	bool res = true;
 	
 	lldebugs << "Building floater " << filename << llendl;
-	mFileNames.push_back(gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), filename));
+	pushFileName(filename);
 	{
 		if (!floaterp->getFactoryMap().empty())
 		{
@@ -222,7 +224,7 @@ bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filen
 		floaterp->getCommitCallbackRegistrar().pushScope();
 		floaterp->getEnableCallbackRegistrar().pushScope();
 		
-		res = floaterp->initFloaterXML(root, floaterp->getParent(), output_node);
+		res = floaterp->initFloaterXML(root, floaterp->getParent(), filename, output_node);
 
 		floaterp->setXMLFilename(filename);
 		
@@ -234,7 +236,7 @@ bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filen
 			mFactoryStack.pop_front();
 		}
 	}
-	mFileNames.pop_back();
+	popFileName();
 	
 	return res;
 }
@@ -283,7 +285,7 @@ BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const std::string& filename, L
 
 	lldebugs << "Building panel " << filename << llendl;
 
-	mFileNames.push_back(gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), filename));
+	pushFileName(filename);
 	{
 		if (!panelp->getFactoryMap().empty())
 		{
@@ -306,7 +308,7 @@ BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const std::string& filename, L
 			mFactoryStack.pop_front();
 		}
 	}
-	mFileNames.pop_back();
+	popFileName();
 	return didPost;
 }
 
@@ -364,6 +366,23 @@ LLPanel* LLUICtrlFactory::createFactoryPanel(const std::string& name)
 	return create<LLPanel>(panel_p);
 }
 
+std::string LLUICtrlFactory::getCurFileName() 
+{ 
+	return mFileNames.empty() ? "" : gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + mFileNames.back(); 
+}
+
+
+void LLUICtrlFactory::pushFileName(const std::string& name) 
+{ 
+	mFileNames.push_back(gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), name)); 
+}
+
+void LLUICtrlFactory::popFileName() 
+{ 
+	mFileNames.pop_back(); 
+}
+
+
 //-----------------------------------------------------------------------------
 
 //static
diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h
index b1fa6add67bfbc708b81714ac2b66a4e8422676f..7da96ffce3d7a8d4027b4dfdc7a30067ba9229cb 100644
--- a/indra/llui/lluictrlfactory.h
+++ b/indra/llui/lluictrlfactory.h
@@ -170,7 +170,9 @@ class LLUICtrlFactory : public LLSingleton<LLUICtrlFactory>
 	// Returns 0 on success
 	S32 saveToXML(LLView* viewp, const std::string& filename);
 
-	std::string getCurFileName() { return mFileNames.empty() ? "" : mFileNames.back(); }
+	std::string getCurFileName();
+	void pushFileName(const std::string& name);
+	void popFileName();
 
 	static BOOL getAttributeColor(LLXMLNodePtr node, const std::string& name, LLColor4& color);
 
@@ -229,7 +231,7 @@ class LLUICtrlFactory : public LLSingleton<LLUICtrlFactory>
 		T* widget = NULL;
 
 		std::string skinned_filename = findSkinnedFilename(filename);
-		getInstance()->mFileNames.push_back(skinned_filename);
+		instance().pushFileName(filename);
 		{
 			LLXMLNodePtr root_node;
 
@@ -263,7 +265,7 @@ class LLUICtrlFactory : public LLSingleton<LLUICtrlFactory>
 			}
 		}
 fail:
-		getInstance()->mFileNames.pop_back();
+		instance().popFileName();
 		return widget;
 	}
 
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index bd56da912165cd861819d2f25ae4331b7298a5d0..394ec957d507a9ba52b0bbf1df0cd8aad6cb481a 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -111,6 +111,8 @@ LLView::Params::Params()
 	user_resize("user_resize"),
 	auto_resize("auto_resize"),
 	needs_translate("translate"),
+	min_width("min_width"),
+	max_width("max_width"),
 	xmlns("xmlns"),
 	xmlns_xsi("xmlns:xsi"),
 	xsi_schemaLocation("xsi:schemaLocation"),
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 3779fedf34ed270f9e3fe50edd92f53c8a36be51..9ff6a4e1a032d40d5efcb8edd31f7a2a4c991def 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -148,6 +148,8 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem
 		Ignored						user_resize,
 									auto_resize,
 									needs_translate,
+									min_width,
+									max_width,
 									xmlns,
 									xmlns_xsi,
 									xsi_schemaLocation,
@@ -634,7 +636,7 @@ template <class T> T* LLView::getChild(const std::string& name, BOOL recurse) co
 		// did we find *something* with that name?
 		if (child)
 		{
-			llwarns << "Found child named " << name << " but of wrong type " << typeid(*child).name() << ", expecting " << typeid(T*).name() << llendl;
+			llwarns << "Found child named \"" << name << "\" but of wrong type " << typeid(*child).name() << ", expecting " << typeid(T*).name() << llendl;
 		}
 		result = getDefaultWidget<T>(name);
 		if (!result)
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 9564236ad25aa664f83ffc6274540ad910032c51..a9b4ff02c5a872280149aed393dee873a4db3c11 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -11533,7 +11533,7 @@ render_pass="bump">
       
     <param
      id="1071"
-     group="0"
+     group="2"
      wearable="tattoo"
      edit_group="colorpicker"
      name="tattoo_red"
@@ -11566,7 +11566,7 @@ render_pass="bump">
 
     <param
      id="1072"
-     group="0"
+     group="2"
      wearable="tattoo"
      edit_group="colorpicker"
      name="tattoo_green"
@@ -11599,7 +11599,7 @@ render_pass="bump">
 
     <param
      id="1073"
-     group="0"
+     group="2"
      wearable="tattoo"
      edit_group="colorpicker"
      name="tattoo_blue"
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 217fb0f988522c428502f611d1205241f0e59819..345953f2e9cacf30b5e6f063ea3278d2a74b0ff6 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -3627,7 +3627,7 @@ void LLAgent::sendAgentSetAppearance()
 		 param;
 		 param = (LLViewerVisualParam*)gAgentAvatarp->getNextVisualParam())
 	{
-		if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+		if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) // do not transmit params of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
 		{
 			msg->nextBlockFast(_PREHASH_VisualParam );
 			
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 017fcf6e2b5be40275e77e89514e8ffc3b992727..bca92a60bef75d5d4459c1d5515c183b89730788 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -804,7 +804,7 @@ void LLAgentWearables::popWearable(const LLWearableType::EType type, U32 index)
 	if (wearable)
 	{
 		mWearableDatas[type].erase(mWearableDatas[type].begin() + index);
-		gAgentAvatarp->wearableUpdated(wearable->getType(), FALSE);
+		gAgentAvatarp->wearableUpdated(wearable->getType(), TRUE);
 		wearable->setLabelUpdated();
 	}
 }
diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp
index aa8cc01f7d32e314b1d78bce6b005bf5f2af1197..1fab5c7683582ded291039d06727329aa8122fc1 100644
--- a/indra/newview/llcofwearables.cpp
+++ b/indra/newview/llcofwearables.cpp
@@ -374,7 +374,12 @@ void LLCOFWearables::refresh()
 				 value_it_end = values.end();
 			 value_it != value_it_end; ++value_it)
 		{
-			list->selectItemByValue(*value_it);
+			// value_it may be null because of dummy items
+			// Dummy items have no ID
+			if(value_it->asUUID().notNull())
+			{
+				list->selectItemByValue(*value_it);
+			}
 		}
 	}
 }
@@ -608,7 +613,20 @@ void LLCOFWearables::onListRightClick(LLUICtrl* ctrl, S32 x, S32 y, LLListContex
 		uuid_vec_t selected_uuids;
 		if(getSelectedUUIDs(selected_uuids))
 		{
-			menu->show(ctrl, selected_uuids, x, y);
+			bool show_menu = false;
+			for(uuid_vec_t::iterator it = selected_uuids.begin();it!=selected_uuids.end();++it)
+			{
+				if ((*it).notNull())
+				{
+					show_menu = true;
+					break;
+				}
+			}
+
+			if(show_menu)
+			{
+				menu->show(ctrl, selected_uuids, x, y);
+			}
 		}
 	}
 }
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 76263a4307b14b61a37086ec6719e27d0cc377ac..98f940c23384dbe4965951b225edb6be1cbbd269 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -1940,8 +1940,6 @@ BOOL LLPanelLandOptions::postBuild()
 	mLandingTypeCombo = getChild<LLComboBox>( "landing type");
 	childSetCommitCallback("landing type", onCommitAny, this);
 
-	getChild<LLTextureCtrl>("snapshot_ctrl")->setFallbackImageName("default_land_picture.j2c");
-
 	return TRUE;
 }
 
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index f450b199c81299c2c249a173389f9f6b24ffb8f7..3ce1b46a4ce45f0c12dc69d48b99d49bfc2edff0 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -70,6 +70,7 @@
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
 #include "llsliderctrl.h"
+#include "llsidetray.h"
 #include "lltabcontainer.h"
 #include "lltrans.h"
 #include "llviewercontrol.h"
@@ -309,6 +310,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
 	mCommitCallbackRegistrar.add("Pref.applyUIColor",			boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2));
 	mCommitCallbackRegistrar.add("Pref.getUIColor",				boost::bind(&LLFloaterPreference::getUIColor, this ,_1, _2));
 	mCommitCallbackRegistrar.add("Pref.MaturitySettings",		boost::bind(&LLFloaterPreference::onChangeMaturity, this));
+	mCommitCallbackRegistrar.add("Pref.BlockList",				boost::bind(&LLFloaterPreference::onClickBlockList, this));
 
 	sSkin = gSavedSettings.getString("SkinCurrent");
 }
@@ -1225,6 +1227,17 @@ void LLFloaterPreference::onChangeMaturity()
 	getChild<LLIconCtrl>("rating_icon_adult")->setVisible(sim_access == SIM_ACCESS_ADULT);
 }
 
+// FIXME: this will stop you from spawning the sidetray from preferences dialog on login screen
+// but the UI for this will still be enabled
+void LLFloaterPreference::onClickBlockList()
+{
+	// don't create side tray on demand
+	if (LLSideTray::instanceCreated())
+	{
+		LLSideTray::getInstance()->showPanel("panel_block_list_sidetray");
+	}
+}
+
 
 void LLFloaterPreference::applyUIColor(LLUICtrl* ctrl, const LLSD& param)
 {
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index b45e09db7d382dd6cf2e6c1312a21ff9bca27d0d..0df1b61dcb2953bfb80c0b02660b7fea50ee732a 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -141,6 +141,7 @@ class LLFloaterPreference : public LLFloater
 	void onCommitMusicEnabled();
 	void applyResolution();
 	void onChangeMaturity();
+	void onClickBlockList();
 	void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
 	void getUIColor(LLUICtrl* ctrl, const LLSD& param);
 	
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index a42f6ee00fedabee30925a52b518e4e1b5075a11..565f0619a51fc1880582d519a1e19ee04a50869e 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -235,7 +235,6 @@ BOOL	LLFloaterTools::postBuild()
 	childSetValue("checkbox uniform",(BOOL)gSavedSettings.getBOOL("ScaleUniform"));
 	mCheckStretchTexture	= getChild<LLCheckBoxCtrl>("checkbox stretch textures");
 	childSetValue("checkbox stretch textures",(BOOL)gSavedSettings.getBOOL("ScaleStretchTextures"));
-	mTextGridMode			= getChild<LLTextBox>("text ruler mode");
 	mComboGridMode			= getChild<LLComboBox>("combobox grid mode");
 	mCheckStretchUniformLabel = getChild<LLTextBox>("checkbox uniform label");
 
@@ -313,7 +312,6 @@ LLFloaterTools::LLFloaterTools(const LLSD& key)
 	mCheckSnapToGrid(NULL),
 	mBtnGridOptions(NULL),
 	mTitleMedia(NULL),
-	mTextGridMode(NULL),
 	mComboGridMode(NULL),
 	mCheckStretchUniform(NULL),
 	mCheckStretchTexture(NULL),
@@ -625,8 +623,6 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
 
 		mComboGridMode->setCurrentByIndex(index);
 	}
-	if (mTextGridMode) mTextGridMode->setVisible( edit_visible );
-
 	// Snap to grid disabled for grab tool - very confusing
 	if (mCheckSnapToGrid) mCheckSnapToGrid->setVisible( edit_visible /* || tool == LLToolGrab::getInstance() */ );
 	if (mBtnGridOptions) mBtnGridOptions->setVisible( edit_visible /* || tool == LLToolGrab::getInstance() */ );
diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h
index 91431969bb6f927edd9cd7acf795ce5fd820d5f1..7aa319a44169654d4f7caffa180c54fdd4726863 100644
--- a/indra/newview/llfloatertools.h
+++ b/indra/newview/llfloatertools.h
@@ -144,7 +144,6 @@ class LLFloaterTools
 
 	LLCheckBoxCtrl*	mCheckSnapToGrid;
 	LLButton*		mBtnGridOptions;
-	LLTextBox*		mTextGridMode;
 	LLComboBox*		mComboGridMode;
 	LLCheckBoxCtrl*	mCheckStretchUniform;
 	LLCheckBoxCtrl*	mCheckStretchTexture;
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 152360a96ea370e5769dc2e202e974e7a7216e9e..fbe77047e38d021445b8074edb5b980c82ca2d4c 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -56,7 +56,7 @@
 #include "llinventorymodelbackgroundfetch.h"
 #include "llinventoryobserver.h"
 #include "lllandmarklist.h"
-#include "lllineeditor.h"
+#include "llsearcheditor.h"
 #include "llnotificationsutil.h"
 #include "llregionhandle.h"
 #include "llscrolllistctrl.h"
@@ -229,30 +229,20 @@ BOOL LLFloaterWorldMap::postBuild()
 	mPanel = getChild<LLPanel>("objects_mapview");
 
 	LLComboBox *avatar_combo = getChild<LLComboBox>("friend combo");
-	if (avatar_combo)
-	{
-		avatar_combo->selectFirstItem();
-		avatar_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onAvatarComboPrearrange, this) );
-		avatar_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
-	}
+	avatar_combo->selectFirstItem();
+	avatar_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onAvatarComboPrearrange, this) );
+	avatar_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
 
-	getChild<LLScrollListCtrl>("location")->setFocusChangedCallback(boost::bind(&LLFloaterWorldMap::onLocationFocusChanged, this, _1));
-
-	LLLineEditor *location_editor = getChild<LLLineEditor>("location");
-	if (location_editor)
-	{
-		location_editor->setKeystrokeCallback( boost::bind(&LLFloaterWorldMap::onSearchTextEntry, this, _1), NULL );
-	}
+	LLSearchEditor *location_editor = getChild<LLSearchEditor>("location");
+	location_editor->setFocusChangedCallback(boost::bind(&LLFloaterWorldMap::onLocationFocusChanged, this, _1));
+	location_editor->setKeystrokeCallback( boost::bind(&LLFloaterWorldMap::onSearchTextEntry, this));
 	
 	getChild<LLScrollListCtrl>("search_results")->setDoubleClickCallback( boost::bind(&LLFloaterWorldMap::onClickTeleportBtn, this));
 
 	LLComboBox *landmark_combo = getChild<LLComboBox>( "landmark combo");
-	if (landmark_combo)
-	{
-		landmark_combo->selectFirstItem();
-		landmark_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onLandmarkComboPrearrange, this) );
-		landmark_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
-	}
+	landmark_combo->selectFirstItem();
+	landmark_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onLandmarkComboPrearrange, this) );
+	landmark_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
 
 	mCurZoomVal = log(LLWorldMapView::sMapScale)/log(2.f);
 	childSetValue("zoom slider", LLWorldMapView::sMapScale);
@@ -1003,7 +993,7 @@ void LLFloaterWorldMap::onComboTextEntry()
 	LLTracker::clearFocus();
 }
 
-void LLFloaterWorldMap::onSearchTextEntry( LLLineEditor* ctrl )
+void LLFloaterWorldMap::onSearchTextEntry( )
 {
 	onComboTextEntry();
 	updateSearchEnabled();
diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h
index 52809ff8302bb2074118aa9023217325ab00377b..de515c689e2c3279f4089171f58e06aa29b73d4a 100644
--- a/indra/newview/llfloaterworldmap.h
+++ b/indra/newview/llfloaterworldmap.h
@@ -123,7 +123,7 @@ class LLFloaterWorldMap : public LLFloater
 	void		    onAvatarComboCommit();
 
 	void			onComboTextEntry( );
-	void			onSearchTextEntry( LLLineEditor* ctrl );
+	void			onSearchTextEntry( );
 
 	void			onClearBtn();
 	void			onClickTeleportBtn();
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index 67442dd573d7bef2efd8f77c59ea6aaf4256eee3..6c2566813f040c741e1c48a935dd77323c30f1b5 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -148,10 +148,27 @@ class LLOutfitListGearMenu
 
 	void onTakeOff()
 	{
-		const LLUUID& selected_outfit_id = getSelectedOutfitID();
-		if (selected_outfit_id.notNull())
+		// Take off selected items if there are any
+		if (mOutfitList->hasItemSelected())
+		{
+			uuid_vec_t selected_uuids;
+			mOutfitList->getSelectedItemsUUIDs(selected_uuids);
+
+			for (uuid_vec_t::const_iterator it=selected_uuids.begin(); it != selected_uuids.end(); ++it)
+			{
+				if (get_is_item_worn(*it))
+				{
+					LLAppearanceMgr::instance().removeItemFromAvatar(*it);
+				}
+			}
+		}
+		else // or take off the whole selected outfit if no items specified.
 		{
-			LLAppearanceMgr::instance().takeOffOutfit(selected_outfit_id);
+			const LLUUID& selected_outfit_id = getSelectedOutfitID();
+			if (selected_outfit_id.notNull())
+			{
+				LLAppearanceMgr::instance().takeOffOutfit(selected_outfit_id);
+			}
 		}
 	}
 
@@ -474,7 +491,7 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
 	}
 
 	// Handle removed tabs.
-	for (uuid_vec_t::const_iterator iter=vremoved.begin(); iter != vremoved.end(); iter++)
+	for (uuid_vec_t::const_iterator iter=vremoved.begin(); iter != vremoved.end(); ++iter)
 	{
 		outfits_map_t::iterator outfits_iter = mOutfitsMap.find((*iter));
 		if (outfits_iter != mOutfitsMap.end())
@@ -626,7 +643,10 @@ bool LLOutfitsList::isActionEnabled(const LLSD& userdata)
 	}
 	if (command_name == "take_off")
 	{
-		return LLAppearanceMgr::getInstance()->getBaseOutfitUUID() == mSelectedOutfitUUID;
+		// Enable "Take Off" only if a worn item or base outfit is selected.
+		return ( !hasItemSelected()
+				 && LLAppearanceMgr::getInstance()->getBaseOutfitUUID() == mSelectedOutfitUUID )
+				|| hasWornItemSelected();
 	}
 	return false;
 }
@@ -638,6 +658,22 @@ void LLOutfitsList::showGearMenu(LLView* spawning_view)
 	mGearMenu->show(spawning_view);
 }
 
+void LLOutfitsList::getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const
+{
+	// Collect selected items from all selected lists.
+	for (wearables_lists_map_t::const_iterator iter = mSelectedListsMap.begin();
+			iter != mSelectedListsMap.end();
+			++iter)
+	{
+		uuid_vec_t uuids;
+		(*iter).second->getSelectedUUIDs(uuids);
+
+		S32 prev_size = selected_uuids.size();
+		selected_uuids.resize(prev_size + uuids.size());
+		std::copy(uuids.begin(), uuids.end(), selected_uuids.begin() + prev_size);
+	}
+}
+
 boost::signals2::connection LLOutfitsList::setSelectionChangeCallback(selection_change_callback_t cb)
 {
 	return mSelectionChangeSignal.connect(cb);
@@ -878,7 +914,7 @@ void LLOutfitsList::applyFilterToTab(
 	{
 		// hide tab if its title doesn't pass filter
 		// and it has no visible items
-		tab->setVisible(list->wasLasFilterSuccessfull());
+		tab->setVisible(list->hasMatchedItems());
 
 		// remove title highlighting because it might
 		// have been previously highlighted by less restrictive filter
@@ -894,6 +930,18 @@ void LLOutfitsList::applyFilterToTab(
 	}
 }
 
+bool LLOutfitsList::hasWornItemSelected()
+{
+	uuid_vec_t selected_uuids;
+	getSelectedItemsUUIDs(selected_uuids);
+
+	for (uuid_vec_t::const_iterator it=selected_uuids.begin(); it != selected_uuids.end(); ++it)
+	{
+		if (get_is_item_worn(*it)) return true;
+	}
+	return false;
+}
+
 void LLOutfitsList::onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const LLUUID& cat_id)
 {
 	LLAccordionCtrlTab* tab = dynamic_cast<LLAccordionCtrlTab*>(ctrl);
@@ -912,6 +960,26 @@ void LLOutfitsList::onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const
 	}
 }
 
+void LLOutfitsList::wearSelectedItems()
+{
+	uuid_vec_t selected_uuids;
+	getSelectedItemsUUIDs(selected_uuids);
+
+	if(selected_uuids.empty())
+	{
+		return;
+	}
+
+	uuid_vec_t::const_iterator it;
+	// Wear items from all selected lists(if possible- add, else replace)
+	for (it = selected_uuids.begin(); it != selected_uuids.end()-1; ++it)
+	{
+		LLAppearanceMgr::getInstance()->wearItemOnAvatar(*it, false, false);
+	}
+	// call update only when wearing last item
+	LLAppearanceMgr::getInstance()->wearItemOnAvatar(*it, true, false);
+}
+
 void LLOutfitsList::onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y)
 {
 	LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(ctrl);
@@ -919,18 +987,7 @@ void LLOutfitsList::onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y)
 
 	uuid_vec_t selected_uuids;
 
-	// Collect selected items from all selected lists.
-	for (wearables_lists_map_t::iterator iter = mSelectedListsMap.begin();
-			iter != mSelectedListsMap.end();
-			++iter)
-	{
-		uuid_vec_t uuids;
-		(*iter).second->getSelectedUUIDs(uuids);
-
-		S32 prev_size = selected_uuids.size();
-		selected_uuids.resize(prev_size + uuids.size());
-		std::copy(uuids.begin(), uuids.end(), selected_uuids.begin() + prev_size);
-	}
+	getSelectedItemsUUIDs(selected_uuids);
 
 	LLWearableItemsList::ContextMenu::instance().show(list, selected_uuids, x, y);
 }
diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h
index d2076247929e23b35ef68567dc075c0ba3b9f051..26722f2a96578b5aacda1b79aaae70e31c6066ce 100644
--- a/indra/newview/lloutfitslist.h
+++ b/indra/newview/lloutfitslist.h
@@ -103,8 +103,13 @@ class LLOutfitsList : public LLPanelAppearanceTab
 
 	const LLUUID& getSelectedOutfitUUID() const { return mSelectedOutfitUUID; }
 
+	void getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const;
+
 	boost::signals2::connection setSelectionChangeCallback(selection_change_callback_t cb);
 
+	// Collects selected items from all selected lists and wears them(if possible- adds, else replaces)
+	void wearSelectedItems();
+
 	/**
 	 * Returns true if there is a selection inside currently selected outfit
 	 */
@@ -173,6 +178,11 @@ class LLOutfitsList : public LLPanelAppearanceTab
 	 */
 	void applyFilterToTab(const LLUUID& category_id, LLAccordionCtrlTab* tab, const std::string& filter_substring);
 
+	/**
+	 * Returns true if there are any worn items among currently selected, otherwise false.
+	 */
+	bool hasWornItemSelected();
+
 	void onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const LLUUID& cat_id);
 	void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y);
 	void onCOFChanged();
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 0b31ffc9a0ce50fbeaeb5511c0c3e03b44b422d4..534bb6e3fc78586fd8cd2cbb8d04e0f8f831ccf0 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -513,12 +513,6 @@ BOOL LLPanelAvatarProfile::postBuild()
 
 	mProfileMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
 
-	LLTextureCtrl* pic = getChild<LLTextureCtrl>("2nd_life_pic");
-	pic->setFallbackImageName("default_profile_picture.j2c");
-
-	pic = getChild<LLTextureCtrl>("real_world_pic");
-	pic->setFallbackImageName("default_profile_picture.j2c");
-
 	LLVoiceClient::getInstance()->addObserver((LLVoiceClientStatusObserver*)this);
 
 	resetControls();
@@ -843,9 +837,6 @@ BOOL LLPanelMyProfile::postBuild()
 {
 	LLPanelAvatarProfile::postBuild();
 
-	mStatusCombobox = getChild<LLComboBox>("status_combo");
-
-	childSetCommitCallback("status_combo", boost::bind(&LLPanelMyProfile::onStatusChanged, this), NULL);
 	childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelMyProfile::onStatusMessageChanged, this), NULL);
 
 	resetControls();
@@ -865,30 +856,9 @@ void LLPanelMyProfile::processProfileProperties(const LLAvatarData* avatar_data)
 
 	fillPartnerData(avatar_data);
 
-	fillStatusData(avatar_data);
-
 	fillAccountStatus(avatar_data);
 }
 
-void LLPanelMyProfile::fillStatusData(const LLAvatarData* avatar_data)
-{
-	std::string status;
-	if (gAgent.getAFK())
-	{
-		status = "away";
-	}
-	else if (gAgent.getBusy())
-	{
-		status = "busy";
-	}
-	else
-	{
-		status = "online";
-	}
-
-	mStatusCombobox->setValue(status);
-}
-
 void LLPanelMyProfile::resetControls()
 {
 	childSetVisible("status_panel", false);
@@ -899,27 +869,6 @@ void LLPanelMyProfile::resetControls()
 	childSetVisible("profile_me_buttons_panel", true);
 }
 
-void LLPanelMyProfile::onStatusChanged()
-{
-	LLSD::String status = mStatusCombobox->getValue().asString();
-
-	if ("online" == status)
-	{
-		gAgent.clearAFK();
-		gAgent.clearBusy();
-	}
-	else if ("away" == status)
-	{
-		gAgent.clearBusy();
-		gAgent.setAFK();
-	}
-	else if ("busy" == status)
-	{
-		gAgent.clearAFK();
-		gAgent.setBusy();
-		LLNotificationsUtil::add("BusyModeSet");
-	}
-}
 
 void LLPanelMyProfile::onStatusMessageChanged()
 {
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index bb8df2ff9c83f7c610881093a8b04dade93ca52f..ac2765df28a56b8a0f61838319c370bb23aa0bf3 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -240,21 +240,10 @@ class LLPanelMyProfile
 
 	/*virtual*/ void processProfileProperties(const LLAvatarData* avatar_data);
 
-	/**
-	 * Fills Avatar status data.
-	 */
-	virtual void fillStatusData(const LLAvatarData* avatar_data);
-
 	/*virtual*/ void resetControls();
 
 protected:
-
-	void onStatusChanged();
 	void onStatusMessageChanged();
-
-private:
-
-	LLComboBox* mStatusCombobox;
 };
 
 /**
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index 37e92b8ba003be5e4cf432e214f1fb86919eaf0e..0ff3bb30dce6efb91b8bca5005627090efe9daa3 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -383,6 +383,31 @@ LLEditWearableDictionary::PickerControlEntry::PickerControlEntry(ETextureIndex t
 {
 }
 
+/**
+ * Class to prevent hack in LLButton's constructor and use paddings declared in xml.
+ */
+class LLLabledBackButton : public LLButton
+{
+public:
+	struct Params : public LLInitParam::Block<Params, LLButton::Params>
+	{
+		Params() {}
+	};
+protected:
+	friend class LLUICtrlFactory;
+	LLLabledBackButton(const Params&);
+};
+
+static LLDefaultChildRegistry::Register<LLLabledBackButton> labeled_back_btn("labeled_back_button");
+
+LLLabledBackButton::LLLabledBackButton(const Params& params)
+: LLButton(params)
+{
+	// override hack in LLButton's constructor to use paddings have been set in xml
+	setLeftHPad(params.pad_left);
+	setRightHPad(params.pad_right);
+}
+
 // Helper functions.
 static const texture_vec_t null_texture_vec;
 
@@ -650,6 +675,8 @@ BOOL LLPanelEditWearable::postBuild()
 	mBtnRevert->setClickedCallback(boost::bind(&LLPanelEditWearable::onRevertButtonClicked, this));
 
 	mBtnBack = getChild<LLButton>("back_btn");
+	mBackBtnLabel = mBtnBack->getLabelUnselected();
+	mBtnBack->setLabel(LLStringUtil::null);
 	// handled at appearance panel level?
 	//mBtnBack->setClickedCallback(boost::bind(&LLPanelEditWearable::onBackButtonClicked, this));
 
@@ -1018,6 +1045,7 @@ void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show)
 	if (show)
 	{
 		mPanelTitle->setText(title);
+		mPanelTitle->setToolTip(title);
 		mDescTitle->setText(description_title);
 		
 		// set name
@@ -1304,8 +1332,8 @@ void LLPanelEditWearable::getSortedParams(value_map_t &sorted_params, const std:
 	{
 		LLViewerVisualParam *param = (LLViewerVisualParam*) *iter;
 
-		if (param->getID() == -1
-			|| param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE 
+		if (param->getID() == -1 
+			|| !param->isTweakable()
 			|| param->getEditGroup() != edit_group 
 			|| !(param->getSex() & avatar_sex))
 		{
@@ -1359,6 +1387,28 @@ void LLPanelEditWearable::updateVerbs()
 		gSavedSettings.setU32("AvatarSex", (gAgentAvatarp->getSex() == SEX_MALE) );
 	}
 
+	// update back button and title according to dirty state.
+	static BOOL was_dirty = FALSE;
+	if (was_dirty != is_dirty) // to avoid redundant changes because this method is called from draw
+	{
+		static S32 label_width = mBtnBack->getFont()->getWidth(mBackBtnLabel);
+		const std::string& label = is_dirty ? mBackBtnLabel : LLStringUtil::null;
+		const S32 delta_width = is_dirty ? label_width : -label_width;
+
+		mBtnBack->setLabel(label);
+
+		// update rect according to label width
+		LLRect rect = mBtnBack->getRect();
+		rect.mRight += delta_width;
+		mBtnBack->setShape(rect);
+
+		// update title rect according to back button width
+		rect = mPanelTitle->getRect();
+		rect.mLeft += delta_width;
+		mPanelTitle->setShape(rect);
+
+		was_dirty = is_dirty;
+	}
 }
 
 void LLPanelEditWearable::configureAlphaCheckbox(LLVOAvatarDefines::ETextureIndex te, const std::string& name)
diff --git a/indra/newview/llpaneleditwearable.h b/indra/newview/llpaneleditwearable.h
index 61441435cd13f0286806415e3957e665e1dea7f2..bfce2ae56ed45ce2c54c6580ae2f171c4769ba40 100644
--- a/indra/newview/llpaneleditwearable.h
+++ b/indra/newview/llpaneleditwearable.h
@@ -120,6 +120,7 @@ class LLPanelEditWearable : public LLPanel
 	// these are constant no matter what wearable we're editing
 	LLButton *mBtnRevert;
 	LLButton *mBtnBack;
+	std::string mBackBtnLabel;
 
 	LLTextBox *mPanelTitle;
 	LLTextBox *mDescTitle;
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index b50c6442e1aafa678d985b8cab4493071fb6f97c..7d5be39074b7b176090c906f1ff1870364149177 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -790,7 +790,6 @@ void LLPanelFace::getState()
 		if(texture_ctrl)
 		{
 			texture_ctrl->setImageAssetID( LLUUID::null );
-			texture_ctrl->setFallbackImageName( "locked_image.j2c" );
 			texture_ctrl->setEnabled( FALSE );  // this is a LLUICtrl, but we don't want it to have keyboard focus so we add it as a child, not a ctrl.
 // 			texture_ctrl->setValid(FALSE);
 		}
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index 6411cd802daa3b93f4c96bb20f3a43d2b03a163b..7f4609b83eac6280049324f019c463cc2b7a3780 100644
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
@@ -224,8 +224,8 @@ void LLPanelNearByMedia::reshape(S32 width, S32 height, BOOL called_from_parent)
 {
 	LLPanel::reshape(width, height, called_from_parent);
 
-	LLButton* more_less_btn = getChild<LLButton>("more_less_btn");
-	if (more_less_btn->getValue().asBoolean())
+	LLButton* more_btn = findChild<LLButton>("more_btn");
+	if (more_btn && more_btn->getValue().asBoolean())
 	{
 		mMoreRect = getRect();
 	}
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index 30221da12a8d1091007341215cf6511a16a4c207..a1b3114bb4889644a35b9698108dd96e3674bfe4 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -172,7 +172,6 @@ BOOL	LLPanelObject::postBuild()
 	//--------------------------------------------------------
 		
 	// material type popup
-	mLabelMaterial = getChild<LLTextBox>("label material");
 	mComboMaterial = getChild<LLComboBox>("material");
 	childSetCommitCallback("material",onCommitMaterial,this);
 	mComboMaterial->removeall();
@@ -189,7 +188,6 @@ BOOL	LLPanelObject::postBuild()
 	mComboMaterialItemCount = mComboMaterial->getItemCount();
 
 	// Base Type
-	mLabelBaseType = getChild<LLTextBox>("label basetype");
 	mComboBaseType = getChild<LLComboBox>("comboBaseType");
 	childSetCommitCallback("comboBaseType",onCommitParametric,this);
 
@@ -548,7 +546,6 @@ void LLPanelObject::getState( )
 	if (editable && single_volume && material_same)
 	{
 		mComboMaterial->setEnabled( TRUE );
-		mLabelMaterial->setEnabled( TRUE );
 		if (material_code == LL_MCODE_LIGHT)
 		{
 			if (mComboMaterial->getItemCount() == mComboMaterialItemCount)
@@ -570,7 +567,6 @@ void LLPanelObject::getState( )
 	else
 	{
 		mComboMaterial->setEnabled( FALSE );
-		mLabelMaterial->setEnabled( FALSE );	
 	}
 	//----------------------------------------------------------------------------
 
@@ -979,7 +975,6 @@ void LLPanelObject::getState( )
 	}
 
 	// Update field enablement
-	mLabelBaseType	->setEnabled( enabled );
 	mComboBaseType	->setEnabled( enabled );
 
 	mLabelCut		->setEnabled( enabled );
@@ -1910,12 +1905,10 @@ void LLPanelObject::clearCtrls()
 	mCheckCastShadows->setEnabled( FALSE );
 #endif
 	mComboMaterial	->setEnabled( FALSE );
-	mLabelMaterial	->setEnabled( FALSE );
 	// Disable text labels
 	mLabelPosition	->setEnabled( FALSE );
 	mLabelSize		->setEnabled( FALSE );
 	mLabelRotation	->setEnabled( FALSE );
-	mLabelBaseType	->setEnabled( FALSE );
 	mLabelCut		->setEnabled( FALSE );
 	mLabelHollow	->setEnabled( FALSE );
 	mLabelHoleType	->setEnabled( FALSE );
diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h
index 58d9fe9b76e6a82b719e7aeab63a1e3a84b6ffb4..b4e1eee8fbe3bb17c185c5a46eea34c4b56dc6f9 100644
--- a/indra/newview/llpanelobject.h
+++ b/indra/newview/llpanelobject.h
@@ -101,11 +101,9 @@ class LLPanelObject : public LLPanel
 protected:
 	S32				mComboMaterialItemCount;
 
-	LLTextBox*		mLabelMaterial;
 	LLComboBox*		mComboMaterial;
 	
 	// Per-object options
-	LLTextBox*		mLabelBaseType;
 	LLComboBox*		mComboBaseType;
 
 	LLTextBox*		mLabelCut;
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index ea7d23333310b0043fb8830a88119f242747c2a2..154471787358aa9a12ae5dd5432bf3f13bb62b34 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -387,6 +387,7 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mWearableItemsList = getChild<LLInventoryItemsList>("list_view");
 	mWearableItemsList->setCommitOnSelectionChange(true);
 	mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this));
+	mWearableItemsList->setDoubleClickCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this));
 
 	mSaveComboBtn.reset(new LLSaveOutfitComboBtn(this));
 	return TRUE;
@@ -404,6 +405,10 @@ void LLPanelOutfitEdit::onOpen(const LLSD& key)
 		displayCurrentOutfit();
 		mInitialized = true;
 	}
+
+	showAddWearablesPanel(false);
+	mWearableItemsList->resetSelection();
+	mInventoryItemsPanel->clearSelection();
 }
 
 void LLPanelOutfitEdit::moveWearable(bool closer_to_body)
@@ -564,7 +569,8 @@ void LLPanelOutfitEdit::onSearchEdit(const std::string& string)
 
 void LLPanelOutfitEdit::onPlusBtnClicked(void)
 {
-	LLUUID selected_id = getSelectedItemUUID();
+	LLUUID selected_id;
+	getCurrentItemUUID(selected_id);
 
 	if (selected_id.isNull()) return;
 
@@ -651,30 +657,31 @@ void LLPanelOutfitEdit::onEditWearableClicked(void)
 
 void LLPanelOutfitEdit::onInventorySelectionChange()
 {
-	LLUUID item_uuid = getSelectedItemUUID();
-	if (item_uuid.isNull())
+	uuid_vec_t selected_items;
+	getSelectedItemsUUID(selected_items);
+	if (selected_items.empty())
 	{
 		return;
 	}
+	uuid_vec_t::iterator worn_item = std::find_if(selected_items.begin(), selected_items.end(), boost::bind(&get_is_item_worn, _1));
+	bool can_add = ( worn_item == selected_items.end() );
 
-	LLViewerInventoryItem* item(gInventory.getItem(item_uuid));
-	if (!item)
-	{
-		return;
-	}
+	mPlusBtn->setEnabled(can_add);
+
+	LLViewerInventoryItem* first_item(gInventory.getItem(selected_items.front()));
 
-	switch (item->getType())
+	if (can_add && 
+		first_item &&
+		selected_items.size() == 1 && 
+		first_item->getType() == LLAssetType::AT_BODYPART)
 	{
-	case LLAssetType::AT_BODYPART:
 		mPlusBtn->setToolTip(getString("replace_body_part"));
-		break;
-	case LLAssetType::AT_CLOTHING:
-	case LLAssetType::AT_OBJECT:
+	}
+	else
+	{
 		mPlusBtn->setToolTip(LLStringUtil::null);
-	default:
-		break;
 	}
-	
+
 	/* Removing add to look inline button (not part of mvp for viewer 2)
 	LLRect btn_rect(current_item->getLocalRect().mRight - 50,
 					current_item->getLocalRect().mTop,
@@ -931,16 +938,15 @@ void LLPanelOutfitEdit::onOutfitChanging(bool started)
 	indicator->setVisible(started);
 }
 
-LLUUID LLPanelOutfitEdit::getSelectedItemUUID()
+void LLPanelOutfitEdit::getCurrentItemUUID(LLUUID& selected_id)
 {
-	LLUUID selected_id;
 	if (mInventoryItemsPanel->getVisible())
 	{
 		LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
-		if (!curr_item) return selected_id;
+		if (!curr_item) return;
 
 		LLFolderViewEventListener* listenerp  = curr_item->getListener();
-		if (!listenerp) return selected_id;
+		if (!listenerp) return;
 
 		selected_id = listenerp->getUUID();
 	}
@@ -948,8 +954,27 @@ LLUUID LLPanelOutfitEdit::getSelectedItemUUID()
 	{
 		selected_id = mWearableItemsList->getSelectedUUID();
 	}
+}
+
+
+void LLPanelOutfitEdit::getSelectedItemsUUID(uuid_vec_t& uuid_list)
+{
+	if (mInventoryItemsPanel->getVisible())
+	{
+		std::set<LLUUID> item_set = mInventoryItemsPanel->getRootFolder()->getSelectionList();
+
+		std::for_each(item_set.begin(), item_set.end(), boost::bind( &uuid_vec_t::push_back, &uuid_list, _1));
+	}
+	else if (mWearablesListViewPanel->getVisible())
+	{
+		std::vector<LLSD> item_set;
+		mWearableItemsList->getSelectedValues(item_set);
+
+		std::for_each(item_set.begin(), item_set.end(), boost::bind( &uuid_vec_t::push_back, &uuid_list, boost::bind(&LLSD::asUUID, _1 )));
+
+	}
 
-	return selected_id;
+//	return selected_id;
 }
 
 
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index aa5d00903ae2abd03b3067b8a081ea820b8ccb18..de1bf87fb32fb0c1353267e0f28ceb467e403a9a 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -192,7 +192,8 @@ class LLPanelOutfitEdit : public LLPanel
 	void onAddMoreButtonClicked();
 	void showFilteredWearablesListView(LLWearableType::EType type);
 	void onOutfitChanging(bool started);
-	LLUUID getSelectedItemUUID();
+	void getSelectedItemsUUID(uuid_vec_t& uuid_list);
+	void getCurrentItemUUID(LLUUID& selected_id);
 
 	LLTextBox*			mCurrentOutfitName;
 	LLTextBox*			mStatus;
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 2f1cad8a75db178eecf75257296add305714f440..076e6485a8c0e2d17fc2b624dce31804b6134d60 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -169,7 +169,14 @@ void LLPanelOutfitsInventory::onSearchEdit(const std::string& string)
 
 void LLPanelOutfitsInventory::onWearButtonClick()
 {
-	mMyOutfitsPanel->performAction("replaceoutfit");
+	if (mMyOutfitsPanel->hasItemSelected())
+	{
+		mMyOutfitsPanel->wearSelectedItems();
+	}
+	else
+	{
+		mMyOutfitsPanel->performAction("replaceoutfit");
+	}
 }
 
 bool LLPanelOutfitsInventory::onSaveCommit(const LLSD& notification, const LLSD& response)
diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp
index 6985b73200bd57d18c342605b825aab70abf1b83..1446088c4fe24ec6a166f260479aaed18c1556b4 100644
--- a/indra/newview/llpanelplace.cpp
+++ b/indra/newview/llpanelplace.cpp
@@ -342,7 +342,6 @@ void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region,
 		mDescEditor->setText(getString("server_update_text"));
 	}
 	mSnapshotCtrl->setImageAssetID(LLUUID::null);
-	mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
 }
 
 // static
diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp
index f6133d4446eabe8c84e729539e88295f1c2bfcc6..db305b25facff4a1cb49664b050542f191a25604 100644
--- a/indra/newview/llpanelplaceinfo.cpp
+++ b/indra/newview/llpanelplaceinfo.cpp
@@ -110,7 +110,6 @@ void LLPanelPlaceInfo::resetLocation()
 	mDescEditor->setText(loading);
 
 	mSnapshotCtrl->setImageAssetID(LLUUID::null);
-	mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
 }
 
 //virtual
diff --git a/indra/newview/llpanelvolumepulldown.cpp b/indra/newview/llpanelvolumepulldown.cpp
index ae52bd3703f95b9ff438f9a1cee676471a973342..7d70a8a891383653958d60503580eeaf9190234a 100644
--- a/indra/newview/llpanelvolumepulldown.cpp
+++ b/indra/newview/llpanelvolumepulldown.cpp
@@ -44,7 +44,7 @@
 #include "lltabcontainer.h"
 #include "llfloaterreg.h"
 #include "llfloaterpreference.h"
-#include "llslider.h"
+#include "llsliderctrl.h"
 
 /* static */ const F32 LLPanelVolumePulldown::sAutoCloseFadeStartTimeSec = 4.0f;
 /* static */ const F32 LLPanelVolumePulldown::sAutoCloseTotalTimeSec = 5.0f;
@@ -66,7 +66,7 @@ LLPanelVolumePulldown::LLPanelVolumePulldown()
 BOOL LLPanelVolumePulldown::postBuild()
 {
 	// set the initial volume-slider's position to reflect reality
-	LLSlider* volslider =  getChild<LLSlider>( "mastervolume" );
+	LLSliderCtrl* volslider =  getChild<LLSliderCtrl>( "mastervolume" );
 	volslider->setValue(gSavedSettings.getF32("AudioLevelMaster"));
 
 	return LLPanel::postBuild();
diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp
index 63b6fe5ef0e4fcd2a0a7e967d9fe5cb35b19eec4..de59af49da49aec2c0785308cae6c3253c490a82 100644
--- a/indra/newview/llsidepanelinventory.cpp
+++ b/indra/newview/llsidepanelinventory.cpp
@@ -71,8 +71,8 @@ BOOL LLSidepanelInventory::postBuild()
 		mShareBtn = mInventoryPanel->getChild<LLButton>("share_btn");
 		mShareBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShareButtonClicked, this));
 		
-		LLButton* shop_btn = mInventoryPanel->getChild<LLButton>("shop_btn");
-		shop_btn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShopButtonClicked, this));
+		mShopBtn = mInventoryPanel->getChild<LLButton>("shop_btn");
+		mShopBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShopButtonClicked, this));
 
 		mWearBtn = mInventoryPanel->getChild<LLButton>("wear_btn");
 		mWearBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onWearButtonClicked, this));
@@ -265,6 +265,7 @@ void LLSidepanelInventory::updateVerbs()
 	mPlayBtn->setEnabled(FALSE);
  	mTeleportBtn->setVisible(FALSE);
  	mTeleportBtn->setEnabled(FALSE);
+ 	mShopBtn->setVisible(TRUE);
 
 	mShareBtn->setEnabled(canShare());
 
@@ -283,16 +284,19 @@ void LLSidepanelInventory::updateVerbs()
 		case LLInventoryType::IT_ATTACHMENT:
 			mWearBtn->setVisible(TRUE);
 			mWearBtn->setEnabled(TRUE);
+		 	mShopBtn->setVisible(FALSE);
 			break;
 		case LLInventoryType::IT_SOUND:
 		case LLInventoryType::IT_GESTURE:
 		case LLInventoryType::IT_ANIMATION:
 			mPlayBtn->setVisible(TRUE);
 			mPlayBtn->setEnabled(TRUE);
+		 	mShopBtn->setVisible(FALSE);
 			break;
 		case LLInventoryType::IT_LANDMARK:
 			mTeleportBtn->setVisible(TRUE);
 			mTeleportBtn->setEnabled(TRUE);
+		 	mShopBtn->setVisible(FALSE);
 			break;
 		default:
 			break;
diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h
index 13275d14c05a3bb096df824e05d88b40f67c8c2e..951fdd630ca5c921b9252177a3060ada2030cf40 100644
--- a/indra/newview/llsidepanelinventory.h
+++ b/indra/newview/llsidepanelinventory.h
@@ -94,6 +94,7 @@ class LLSidepanelInventory : public LLPanel
 	LLButton*					mPlayBtn;
 	LLButton*					mTeleportBtn;
 	LLButton*					mOverflowBtn;
+	LLButton*					mShopBtn;
 
 };
 
diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp
index 0ec351965af40a23937591b96cbb7b1ade18ebf1..6ccd89dddb948d871352337f03eb995b04cca6c9 100644
--- a/indra/newview/llsidepaneliteminfo.cpp
+++ b/indra/newview/llsidepaneliteminfo.cpp
@@ -131,7 +131,6 @@ BOOL LLSidepanelItemInfo::postBuild()
 	getChild<LLUICtrl>("CheckNextOwnerTransfer")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitPermissions, this));
 	// Mark for sale or not, and sale info
 	getChild<LLUICtrl>("CheckPurchase")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleInfo, this));
-	getChild<LLUICtrl>("RadioSaleType")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleType, this));
 	// "Price" label for edit
 	getChild<LLUICtrl>("Edit Cost")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleInfo, this));
 	refresh();
@@ -189,7 +188,6 @@ void LLSidepanelItemInfo::refresh()
 			"CheckNextOwnerCopy",
 			"CheckNextOwnerTransfer",
 			"CheckPurchase",
-			"RadioSaleType",
 			"Edit Cost"
 		};
 
@@ -364,7 +362,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
 		"CheckNextOwnerTransfer",
 		"CheckPurchase",
 		"SaleLabel",
-		"RadioSaleType",
 		"combobox sale copy",
 		"Edit Cost",
 		"TextPrice"
@@ -559,7 +556,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
 		childSetEnabled("CheckNextOwnerCopy",(base_mask & PERM_COPY) && !cannot_restrict_permissions);
 		childSetEnabled("CheckNextOwnerTransfer",(next_owner_mask & PERM_COPY) && !cannot_restrict_permissions);
 
-		childSetEnabled("RadioSaleType",is_complete && is_for_sale);
 		childSetEnabled("TextPrice",is_complete && is_for_sale);
 		childSetEnabled("Edit Cost",is_complete && is_for_sale);
 	}
@@ -573,7 +569,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
 		childSetEnabled("CheckNextOwnerCopy",FALSE);
 		childSetEnabled("CheckNextOwnerTransfer",FALSE);
 
-		childSetEnabled("RadioSaleType",FALSE);
 		childSetEnabled("TextPrice",FALSE);
 		childSetEnabled("Edit Cost",FALSE);
 	}
@@ -586,17 +581,14 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
 	childSetValue("CheckNextOwnerCopy",LLSD(BOOL(next_owner_mask & PERM_COPY)));
 	childSetValue("CheckNextOwnerTransfer",LLSD(BOOL(next_owner_mask & PERM_TRANSFER)));
 
-	LLRadioGroup* radioSaleType = getChild<LLRadioGroup>("RadioSaleType");
 	if (is_for_sale)
 	{
-		radioSaleType->setSelectedIndex((S32)sale_info.getSaleType() - 1);
 		S32 numerical_price;
 		numerical_price = sale_info.getSalePrice();
 		childSetText("Edit Cost",llformat("%d",numerical_price));
 	}
 	else
 	{
-		radioSaleType->setSelectedIndex(-1);
 		childSetText("Edit Cost",llformat("%d",0));
 	}
 }
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 8c8fbdc88ccd9fb0fc81e18e14c4ee9ebf565286..c02559b2093b9712720276ddeb6e7224e6fc65b5 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -121,7 +121,6 @@ const U32 LLStatusBar::MAX_DATE_STRING_LENGTH = 2000;
 
 LLStatusBar::LLStatusBar(const LLRect& rect)
 :	LLPanel(),
-	mTextHealth(NULL),
 	mTextTime(NULL),
 	mSGBandwidth(NULL),
 	mSGPacketLoss(NULL),
@@ -181,11 +180,8 @@ BOOL LLStatusBar::postBuild()
 	// build date necessary data (must do after panel built)
 	setupDate();
 
-	mTextHealth = getChild<LLTextBox>("HealthText" );
 	mTextTime = getChild<LLTextBox>("TimeText" );
 	
-	getChild<LLUICtrl>("buycurrency")->setCommitCallback( 
-		boost::bind(&LLStatusBar::onClickBuyCurrency, this));
 	getChild<LLUICtrl>("buyL")->setCommitCallback(
 		boost::bind(&LLStatusBar::onClickBuyCurrency, this));
 
@@ -328,24 +324,12 @@ void LLStatusBar::refresh()
 			BOOL flash = S32(mHealthTimer->getElapsedSeconds() * ICON_FLASH_FREQUENCY) & 1;
 			childSetVisible("health", flash);
 		}
-		mTextHealth->setVisible(TRUE);
 
 		// Health
 		childGetRect( "health", buttonRect );
 		r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight());
 		childSetRect("health", r);
 		x += buttonRect.getWidth();
-
-		const S32 health_width = S32( LLFontGL::getFontSansSerifSmall()->getWidth(std::string("100%")) );
-		r.set(x, y+TEXT_HEIGHT - 2, x+health_width, y);
-		mTextHealth->setRect(r);
-		x += health_width;
-	}
-	else
-	{
-		// invisible if region doesn't allow damage
-		childSetVisible("health", false);
-		mTextHealth->setVisible(FALSE);
 	}
 
 	mSGBandwidth->setVisible(net_stats_visible);
@@ -444,8 +428,6 @@ void LLStatusBar::sendMoneyBalanceRequest()
 void LLStatusBar::setHealth(S32 health)
 {
 	//llinfos << "Setting health to: " << buffer << llendl;
-	mTextHealth->setText(llformat("%d%%", health));
-
 	if( mHealth > health )
 	{
 		if (mHealth > (health + gSavedSettings.getF32("UISndHealthReductionThreshold")))
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index e5240fcc3e40ab3463c7bdd550f3460a677b7928..32f29e9e1c8ed4ce0028284a9e8693d00383d131 100644
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
@@ -105,7 +105,6 @@ class LLStatusBar
 	static void onClickMediaToggle(void* data);
 
 private:
-	LLTextBox	*mTextHealth;
 	LLTextBox	*mTextTime;
 
 	LLStatGraph *mSGBandwidth;
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index 5d51e32515c69c818ee56dc4bfa9a7c8c8d85336..46bd55de43b0ea18b86b106983f321aa08a8ca95 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -341,7 +341,8 @@ BOOL LLTexLayerSetBuffer::isReadyToUpload() const
 {
 	if (!mNeedsUpload) return FALSE; // Don't need to upload if we haven't requested one.
 	if (!gAgentQueryManager.hasNoPendingQueries()) return FALSE; // Can't upload if there are pending queries.
-	
+	if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures()) return FALSE; // Don't upload if avatar is using composites.
+
 	// If we requested an upload and have the final LOD ready, then upload.
 	const BOOL can_highest_lod = mTexLayerSet->isLocalTextureDataFinal();
 	if (can_highest_lod) return TRUE;
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index a1ab051021222c2bd94609cc7473860109161f1d..f3530b69db0449972a38f3a84782e77670c454f1 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -100,7 +100,7 @@ class LLFloaterTexturePicker : public LLFloater
 		PermissionMask immediate_filter_perm_mask,
 		PermissionMask non_immediate_filter_perm_mask,
 		BOOL can_apply_immediately,
-		const std::string& fallback_image_name);
+		LLUIImagePtr fallback_image_name);
 
 	virtual ~LLFloaterTexturePicker();
 
@@ -153,7 +153,7 @@ class LLFloaterTexturePicker : public LLFloater
 	LLTextureCtrl*		mOwner;
 
 	LLUUID				mImageAssetID; // Currently selected texture
-	std::string			mFallbackImageName; // What to show if currently selected texture is null.
+	LLUIImagePtr		mFallbackImage; // What to show if currently selected texture is null.
 
 	LLUUID				mWhiteImageAssetID;
 	LLUUID				mSpecialCurrentImageAssetID;  // Used when the asset id has no corresponding texture in the user's inventory.
@@ -183,11 +183,11 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
 	PermissionMask immediate_filter_perm_mask,
 	PermissionMask non_immediate_filter_perm_mask,
 	BOOL can_apply_immediately,
-	const std::string& fallback_image_name)
+	LLUIImagePtr fallback_image)
 :	LLFloater(LLSD()),
 	mOwner( owner ),
 	mImageAssetID( owner->getImageAssetID() ),
-	mFallbackImageName( fallback_image_name ),
+	mFallbackImage( fallback_image ),
 	mWhiteImageAssetID( gSavedSettings.getString( "UIImgWhiteUUID" ) ),
 	mOriginalImageAssetID(owner->getImageAssetID()),
 	mLabel(label),
@@ -533,11 +533,6 @@ void LLFloaterTexturePicker::draw()
 			mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES);
 			mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
 		}
-		else if (!mFallbackImageName.empty())
-		{
-			mTexturep = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName);
-			mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
-		}
 
 		if (mTentativeLabel)
 		{
@@ -578,13 +573,10 @@ void LLFloaterTexturePicker::draw()
 
 			// Pump the priority
 			mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) );
-
-			// Draw Tentative Label over the image
-			if( mOwner->getTentative() && !mViewModel->isDirty() )
-			{
-				mTentativeLabel->setVisible( TRUE );
-				drawChild(mTentativeLabel);
-			}
+		}
+		else if (!mFallbackImage.isNull())
+		{
+			mFallbackImage->draw(interior);
 		}
 		else
 		{
@@ -593,6 +585,13 @@ void LLFloaterTexturePicker::draw()
 			// Draw X
 			gl_draw_x(interior, LLColor4::black );
 		}
+
+		// Draw Tentative Label over the image
+		if( mOwner->getTentative() && !mViewModel->isDirty() )
+		{
+			mTentativeLabel->setVisible( TRUE );
+			drawChild(mTentativeLabel);
+		}
 	}
 }
 
@@ -875,7 +874,8 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p)
 	mShowLoadingPlaceholder( TRUE ),
 	mImageAssetID(p.image_id),
 	mDefaultImageAssetID(p.default_image_id),
-	mDefaultImageName(p.default_image_name)
+	mDefaultImageName(p.default_image_name),
+	mFallbackImage(p.fallback_image)
 {
 	setAllowNoTexture(p.allow_no_texture);
 	setCanApplyImmediately(p.can_apply_immediately);
@@ -1019,7 +1019,7 @@ void LLTextureCtrl::showPicker(BOOL take_focus)
 			mImmediateFilterPermMask,
 			mNonImmediateFilterPermMask,
 			mCanApplyImmediately,
-			mFallbackImageName);
+			mFallbackImage);
 
 		mFloaterHandle = floaterp->getHandle();
 
@@ -1223,12 +1223,6 @@ void LLTextureCtrl::draw()
 
 		mTexturep = texture;
 	}
-	else if (!mFallbackImageName.empty())
-	{
-		// Show fallback image.
-		mTexturep = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName);
-		mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
-	}
 	else//mImageAssetID == LLUUID::null
 	{
 		mTexturep = NULL;
@@ -1252,6 +1246,10 @@ void LLTextureCtrl::draw()
 		gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep);
 		mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) );
 	}
+	else if (!mFallbackImage.isNull())
+	{
+		mFallbackImage->draw(interior);
+	}
 	else
 	{
 		gl_rect_2d( interior, LLColor4::grey, TRUE );
diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h
index bcd0a083f2be6f12d096bd6f30da2a8bcd60b124..b5dfa1b9489447352d330c04387aaf57830a8ce1 100644
--- a/indra/newview/lltexturectrl.h
+++ b/indra/newview/lltexturectrl.h
@@ -78,6 +78,7 @@ class LLTextureCtrl
 														// only on DnD or when OK is pressed in the picker
 		Optional<S32>			label_width;
 		Optional<LLUIColor>		border_color;
+		Optional<LLUIImage*>	fallback_image;
 		
 		Optional<LLTextBox::Params>	multiselect_text,
 									caption_text;
@@ -93,6 +94,7 @@ class LLTextureCtrl
 			no_commit_on_selection("no_commit_on_selection", false),
 		    label_width("label_width", -1),
 			border_color("border_color"),
+			fallback_image("fallback_image"),
 			multiselect_text("multiselect_text"),
 			caption_text("caption_text"),
 			border("border")
@@ -152,9 +154,6 @@ class LLTextureCtrl
 
 	const std::string&	getDefaultImageName() const					{ return mDefaultImageName; }
 
-	void			setFallbackImageName( const std::string& name ) { mFallbackImageName = name; }			
-	const std::string& 	getFallbackImageName() const { return mFallbackImageName; }	   
-
 	void			setCaption(const std::string& caption);
 	void			setCanApplyImmediately(BOOL b);
 
@@ -192,32 +191,32 @@ class LLTextureCtrl
 	BOOL doDrop(LLInventoryItem* item);
 
 private:
-	drag_n_drop_callback	 mDragCallback;
-	drag_n_drop_callback	 mDropCallback;
-	commit_callback_t		 mOnCancelCallback;
-	commit_callback_t		 mOnSelectCallback;
+	drag_n_drop_callback	 	mDragCallback;
+	drag_n_drop_callback	 	mDropCallback;
+	commit_callback_t		 	mOnCancelCallback;
+	commit_callback_t		 	mOnSelectCallback;
 	LLPointer<LLViewerFetchedTexture> mTexturep;
-	LLUIColor				 mBorderColor;
-	LLUUID					 mImageItemID;
-	LLUUID					 mImageAssetID;
-	LLUUID					 mDefaultImageAssetID;
-	std::string				 mFallbackImageName;
-	std::string				 mDefaultImageName;
-	LLHandle<LLFloater>			 mFloaterHandle;
-	LLTextBox*				 mTentativeLabel;
-	LLTextBox*				 mCaption;
-	std::string				 mLabel;
-	BOOL					 mAllowNoTexture; // If true, the user can select "none" as an option
-	PermissionMask			 mImmediateFilterPermMask;
-	PermissionMask			 mNonImmediateFilterPermMask;
-	BOOL					 mCanApplyImmediately;
-	BOOL					 mCommitOnSelection;
-	BOOL					 mNeedsRawImageData;
-	LLViewBorder*			 mBorder;
-	BOOL					 mValid;
-	BOOL					 mShowLoadingPlaceholder;
-	std::string				 mLoadingPlaceholderString;
-	S32						 mLabelWidth;
+	LLUIColor				 	mBorderColor;
+	LLUUID					 	mImageItemID;
+	LLUUID					 	mImageAssetID;
+	LLUUID					 	mDefaultImageAssetID;
+	LLUIImagePtr				mFallbackImage;
+	std::string					mDefaultImageName;
+	LLHandle<LLFloater>			mFloaterHandle;
+	LLTextBox*				 	mTentativeLabel;
+	LLTextBox*				 	mCaption;
+	std::string				 	mLabel;
+	BOOL					 	mAllowNoTexture; // If true, the user can select "none" as an option
+	PermissionMask			 	mImmediateFilterPermMask;
+	PermissionMask			 	mNonImmediateFilterPermMask;
+	BOOL					 	mCanApplyImmediately;
+	BOOL					 	mCommitOnSelection;
+	BOOL					 	mNeedsRawImageData;
+	LLViewBorder*			 	mBorder;
+	BOOL					 	mValid;
+	BOOL					 	mShowLoadingPlaceholder;
+	std::string				 	mLoadingPlaceholderString;
+	S32						 	mLabelWidth;
 };
 
 // XUI HACK: When floaters converted, switch this file to lltexturepicker.h/cpp
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 3dce4ce0bc5a5bbe9fb29c6a5f6e0ffe38b6d2d5..316588c9824ec58536a5df8a101f7074dc6ade65 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2076,7 +2076,8 @@ void LLVOAvatar::computeBodySize()
 				 	ankle.mV[VZ] * knee_scale.mV[VZ] -
 				 	foot.mV[VZ] * ankle_scale.mV[VZ];
 
-	mBodySize.mV[VZ] = mPelvisToFoot +
+	LLVector3 new_body_size;
+	new_body_size.mV[VZ] = mPelvisToFoot +
 					   // the sqrt(2) correction below is an approximate
 					   // correction to get to the top of the head
 					   F_SQRT2 * (skull.mV[VZ] * head_scale.mV[VZ]) + 
@@ -2086,8 +2087,17 @@ void LLVOAvatar::computeBodySize()
 					   torso.mV[VZ] * pelvis_scale.mV[VZ]; 
 
 	// TODO -- measure the real depth and width
-	mBodySize.mV[VX] = DEFAULT_AGENT_DEPTH;
-	mBodySize.mV[VY] = DEFAULT_AGENT_WIDTH;
+	new_body_size.mV[VX] = DEFAULT_AGENT_DEPTH;
+	new_body_size.mV[VY] = DEFAULT_AGENT_WIDTH;
+
+	if (new_body_size != mBodySize)
+	{
+		mBodySize = new_body_size;
+		if (isSelf())
+		{	// notify simulator of change in size
+			gAgent.sendAgentSetAppearance();
+		}
+	}
 
 /* debug spam
 	std::cout << "skull = " << skull << std::endl;				// adebug
@@ -2528,7 +2538,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
 				 param;
 				 param = getNextVisualParam())
 			{
-				if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+				if (param->isTweakable())
 				{
 					param->stopAnimating(FALSE);
 				}
@@ -2551,7 +2561,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
 					 param;
 					 param = getNextVisualParam())
 				{
-					if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+					if (param->isTweakable())
 					{
 						param->animate(morph_amt, FALSE);
 					}
@@ -6703,7 +6713,7 @@ bool LLVOAvatar::visualParamWeightsAreDefault()
 	     param;
 	     param = getNextVisualParam())
 	{
-		if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+		if (param->isTweakable())
 		{
 			LLViewerVisualParam* vparam = dynamic_cast<LLViewerVisualParam*>(param);
 			llassert(vparam);
@@ -6813,7 +6823,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
 		{
 			for( S32 i = 0; i < num_blocks; i++ )
 			{
-				while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) )
+				while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
 				{
 					param = getNextVisualParam();
 				}
@@ -6846,7 +6856,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
 			}
 		}
 
-		const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE);
+		const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
 		if (num_blocks != expected_tweakable_count)
 		{
 			llinfos << "Number of params in AvatarAppearance msg (" << num_blocks << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << ").  Processing what we can.  object: " << getID() << llendl;
@@ -7133,7 +7143,7 @@ void LLVOAvatar::dumpArchetypeXML( void* )
 		{
 			LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
 			if( (viewer_param->getWearableType() == type) && 
-				(viewer_param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) )
+				(viewer_param->isTweakable() ) )
 			{
 				apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
 								viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight());
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 91af5fefdee7d586d964a429ba78d795170661a2..982d9c375cdb999aae652965d6c487a7e55258da 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -2261,6 +2261,16 @@ void LLVOAvatarSelf::processRebakeAvatarTextures(LLMessageSystem* msg, void**)
 	}
 }
 
+BOOL LLVOAvatarSelf::isUsingBakedTextures() const
+{
+	// Composite textures are used during appearance mode.
+	if (gAgentCamera.cameraCustomizeAvatar())
+		return FALSE;
+
+	return TRUE;
+}
+
+
 void LLVOAvatarSelf::forceBakeAllTextures(bool slam_for_debug)
 {
 	llinfos << "TAT: forced full rebake. " << llendl;
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index 55b4fd87c821a0f0d0525e8cee259cbd3aae8faa..630afe7a0fa6dcdd91f886f6e4a48cfd98a53363 100644
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -217,6 +217,7 @@ class LLVOAvatarSelf :
 	void				setCachedBakedTexture(LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid);
 	void				forceBakeAllTextures(bool slam_for_debug = false);
 	static void			processRebakeAvatarTextures(LLMessageSystem* msg, void**);
+	BOOL				isUsingBakedTextures() const; // e.g. false if in appearance edit mode
 protected:
 	/*virtual*/ void	removeMissingBakedTextures();
 
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp
index 46c736c853f61216b11524f1f5cc96690f813a90..2eb233ddd9e7cdba083cbe5f34ff7b6913bdc5dc 100644
--- a/indra/newview/llwearable.cpp
+++ b/indra/newview/llwearable.cpp
@@ -483,7 +483,7 @@ BOOL LLWearable::isOldVersion() const
 		param;
 		param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
 	{
-		if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
+		if( (param->getWearableType() == mType) && (param->isTweakable() ) )
 		{
 			param_count++;
 			if( !is_in_map(mVisualParamIndexMap, param->getID() ) )
@@ -534,7 +534,7 @@ BOOL LLWearable::isDirty() const
 		param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
 	{
 		if( (param->getWearableType() == mType) 
-			&& (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) 
+			&& (param->isTweakable() ) 
 			&& !param->getCrossWearable())
 		{
 			F32 current_weight = getVisualParamWeight(param->getID());
@@ -588,7 +588,7 @@ void LLWearable::setParamsToDefaults()
 
 	for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
 	{
-		if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
+		if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->isTweakable() ) )
 		{
 			setVisualParamWeight(param->getID(),param->getDefaultWeight(), FALSE);
 		}
@@ -692,7 +692,7 @@ void LLWearable::removeFromAvatar( LLWearableType::EType type, BOOL upload_bake
 	// Pull params
 	for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
 	{
-		if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
+		if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->isTweakable() ) )
 		{
 			S32 param_id = param->getID();
 			gAgentAvatarp->setVisualParamWeight( param_id, param->getDefaultWeight(), upload_bake );
diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp
index da15b936978ddcd07fc516c9f567dfe9690ebfaf..6bb3e7fb6410852ebc70ec893b4bb56a53676f1f 100644
--- a/indra/newview/llwearableitemslist.cpp
+++ b/indra/newview/llwearableitemslist.cpp
@@ -393,9 +393,9 @@ bool LLWearableItemTypeNameComparator::doCompare(const LLPanelInventoryListItemB
 		return item_type_order1 < item_type_order2;
 	}
 
-	if (item_type_order1 & TLO_NOT_CLOTHING)
+	if (item_type_order1 & TLO_SORTABLE_BY_NAME)
 	{
-		// If both items are of the same asset type except AT_CLOTHING
+		// If both items are of the same asset type except AT_CLOTHING and AT_BODYPART
 		// we can compare them by name.
 		return LLWearableItemNameComparator::doCompare(wearable_item1, wearable_item2);
 	}
@@ -662,7 +662,8 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
 	setMenuItemVisible(menu, "wear_add",			mask == MASK_CLOTHING && n_worn == 0);
 	setMenuItemEnabled(menu, "wear_add",			n_items == 1 && canAddWearable(ids.front()));
 	setMenuItemVisible(menu, "wear",				n_worn == 0);
-	setMenuItemVisible(menu, "edit",				!standalone && mask & (MASK_CLOTHING|MASK_BODYPART) && n_worn == n_items);
+	//visible only when one item selected and this item is worn
+	setMenuItemVisible(menu, "edit",				!standalone && mask & (MASK_CLOTHING|MASK_BODYPART) && n_worn == n_items && n_worn == 1);
 	setMenuItemEnabled(menu, "edit",				n_editable == 1 && n_worn == 1 && n_items == 1);
 	setMenuItemVisible(menu, "create_new",			mask & (MASK_CLOTHING|MASK_BODYPART) && n_items == 1);
 	setMenuItemVisible(menu, "show_original",		!standalone);
diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h
index eb82418454dff78671eb9df1a42b7be8465378f1..d16a2a89c8ed4fe3284dba1f3f86d00d6c825100 100644
--- a/indra/newview/llwearableitemslist.h
+++ b/indra/newview/llwearableitemslist.h
@@ -299,12 +299,12 @@ class LLWearableItemTypeNameComparator : public LLWearableItemNameComparator
 private:
 	enum ETypeListOrder
 	{
-		TLO_ATTACHMENT	= 0x01,
-		TLO_CLOTHING	= 0x02,
+		TLO_CLOTHING	= 0x01,
+		TLO_ATTACHMENT	= 0x02,
 		TLO_BODYPART	= 0x04,
 		TLO_UNKNOWN		= 0x08,
 
-		TLO_NOT_CLOTHING = TLO_ATTACHMENT | TLO_BODYPART | TLO_UNKNOWN
+		TLO_SORTABLE_BY_NAME = TLO_ATTACHMENT | TLO_UNKNOWN
 	};
 
 	static LLWearableItemTypeNameComparator::ETypeListOrder getTypeListOrder(LLAssetType::EType item_type);
diff --git a/indra/newview/llwearabletype.cpp b/indra/newview/llwearabletype.cpp
index 2a14ace38c5d73dd528c4f4138322d754bd56a7d..b9b48fd55a7e014aaafc1a3b8fda3a069d2f1406 100644
--- a/indra/newview/llwearabletype.cpp
+++ b/indra/newview/llwearabletype.cpp
@@ -85,7 +85,6 @@ LLWearableDictionary::LLWearableDictionary()
 	addEntry(LLWearableType::WT_TATTOO,       new WearableEntry("tattoo",      "New Tattoo",		LLAssetType::AT_CLOTHING, 	LLInventoryIcon::ICONNAME_CLOTHING_TATTOO));
 	addEntry(LLWearableType::WT_INVALID,      new WearableEntry("invalid",     "Invalid Wearable", 	LLAssetType::AT_NONE, 		LLInventoryIcon::ICONNAME_NONE));
 	addEntry(LLWearableType::WT_NONE,      	  new WearableEntry("none",        "Invalid Wearable", 	LLAssetType::AT_NONE, 		LLInventoryIcon::ICONNAME_NONE));
-	addEntry(LLWearableType::WT_COUNT,        new WearableEntry("count",        "Invalid Wearable", 	LLAssetType::AT_NONE, 		LLInventoryIcon::ICONNAME_NONE));
 }
 
 // static
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index cf632c085f6342ab73c2319b7fe26d7ef31ce421..40e882757f5ba176b76e866f44a54de5b9ce027c 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -68,9 +68,9 @@ with the same filename but different name
 
   <texture name="BackArrow_Off" file_name="icons/BackArrow_Off.png" preload="false" />
 
-  <texture name="BackButton_Off" file_name="icons/back_arrow_off.png" preload="false" />
-  <texture name="BackButton_Over" file_name="icons/back_arrow_over.png" preload="false" />
-  <texture name="BackButton_Press" file_name="icons/back_arrow_press.png" preload="false" />
+  <texture name="BackButton_Off" file_name="icons/back_arrow_off.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
+  <texture name="BackButton_Over" file_name="icons/back_arrow_over.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
+  <texture name="BackButton_Press" file_name="icons/back_arrow_press.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
 
   <texture name="Blank" file_name="Blank.png" preload="false" />
 
@@ -579,6 +579,10 @@ with the same filename but different name
   <texture name="scrollbutton_left_in_blue.tga" file_name="widgets/ScrollArrow_Left_Over_Opaque.png" />
   <texture name="scrollbutton_right_out_blue.tga" file_name="widgets/ScrollArrow_Right_Opaque.png" />
   <texture name="scrollbutton_right_in_blue.tga" file_name="widgets/ScrollArrow_Right_Over_Opaque.png" />
+  <texture name="scrollbutton_up_out_blue.tga" file_name="widgets/ScrollArrow_Up_Opaque.png" />
+  <texture name="scrollbutton_up_in_blue.tga" file_name="widgets/ScrollArrow_Up_Over_Opaque.png" />
+  <texture name="scrollbutton_down_out_blue.tga" file_name="widgets/ScrollArrow_Down_Opaque.png" />
+  <texture name="scrollbutton_down_in_blue.tga" file_name="widgets/ScrollArrow_Down_Over_Opaque.png" />
 
   <texture name="up_arrow.tga" file_name="up_arrow.png" />
   <texture name="down_arrow.tga" file_name="down_arrow.png" />
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..a396380fb2bfafcf2bab04ae85dbd7e2212c2306
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..9568dea78aa4ebbda1a1740e8d5f23f3a1d54030
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..67a7a5568b452080cd27fb4d76f85ae7117ccbe7
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..0cc8c4404baf314e51b2142cdc1e5a92a1232746
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png differ
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 89f9f87043f06ba7f164714472ca4517e408995d..b18894d4782982c01eda853fe00d697410690ac9 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -28,8 +28,8 @@ Grafikkarten: [GRAPHICS_CARD]
 libcurl-Version: [LIBCURL_VERSION]
 J2C-Decoderversion: [J2C_VERSION]
 Audio-Treiberversion: [AUDIO_DRIVER_VERSION]
-Qt Webkit Version: [QT_WEBKIT_VERSION]
-Vivox-Version: [VIVOX_VERSION]
+Qt Webkit-Version: [QT_WEBKIT_VERSION]
+Voice-Serverversion: [VOICE_VERSION]
 	</floater.string>
 	<floater.string name="none">
 		(keiner)
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index 3026ff64b21fc1731d8dc01a9a54e6285f4c4939..5f00fc4f77d09ddc74cd69bb27f6774952ca2ceb 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -62,6 +62,9 @@
 			<panel.string name="no_selection_text">
 				Keine Parzelle ausgewählt.
 			</panel.string>
+			<panel.string name="time_stamp_template">
+				[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+			</panel.string>
 			<text name="Name:">
 				Name:
 			</text>
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
index 92c0c4a27ae2c0f8e07eeee184d713f87fe91b42..8235eacde0ab97d37e7c8f2015f7cf121fd9cba9 100644
--- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
@@ -3,46 +3,48 @@
 	<floater.string name="InvalidAvatar">
 		UNGÃœLTIGER AVATAR
 	</floater.string>
-	<text name="label" width="120">
-		Gebackene Texturen
-	</text>
-	<text name="composite_label" width="170">
-		Zusammengesetzte Texturen
-	</text>
-	<button label="Läd IDs in Konsole ab" label_selected="Abladen" name="Dump"/>
 	<scroll_container name="profile_scroll">
 		<panel name="scroll_content_panel">
-			<texture_picker label="Haare" name="hair-baked"/>
-			<texture_picker label="Haare" name="hair_grain"/>
-			<texture_picker label="Alpha: Haare" name="hair_alpha"/>
-			<texture_picker label="Kopf" name="head-baked"/>
-			<texture_picker label="Make-Up" name="head_bodypaint"/>
-			<texture_picker label="Kopf: Alpha" name="head_alpha"/>
-			<texture_picker label="Kopftattoo" name="head_tattoo"/>
-			<texture_picker label="Augen" name="eyes-baked"/>
-			<texture_picker label="Auge" name="eyes_iris"/>
-			<texture_picker label="Alpha: Augen" name="eyes_alpha"/>
-			<texture_picker label="Oberkörper" name="upper-baked"/>
-			<texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint" width=
-			"140"/>
-			<texture_picker label="Unterhemd" name="upper_undershirt"/>
-			<texture_picker label="Handschuhe" name="upper_gloves"/>
-			<texture_picker label="Hemd" name="upper_shirt"/>
-			<texture_picker label="Oberjacke" name="upper_jacket"/>
-			<texture_picker label="Alpha: Oben" name="upper_alpha"/>
-			<texture_picker label="Obere Tattoos" name="upper_tattoo"/>
-			<texture_picker label="Unterkörper" name="lower-baked"/>
-			<texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint" width=
-			"140"/>
-			<texture_picker label="Unterhose" name="lower_underpants"/>
-			<texture_picker label="Socken" name="lower_socks"/>
-			<texture_picker label="Schuhe" name="lower_shoes"/>
-			<texture_picker label="Hose" name="lower_pants"/>
-			<texture_picker label="Jacke" name="lower_jacket"/>
-			<texture_picker label="Alpha: Unten" name="lower_alpha"/>
-			<texture_picker label="Untere Tattoos" name="lower_tattoo"/>
-			<texture_picker label="Rock" name="skirt-baked"/>
-			<texture_picker label="Rock" name="skirt"/>
+			<text name="label">
+				Gebackene
+Texturen
+			</text>
+			<text name="composite_label">
+				Zusammengesetzte
+Texturen
+			</text>
+			<button label="IDs an Konsole ausgeben" label_selected="Abladen" name="Dump"/>
+			<panel name="scroll_content_panel">
+				<texture_picker label="Haare" name="hair-baked"/>
+				<texture_picker label="Haare" name="hair_grain"/>
+				<texture_picker label="Alpha: Haare" name="hair_alpha"/>
+				<texture_picker label="Kopf" name="head-baked"/>
+				<texture_picker label="Make-Up" name="head_bodypaint"/>
+				<texture_picker label="Kopf: Alpha" name="head_alpha"/>
+				<texture_picker label="Kopftätowierung" name="head_tattoo"/>
+				<texture_picker label="Augen" name="eyes-baked"/>
+				<texture_picker label="Auge" name="eyes_iris"/>
+				<texture_picker label="Alpha: Augen" name="eyes_alpha"/>
+				<texture_picker label="Oberkörper" name="upper-baked"/>
+				<texture_picker label="Oberkörperfarbe" name="upper_bodypaint"/>
+				<texture_picker label="Unterhemd" name="upper_undershirt"/>
+				<texture_picker label="Handschuhe" name="upper_gloves"/>
+				<texture_picker label="Hemd" name="upper_shirt"/>
+				<texture_picker label="Oberjacke" name="upper_jacket"/>
+				<texture_picker label="Alpha: Oben" name="upper_alpha"/>
+				<texture_picker label="Obere Tätowierung" name="upper_tattoo"/>
+				<texture_picker label="Unterkörper" name="lower-baked"/>
+				<texture_picker label="Unterkörperfarbe" name="lower_bodypaint"/>
+				<texture_picker label="Unterhose" name="lower_underpants"/>
+				<texture_picker label="Socken" name="lower_socks"/>
+				<texture_picker label="Schuhe" name="lower_shoes"/>
+				<texture_picker label="Hose" name="lower_pants"/>
+				<texture_picker label="Jacke" name="lower_jacket"/>
+				<texture_picker label="Alpha: Unten" name="lower_alpha"/>
+				<texture_picker label="Untere Tätowierung" name="lower_tattoo"/>
+				<texture_picker label="Rock" name="skirt-baked"/>
+				<texture_picker label="Rock" name="skirt"/>
+			</panel>
 		</panel>
 	</scroll_container>
 </floater>
diff --git a/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml
new file mode 100644
index 0000000000000000000000000000000000000000..38d3bdd77ff0cbd6099876572b56939eb958e024
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_buy_currency_html" title="WÄHRUNG KAUFEN"/>
diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml
index a9a314917720b3a2eb976c12b82ce58d0abafdef..130d3062d719505912192317e0f2d92c6c8ad0f1 100644
--- a/indra/newview/skins/default/xui/de/floater_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_map.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="Minikarte">
+<floater name="Map" title="">
 	<floater.string name="mini_map_north">
 		N
 	</floater.string>
diff --git a/indra/newview/skins/default/xui/de/floater_moveview.xml b/indra/newview/skins/default/xui/de/floater_moveview.xml
index b978322cefdf632e379bf52bbf185b3376bfc806..4333392582419ea7afa728ac68ee35ddf94b2798 100644
--- a/indra/newview/skins/default/xui/de/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/de/floater_moveview.xml
@@ -6,18 +6,48 @@
 	<string name="walk_back_tooltip">
 		Rückwärts gehen (Nach-Unten-Pfeil oder S drücken)
 	</string>
+	<string name="walk_left_tooltip">
+		Nach links gehen (Umschalt + Links-Pfeil oder A drücken)
+	</string>
+	<string name="walk_right_tooltip">
+		Nach rechts gehen (Umschalt + Rechts-Pfeil oder D drücken)
+	</string>
 	<string name="run_forward_tooltip">
 		Vorwärts rennen (Nach-oben-Pfeil oder W drücken)
 	</string>
 	<string name="run_back_tooltip">
 		Rückwärts rennen (Nach-Unten-Pfeil oder S drücken)
 	</string>
+	<string name="run_left_tooltip">
+		Nach links drehen (Umschalt + Links-Pfeil oder A drücken)
+	</string>
+	<string name="run_right_tooltip">
+		Nach rechts rennen (Umschalt + Rechts-Pfeil oder D drücken)
+	</string>
 	<string name="fly_forward_tooltip">
 		Vorwärts fliegen (Nach-oben-Pfeil oder W drücken)
 	</string>
 	<string name="fly_back_tooltip">
 		Rückwärts fliegen (Nach-Unten-Pfeil oder S drücken)
 	</string>
+	<string name="fly_left_tooltip">
+		Nach links fliegen (Umschalt + Links-Pfeil oder A drücken)
+	</string>
+	<string name="fly_right_tooltip">
+		Nach rechts fliegen (Umschalt + Rechts-Pfeil oder D drücken)
+	</string>
+	<string name="fly_up_tooltip">
+		Nach oben fliegen, „E&quot; drücken
+	</string>
+	<string name="fly_down_tooltip">
+		Nach unten fliegen, „C&quot; drücken
+	</string>
+	<string name="jump_tooltip">
+		Hüpfen (E drücken)
+	</string>
+	<string name="crouch_tooltip">
+		Ducken (C drücken)
+	</string>
 	<string name="walk_title">
 		Gehen
 	</string>
@@ -28,10 +58,12 @@
 		Fliegen
 	</string>
 	<panel name="panel_actions">
-		<button label="" label_selected="" name="turn left btn" tool_tip="Nach links (Links-Pfeil oder A drücken)"/>
-		<button label="" label_selected="" name="turn right btn" tool_tip="Nach rechts (Rechts-Pfeil oder D drücken)"/>
 		<button label="" label_selected="" name="move up btn" tool_tip="Nach oben fliegen, „E&quot; drücken"/>
+		<button label="" label_selected="" name="turn left btn" tool_tip="Nach links (Links-Pfeil oder A drücken)"/>
+		<joystick_slide name="move left btn" tool_tip="Nach links gehen (Umschalt + Links-Pfeil oder A drücken)"/>
 		<button label="" label_selected="" name="move down btn" tool_tip="Nach unten fliegen, „C&quot; drücken"/>
+		<button label="" label_selected="" name="turn right btn" tool_tip="Nach rechts (Rechts-Pfeil oder D drücken)"/>
+		<joystick_slide name="move right btn" tool_tip="Nach rechts fliegen (Umschalt + Rechts-Pfeil oder D drücken)"/>
 		<joystick_turn name="forward btn" tool_tip="Vorwärts gehen (Nach-oben-Pfeil oder W drücken)"/>
 		<joystick_turn name="backward btn" tool_tip="Rückwärts gehen (Nach-Unten-Pfeil oder S drücken)"/>
 	</panel>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
index 62f9e1e9e5fe79dc8e8bd1be5c0903774bb258ce..14e666fd2256c28b740f82120515261554cc920d 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
@@ -9,9 +9,6 @@
 	<floater.string name="Title">
 		Notizkarte: [NAME]
 	</floater.string>
-	<floater.string label="Speichern" label_selected="Speichern" name="Save">
-		Speichern
-	</floater.string>
 	<text name="desc txt">
 		Beschreibung:
 	</text>
@@ -19,4 +16,5 @@
 		Wird geladen...
 	</text_editor>
 	<button label="Speichern" label_selected="Speichern" name="Save"/>
+	<button label="Löschen" label_selected="Löschen" name="Delete"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index c5c11faf931cd03eb111e49c194423e37207161c..12ae9898c326e82ebdae21a63cc1a29150229408 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -67,8 +67,8 @@
 	<text name="RenderingCost" tool_tip="Zeigt die errechneten Wiedergabekosten für dieses Objekt">
 		þ: [COUNT]
 	</text>
-	<check_box name="checkbox uniform"/>
-	<text name="checkbox uniform label">
+	<check_box label="" name="checkbox uniform"/>
+	<text label="Beide Seiten dehnen" name="checkbox uniform label">
 		Beide Seiten dehnen
 	</text>
 	<check_box initial_value="true" label="Texturen dehnen" name="checkbox stretch textures"/>
diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
index 3af69d2f31e7532b8a5b329d68affb02bcdb88b7..85fc9ab74f6279f139f56600642215e4fd5df8f1 100644
--- a/indra/newview/skins/default/xui/de/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
@@ -5,7 +5,7 @@
 	<menu_item_call label="Abnehmen" name="Detach"/>
 	<menu_item_call label="Fallen lassen" name="Drop"/>
 	<menu_item_call label="Aufstehen" name="Stand Up"/>
-	<menu_item_call label="Mein Aussehen" name="Appearance..."/>
+	<menu_item_call label="Outfit ändern" name="Change Outfit"/>
 	<menu_item_call label="Meine Freunde" name="Friends..."/>
 	<menu_item_call label="Meine Gruppen" name="Groups..."/>
 	<menu_item_call label="Mein Profil" name="Profile..."/>
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_self.xml b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
index d310d10ea5d09d70a2268196db6924fe1261031b..160703bcf31cfd1c260dde5030e4672ae56b362e 100644
--- a/indra/newview/skins/default/xui/de/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
@@ -20,7 +20,9 @@
 		<context_menu label="Abnehmen â–¶" name="Object Detach"/>
 		<menu_item_call label="Alles abnehmen" name="Detach All"/>
 	</context_menu>
-	<menu_item_call label="Mein Aussehen" name="Appearance..."/>
+	<menu_item_call label="Outfit ändern" name="Chenge Outfit"/>
+	<menu_item_call label="Mein Outfit bearbeiten" name="Edit Outfit"/>
+	<menu_item_call label="Meine Form bearbeiten" name="Edit My Shape"/>
 	<menu_item_call label="Meine Freunde" name="Friends..."/>
 	<menu_item_call label="Meine Gruppen" name="Groups..."/>
 	<menu_item_call label="Mein Profil" name="Profile..."/>
diff --git a/indra/newview/skins/default/xui/de/menu_bottomtray.xml b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
index 3f12906adccb083a3515a7014ba84fbdac796524..6c4308286a6127315f61ef644ec6bba56a4d2564 100644
--- a/indra/newview/skins/default/xui/de/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
@@ -4,6 +4,11 @@
 	<menu_item_check label="Schaltfläche Bewegungssteuerung" name="ShowMoveButton"/>
 	<menu_item_check label="Schaltfläche Ansicht" name="ShowCameraButton"/>
 	<menu_item_check label="Schaltfläche Foto" name="ShowSnapshotButton"/>
+	<menu_item_check label="Schaltfläche „Seitenleiste“" name="ShowSidebarButton"/>
+	<menu_item_check label="Schaltfläche „Bauen“" name="ShowBuildButton"/>
+	<menu_item_check label="Schaltfläche „Suchen“" name="ShowSearchButton"/>
+	<menu_item_check label="Schaltfläche „Karte“" name="ShowWorldMapButton"/>
+	<menu_item_check label="Schaltfläche „Minikarte“" name="ShowMiniMapButton"/>
 	<menu_item_call label="Ausschneiden" name="NearbyChatBar_Cut"/>
 	<menu_item_call label="Kopieren" name="NearbyChatBar_Copy"/>
 	<menu_item_call label="Einfügen" name="NearbyChatBar_Paste"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
index a74c41bb0cef3870c25e04382ac386bd6d58ea69..b28e83c3e38aa2a7d03f57ea2d5bffa332a8f916 100644
--- a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <menu name="Gear Menu">
 	<menu_item_call label="Aufstehen" name="stand_up"/>
-	<menu_item_call label="Mein Aussehen" name="my_appearance"/>
+	<menu_item_call label="Outfit ändern" name="change_outfit"/>
 	<menu_item_call label="Mein Profil" name="my_profile"/>
 	<menu_item_call label="Meine Freunde" name="my_friends"/>
 	<menu_item_call label="Meine Gruppen" name="my_groups"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index f6139a0ea06f0c810e4b9a88b4537aa6f42723e2..dd49ab1c7e76a689c67b8d0bfdca88d698e3ebac 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
@@ -54,6 +54,7 @@
 	<menu_item_call label="Objekt löschen" name="Purge Item"/>
 	<menu_item_call label="Objekt wiederherstellen" name="Restore Item"/>
 	<menu_item_call label="Öffnen" name="Open"/>
+	<menu_item_call label="Original öffnen" name="Open Original"/>
 	<menu_item_call label="Eigenschaften" name="Properties"/>
 	<menu_item_call label="Umbenennen" name="Rename"/>
 	<menu_item_call label="Asset-UUID kopieren" name="Copy Asset UUID"/>
diff --git a/indra/newview/skins/default/xui/de/menu_participant_list.xml b/indra/newview/skins/default/xui/de/menu_participant_list.xml
index ca0d9f8c2deddea678d069e564e9ffcd63a4d3d6..d5281f0cb21a2fdbe2c6c090bbfa7600cb2449c5 100644
--- a/indra/newview/skins/default/xui/de/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/de/menu_participant_list.xml
@@ -14,8 +14,8 @@
 	<context_menu label="Moderator-Optionen &gt;" name="Moderator Options">
 		<menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/>
 		<menu_item_call label="Diesen Teilnehmer stummschalten" name="ModerateVoiceMuteSelected"/>
-		<menu_item_call label="Alle anderen stummschalten" name="ModerateVoiceMuteOthers"/>
 		<menu_item_call label="Stummschaltung für diesen Teilnehmer aufheben" name="ModerateVoiceUnMuteSelected"/>
-		<menu_item_call label="Stummschaltung für alle anderen aufheben" name="ModerateVoiceUnMuteOthers"/>
+		<menu_item_call label="Alle stummschalten" name="ModerateVoiceMute"/>
+		<menu_item_call label="Alle freischalten" name="ModerateVoiceUnmute"/>
 	</context_menu>
 </context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index 38ef1b0421c8832e40b6e9f2ff5782cf4bbe7335..0a2d5b472a176b8a7f4c182bc49245aa9e678d76 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -7,6 +7,7 @@
 		</menu_item_call>
 		<menu_item_call label="L$ kaufen" name="Buy and Sell L$"/>
 		<menu_item_call label="Mein Profil" name="Profile"/>
+		<menu_item_call label="Outfit ändern" name="ChangeOutfit"/>
 		<menu_item_check label="Mein Inventar" name="Inventory"/>
 		<menu_item_check label="Mein Inventar" name="ShowSidetrayInventory"/>
 		<menu_item_check label="Meine Gesten" name="Gestures"/>
@@ -169,6 +170,7 @@
 			<menu_item_check label="Flexible Objekte" name="Flexible Objects"/>
 		</menu>
 		<menu_item_check label="Mehrere Threads ausführen" name="Run Multiple Threads"/>
+		<menu_item_check label="Plugin Read Thread verwenden" name="Use Plugin Read Thread"/>
 		<menu_item_call label="Gruppen-Cache löschen" name="ClearGroupCache"/>
 		<menu_item_check label="Weiche Mausbewegung" name="Mouse Smoothing"/>
 		<menu label="Tastaturkürzel" name="Shortcuts">
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 408ece9690e298026ca30afbefc3f32eab6946e8..8380992d797bc8fd9a9f119b86079f93d8f8a9b2 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -333,6 +333,9 @@ Sie benötigen ein Benutzerkonto, um [SECOND_LIFE] betreten zu können. Möchten
 		</url>
 		<usetemplate name="okcancelbuttons" notext="Erneut versuchen" yestext="Neues Benutzerkonto anlegen"/>
 	</notification>
+	<notification name="InvalidCredentialFormat">
+		Sie müssen den Vor- und Nachnamen Ihres Avatars in das Feld Benutzername eingeben, und sich dann erneut anmelden.
+	</notification>
 	<notification name="AddClassified">
 		Anzeigen werden im Suchverzeichnis im Abschnitt „Anzeigen&quot; und auf [http://secondlife.com/community/classifieds secondlife.com] für eine Woche angezeigt.
 Füllen Sie Ihre Anzeige aus und klicken Sie auf &apos;Veröffentlichen...&apos;, um sie zum Verzeichnis hinzuzufügen.
@@ -618,6 +621,11 @@ Erwartet wurde [VALIDS]
 	<notification name="CannotEncodeFile">
 		Datei konnte nicht kodiert werden: [FILE]
 	</notification>
+	<notification name="CorruptedProtectedDataStore">
+		Ihre geschützten Daten konnten nicht gelesen werden, aus diesem Grund werden diese zurückgesetzt.
+   Dies kann passieren, wenn Sie die Netzwerkeinstellungen ändern.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="CorruptResourceFile">
 		Ressourcendatei beschädigt: [FILE]
 	</notification>
@@ -1003,6 +1011,12 @@ auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
 
 Geben sie einen höheren Betrag ein.
 	</notification>
+	<notification name="ConfirmItemDeleteHasLinks">
+		Mindestens eines Ihrer ausgewählten Objekte verfügt über verknüpfte Objekte.  Wenn Sie dieses Objekt löschen, funktionieren die Verknüpfungen nicht mehr.  Wir empfehlen Ihnen daher, diese Verknüpfungen zuerst zu löschen.
+
+Möchten Sie diese Objekte wirklich löschen?
+		<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+	</notification>
 	<notification name="ConfirmObjectDeleteLock">
 		Mindestens ein ausgewähltes Objekt ist gesperrt.
 
@@ -1153,6 +1167,42 @@ Bitte wählen Sie einen männlichen oder weiblichen Avatar.
 Sie können sich später noch umentscheiden.
 		<usetemplate name="okcancelbuttons" notext="Weiblich" yestext="Männlich"/>
 	</notification>
+	<notification name="CantTeleportToGrid">
+		Konnte nicht zu [SLURL] teleportieren, da dieser Standort sich auf einem anderen Grid ([GRID]) befindet. Sie befinden sich im Moment auf dem Grid ([CURRENT_GRID]).  Bitte schließen Sie Ihren Viewer und versuchen Sie es erneut.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
+	<notification name="GeneralCertificateError">
+		Eine Verbindung zum Server konnte nicht hergestellt werden.
+[REASON]
+
+SubjektName: [SUBJECT_NAME_STRING]
+Herausgeber: [ISSUER_NAME_STRING]
+Gültig ab: [VALID_FROM]
+Gültig bis: [VALID_TO]
+MD5 Fingerabdruck: [SHA1_DIGEST]
+SHA1 Fingerabdruck: [MD5_DIGEST]
+Verwendung: [KEYUSAGE]
+Erweiterte Verwendung: [EXTENDEDKEYUSAGE]
+Identifikation: [SUBJECTKEYIDENTIFIER]
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
+	<notification name="TrustCertificateError">
+		Die Zertifizierungsautorität für diesen Server ist unbekannt.
+
+Zertifikatsinformation:
+SubjektName: [SUBJECT_NAME_STRING]
+Herausgeber: [ISSUER_NAME_STRING]
+Gültig ab: [VALID_FROM]
+Gültig bis: [VALID_TO]
+MD5 Fingerabdruck: [SHA1_DIGEST]
+SHA1 Fingerabdruck: [MD5_DIGEST]
+Verwendung: [KEYUSAGE]
+Erweiterte Verwendung: [EXTENDEDKEYUSAGE]
+Identifikation: [SUBJECTKEYIDENTIFIER]
+
+Möchten Sie dieser Autorität vertrauen?
+		<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Vertrauen"/>
+	</notification>
 	<notification name="NotEnoughCurrency">
 		[NAME] [PRICE] L$  Sie haben nicht genügend L$, um diese Aktion auszuführen.
 	</notification>
@@ -2660,6 +2710,9 @@ Für folgende Einwohner:
 	<notification name="ItemsShared">
 		Objekte wurden erfolgreich freigegeben.
 	</notification>
+	<notification name="DeedToGroupFail">
+		Ãœbertragung an Gruppe ist fehlgeschlagen.
+	</notification>
 	<notification name="AvatarRezNotification">
 		(Seit [EXISTENCE] Sekunden inworld )
 Avatar &apos;[NAME]&apos; wurde in [TIME] Sekunden gerezzt.
@@ -2672,6 +2725,26 @@ Ihr Outfit wurde in [TIME] Sekunden gebacken.
 		(Seit [EXISTENCE] Sekunden inworld )
 Nach [TIME] Sekunden wurde eine Aktualisierung Ihres Aussehens gesendet.
 [STATUS]
+	</notification>
+	<notification name="AvatarRezCloudNotification">
+		(Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; wird als Wolke angezeigt.
+	</notification>
+	<notification name="AvatarRezArrivedNotification">
+		(Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; wird angezeigt.
+	</notification>
+	<notification name="AvatarRezLeftCloudNotification">
+		(Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; hat nach [TIME] Sekunden als Wolke die Welt verlassen.
+	</notification>
+	<notification name="AvatarRezEnteredAppearanceNotification">
+		(Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; befindet sich im Modus „Aussehen bearbeiten&quot;.
+	</notification>
+	<notification name="AvatarRezLeftAppearanceNotification">
+		(Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; hat Modus „Aussehen bearbeiten&quot; verlassen.
 	</notification>
 	<notification name="NoConnect">
 		Es gibt Probleme mit der Verbindung mit [PROTOCOL] [HOSTID].
@@ -2691,12 +2764,25 @@ Bitte überprüfen Sie Ihr Netzwerk- und Firewall-Setup.
 			<button name="OK" text="OK"/>
 		</form>
 	</notification>
+	<notification name="AvatarRezLeftNotification">
+		(Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; hat als vollständig gerezzter Avatar die Welt verlassen.
+	</notification>
 	<notification name="AvatarRezSelfBakeNotification">
 		(Seit [EXISTENCE] Sekunden inworld )
 Die [RESOLUTION]-gebakene Textur für &apos;[BODYREGION]&apos; wurde in [TIME] Sekunden hochgeladen.
 	</notification>
+	<notification name="ConfirmLeaveCall">
+		Möchten Sie dieses Gespräch wirklich verlassen ?
+		<usetemplate ignoretext="Bestätigen, bevor ich den Anruf verlasse." name="okcancelignore" notext="Nein" yestext="Ja"/>
+	</notification>
 	<notification name="ConfirmMuteAll">
-		<usetemplate ignoretext="Confirm before I mute all participants in a group call" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+		Die von Ihnen ausgewählten Einstellungen werden alle Teilnehmer eines Gruppengespräches stummschalten.
+Dies bedeutet, dass alle Einwohner, die später dem Gespräch beitreten,
+auch dann stummgeschaltet werden, wenn Sie den Anruf verlassen haben.
+
+Alle stummschalten?
+		<usetemplate ignoretext="Bestätigen, bevor alle Teilnehmer in einem Gruppengespräch stummgeschaltet werden." name="okcancelignore" notext="Abbrechen" yestext="OK"/>
 	</notification>
 	<global name="UnsupportedCPU">
 		- Ihre CPU-Geschwindigkeit entspricht nicht den Mindestanforderungen.
diff --git a/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..de764d802536dff05f2ee19232c0e22f96c295ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="wearable_item">
+	<text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4d7e65405a32ac69308ad5e65e2bc532b844c91e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="clothing_list_button_bar_panel">
+	<button label="Austauschen" name="switch_btn"/>
+	<button label="Einkaufen &gt;" name="bodyparts_shop_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_bottomtray.xml b/indra/newview/skins/default/xui/de/panel_bottomtray.xml
index 83f67344cac263743d8a88a2a14731cd985d7b89..ea15c88380205654b7ff25766df105625c8de509 100644
--- a/indra/newview/skins/default/xui/de/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/panel_bottomtray.xml
@@ -1,15 +1,11 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel name="bottom_tray">
-	<string name="SpeakBtnToolTip">
-		Schaltet Mikrofon ein/aus
-	</string>
-	<string name="VoiceControlBtnToolTip">
-		Voice-Chat-Steuerung anzeigen/ausblenden
-	</string>
+	<string name="SpeakBtnToolTip" value="Schaltet Mikrofon ein/aus"/>
+	<string name="VoiceControlBtnToolTip" value="Voice-Chat-Steuerung anzeigen/ausblenden"/>
 	<layout_stack name="toolbar_stack">
 		<layout_panel name="speak_panel">
 			<talk_button name="talk">
-				<speak_button label="Sprechen" label_selected="Sprechen" name="speak_btn" />
+				<speak_button label="Sprechen" label_selected="Sprechen" name="speak_btn"/>
 			</talk_button>
 		</layout_panel>
 		<layout_panel name="gesture_panel">
@@ -24,6 +20,21 @@
 		<layout_panel name="snapshot_panel">
 			<button label="" name="snapshots" tool_tip="Foto machen"/>
 		</layout_panel>
+		<layout_panel name="sidebar_btn_panel">
+			<button label="Seitenleiste" name="sidebar_btn" tool_tip="Seitenleiste anzeigen/ausblenden"/>
+		</layout_panel>
+		<layout_panel name="build_btn_panel">
+			<button label="Bauen" name="build_btn" tool_tip="Bauwerkzeuge ein-/ausblenden"/>
+		</layout_panel>
+		<layout_panel name="search_btn_panel">
+			<button label="Suche" name="search_btn" tool_tip="Suche anzeigen/ausblenden"/>
+		</layout_panel>
+		<layout_panel name="world_map_btn_panel">
+			<button label="Karte" name="world_map_btn" tool_tip="Karte ein-/ausblenden"/>
+		</layout_panel>
+		<layout_panel name="mini_map_btn_panel">
+			<button label="Minikarte" name="mini_map_btn" tool_tip="Minikarte ein-/ausblenden"/>
+		</layout_panel>
 		<layout_panel name="im_well_panel">
 			<chiclet_im_well name="im_well">
 				<button name="Unread IM messages" tool_tip="IMs"/>
diff --git a/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fc45c9ce79b4bfa333f5bfedae5b286468305c5d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="clothing_list_button_bar_panel">
+	<button label="Hinzufügen +" name="add_btn"/>
+	<button label="Einkaufen &gt;" name="clothing_shop_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..de764d802536dff05f2ee19232c0e22f96c295ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="wearable_item">
+	<text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_cof_wearables.xml b/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
new file mode 100644
index 0000000000000000000000000000000000000000..12294a43ce77988863fe7b5b990b09291fdc873d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="cof_wearables">
+	<accordion name="cof_wearables_accordion">
+		<accordion_tab name="tab_attachments" title="Anhänge"/>
+		<accordion_tab name="tab_clothing" title="Kleidung"/>
+		<accordion_tab name="tab_body_parts" title="Körperteile"/>
+	</accordion>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..91d90a5660a1af9dce63ce2a245c8e1859f8107d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="deletable_wearable_item">
+	<text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6af84de0c7bb9b6b09bcc86345aa13564e2ca26e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="dummy_clothing_item">
+	<text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shape.xml b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
index d04dba7a3bece0c45eaee08d3b3abbffd1444278..80d3b29cadbea1633f1d9f73c05b34c1398746cd 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
@@ -9,6 +9,7 @@
 	<string name="height">
 		Höhe:
 	</string>
+	<text name="avatar_height"/>
 	<panel label="Hemd" name="accordion_panel">
 		<accordion name="wearable_accordion">
 			<accordion_tab name="shape_body_tab" title="Körper"/>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
index 12649e925130f68b309b9463d611dc5af96593a8..830c7b0bb8d2ebc58e3e19ad32af44895298626b 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
@@ -4,5 +4,6 @@
 		<texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/>
 		<texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/>
 		<texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/>
+		<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
 	</panel>
 </panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
index 7294a0b34fb89337a1e13300face7b107ad97760..f23244e14d993a866e6f0849bdfc5b6e461211b8 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
@@ -93,6 +93,12 @@
 	<text name="edit_wearable_title" value="Form bearbeiten"/>
 	<panel label="Hemd" name="wearable_type_panel">
 		<text name="description_text" value="Form:"/>
+		<radio_group name="sex_radio">
+			<radio_item label="" name="sex_male" tool_tip="Männlich" value="1"/>
+			<radio_item label="" name="sex_female" tool_tip="Weiblich" value="0"/>
+		</radio_group>
+		<icon name="male_icon" tool_tip="Männlich"/>
+		<icon name="female_icon" tool_tip="Weiblich"/>
 	</panel>
 	<panel name="button_panel">
 		<button label="Speichern unter" name="save_as_button"/>
diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index 0c899469874596504e1611a50d9e6f8018ac373f..125bf1436e243a05c28726bae9d8a21f919327be 100644
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -6,6 +6,9 @@
 	<panel.string name="cant_view_group_land_text">
 		Sie sind nicht berechtigt, Landeigentum der Gruppe anzuzeigen.
 	</panel.string>
+	<panel.string name="epmty_view_group_land_text">
+		Keine Einträge
+	</panel.string>
 	<panel.string name="cant_view_group_accounting_text">
 		Sie sind nicht berechtigt, die Finanzinformationen der Gruppe anzuzeigen.
 	</panel.string>
diff --git a/indra/newview/skins/default/xui/de/panel_group_notices.xml b/indra/newview/skins/default/xui/de/panel_group_notices.xml
index cc5664bd97d09b52925e06bbff1a03892bd3f7ca..f45b5ea7af3d8f7d68c2c9aa4e0933dde3b1d972 100644
--- a/indra/newview/skins/default/xui/de/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_notices.xml
@@ -39,6 +39,7 @@ Maximal 200 pro Gruppe täglich
 		<text name="string">
 			Das Objekt hierhin ziehen und ablegen, um es anzuhängen:
 		</text>
+		<button label="Inventar" name="open_inventory" tool_tip="Inventar öffnen"/>
 		<button label="Entfernen" label_selected="Anhang entfernen" name="remove_attachment" tool_tip="Anhang von Ihrer Benachrichtigung entfernen"/>
 		<button label="Senden" label_selected="Senden" name="send_notice"/>
 		<group_drop_target name="drop_target" tool_tip="Ziehen Sie ein Objekt aus Ihrem Inventar auf dieses Feld, um es mit dieser Mitteilung zu versenden. Um das Objekt anhängen zu können, müssen Sie die Erlaubnis zum Kopieren und Übertragen besitzen."/>
diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml
index 2a6ea42c735df0f03a1da720f72398dcfe22c9a3..0f02de866b9a91a0a8f96b76cb8c4fe18d4335db 100644
--- a/indra/newview/skins/default/xui/de/panel_login.xml
+++ b/indra/newview/skins/default/xui/de/panel_login.xml
@@ -8,18 +8,15 @@
 	</panel.string>
 	<layout_stack name="login_widgets">
 		<layout_panel name="login">
-			<text name="first_name_text">
-				Vorname:
+			<text name="username_text">
+				Benutzername:
 			</text>
-			<line_editor label="Vorname" name="first_name_edit" tool_tip="[SECOND_LIFE] Vorname"/>
-			<text name="last_name_text">
-				Nachname:
-			</text>
-			<line_editor label="Nachname" name="last_name_edit" tool_tip="[SECOND_LIFE] Nachname"/>
+			<line_editor label="Benutzername" name="username_edit" tool_tip="[SECOND_LIFE]-Benutzername"/>
 			<text name="password_text">
 				Kennwort:
 			</text>
 			<check_box label="Kennwort merken" name="remember_check"/>
+			<button label="Anmelden" name="connect_btn"/>
 			<text name="start_location_text">
 				Hier anfangen:
 			</text>
@@ -28,7 +25,6 @@
 				<combo_box.item label="Mein Zuhause" name="MyHome"/>
 				<combo_box.item label="&lt;Region eingeben&gt;" name="Typeregionname"/>
 			</combo_box>
-			<button label="Anmelden" name="connect_btn"/>
 		</layout_panel>
 		<layout_panel name="links">
 			<text name="create_new_account_text">
diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
index d3eb9ae04c2ae0b5bfe0c9556657997a6170e7ab..2f00782ef081358521995937a24223057b7fffdb 100644
--- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
@@ -9,62 +9,20 @@
 	<text name="ItemcountText">
 		Objekte:
 	</text>
-	<menu_bar name="Inventory Menu">
-		<menu label="Datei" name="File">
-			<menu_item_call label="Öffnen" name="Open"/>
-			<menu label="Hochladen" name="upload">
-				<menu_item_call label="Bild ([COST] L$)..." name="Upload Image"/>
-				<menu_item_call label="Sound ([COST] L$)..." name="Upload Sound"/>
-				<menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
-				<menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/>
-			</menu>
-			<menu_item_call label="Neues Fenster" name="New Window"/>
-			<menu_item_call label="Filter anzeigen" name="Show Filters"/>
-			<menu_item_call label="Filter zurücksetzen" name="Reset Current"/>
-			<menu_item_call label="Alle Ordner schließen" name="Close All Folders"/>
-			<menu_item_call label="Papierkorb ausleeren" name="Empty Trash"/>
-			<menu_item_call label="Fundstücke ausleeren" name="Empty Lost And Found"/>
-		</menu>
-		<menu label="Erstellen" name="Create">
-			<menu_item_call label="Neuer Ordner" name="New Folder"/>
-			<menu_item_call label="Neues Skript" name="New Script"/>
-			<menu_item_call label="Neue Notizkarte" name="New Note"/>
-			<menu_item_call label="Neue Geste" name="New Gesture"/>
-			<menu label="Neue Kleider" name="New Clothes">
-				<menu_item_call label="Neues Hemd" name="New Shirt"/>
-				<menu_item_call label="Neue Hose" name="New Pants"/>
-				<menu_item_call label="Neue Schuhe" name="New Shoes"/>
-				<menu_item_call label="Neue Socken" name="New Socks"/>
-				<menu_item_call label="Neue Jacke" name="New Jacket"/>
-				<menu_item_call label="Neuer Rock" name="New Skirt"/>
-				<menu_item_call label="Neue Handschuhe" name="New Gloves"/>
-				<menu_item_call label="Neues Unterhemd" name="New Undershirt"/>
-				<menu_item_call label="Neue Unterhose" name="New Underpants"/>
-				<menu_item_call label="Neues Alpha" name="New Alpha"/>
-				<menu_item_call label="Neue Tätowierung" name="New Tattoo"/>
-			</menu>
-			<menu label="Neue Körperteile" name="New Body Parts">
-				<menu_item_call label="Neue Form/Gestalt" name="New Shape"/>
-				<menu_item_call label="Neue Haut" name="New Skin"/>
-				<menu_item_call label="Neues Haar" name="New Hair"/>
-				<menu_item_call label="Neue Augen" name="New Eyes"/>
-			</menu>
-		</menu>
-		<menu label="Sortieren" name="Sort">
-			<menu_item_check label="Nach Name" name="By Name"/>
-			<menu_item_check label="Nach Datum" name="By Date"/>
-			<menu_item_check label="Ordner immer nach Namen" name="Folders Always By Name"/>
-			<menu_item_check label="Systemordner nach oben" name="System Folders To Top"/>
-		</menu>
-	</menu_bar>
 	<filter_editor label="Inventar filtern" name="inventory search editor"/>
 	<tab_container name="inventory filter tabs">
 		<inventory_panel label="MEIN INVENTAR" name="All Items"/>
-		<inventory_panel label="AKTUELL" name="Recent Items"/>
+		<recent_inventory_panel label="AKTUELL" name="Recent Items"/>
 	</tab_container>
-	<panel name="bottom_panel">
-		<button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
-		<button name="add_btn" tool_tip="Neues Objekt hinzufügen"/>
-		<dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
-	</panel>
+	<layout_stack name="bottom_panel">
+		<layout_panel name="options_gear_btn_panel">
+			<button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
+		</layout_panel>
+		<layout_panel name="add_btn_panel">
+			<button name="add_btn" tool_tip="Neues Objekt hinzufügen"/>
+		</layout_panel>
+		<layout_panel name="trash_btn_panel">
+			<dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
+		</layout_panel>
+	</layout_stack>
 </panel>
diff --git a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
index 91ba94b3d609478174d8c23b0d047aad17aca42e..60f8ad2331dc8ecbcbdc0b3d7d3f406e6d5d1da1 100644
--- a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
@@ -2,6 +2,8 @@
 <!-- Side tray Outfit Edit panel -->
 <panel label="Outfit bearbeiten" name="outfit_edit">
 	<string name="No Outfit" value="Kein Outfit"/>
+	<string name="unsaved_changes" value="Ungespeicherte Änderungen"/>
+	<string name="now_editing" value="Wird bearbeitet"/>
 	<panel.string name="not_available">
 		k.A.
 	</panel.string>
diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml
index 59cc3a8b70698ab5719f0e51b0af3581f635681d..6db4cf76f1feb368b2a983d266f92474ad140ad6 100644
--- a/indra/newview/skins/default/xui/de/panel_people.xml
+++ b/indra/newview/skins/default/xui/de/panel_people.xml
@@ -2,9 +2,9 @@
 <!-- Side tray panel -->
 <panel label="Leute" name="people_panel">
 	<string name="no_recent_people" value="Hier sind keine Leute. Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/search/people Suche] oder die [secondlife:///app/worldmap Karte]."/>
-	<string name="no_filtered_recent_people" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche]."/>
+	<string name="no_filtered_recent_people" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people/[SEARCH_TERM] Suche]."/>
 	<string name="no_one_near" value="Es ist niemand in der Nähe. Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/search/people Suche] oder die [secondlife:///app/worldmap Karte]."/>
-	<string name="no_one_filtered_near" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche]."/>
+	<string name="no_one_filtered_near" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people/[SEARCH_TERM] Suche]."/>
 	<string name="no_friends_online" value="Keine Freunde online"/>
 	<string name="no_friends" value="Keine Freunde"/>
 	<string name="no_friends_msg">
@@ -12,11 +12,11 @@
 Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
 	</string>
 	<string name="no_filtered_friends_msg">
-		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche].
+		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people/[SEARCH_TERM] Suche].
 	</string>
 	<string name="people_filter_label" value="Nach Leuten filtern"/>
 	<string name="groups_filter_label" value="Nach Gruppen filtern"/>
-	<string name="no_filtered_groups_msg" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/groups Suche]."/>
+	<string name="no_filtered_groups_msg" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/groups/[SEARCH_TERM] Suche]."/>
 	<string name="no_groups_msg" value="Suchen Sie nach Gruppen? Versuchen Sie es mit der [secondlife:///app/search/groups Suche]."/>
 	<filter_editor label="Filter" name="filter_input"/>
 	<tab_container name="tabs">
@@ -55,7 +55,7 @@ Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
 		<button label="Profil" name="view_profile_btn" tool_tip="Bilder, Gruppen und andere Einwohner-Informationen anzeigen"/>
 		<button label="IM" name="im_btn" tool_tip="Instant Messenger öffnen"/>
 		<button label="Anrufen" name="call_btn" tool_tip="Diesen Einwohner anrufen"/>
-		<button label="Teilen" name="share_btn"/>
+		<button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/>
 		<button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/>
 		<button label="Gruppenprofil" name="group_info_btn" tool_tip="Gruppeninformationen anzeigen"/>
 		<button label="Gruppen-Chat" name="chat_btn" tool_tip="Chat öffnen"/>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
index 52e616a402ce69bb43e94e7c9ee5419744821bb1..7b6918ae24432b792d3548b76d640d4dcfad01db 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
@@ -13,7 +13,7 @@
 	</text>
 	<check_box label="Bauen/Bearbeiten" name="edit_camera_movement" tool_tip="Automatische Kamerapositionierung bei Wechsel in und aus dem Bearbeitungsmodus verwenden"/>
 	<check_box label="Aussehen" name="appearance_camera_movement" tool_tip="Automatische Kamerapositionierung im Bearbeitenmodus verwenden"/>
-	<check_box initial_value="true" label="Sidebar" name="appearance_sidebar_positioning" tool_tip="Use automatic camera positioning for sidebar"/>
+	<check_box initial_value="true" label="Seitenleiste" name="appearance_sidebar_positioning" tool_tip="Automatische Kameraposition für Seitenleiste verwenden"/>
 	<check_box label="Mich im Mouselook anzeigen" name="first_person_avatar_visible"/>
 	<check_box label="Mit Pfeiltasten bewegen" name="arrow_keys_move_avatar_check"/>
 	<check_box label="2-mal-drücken-halten, um zu rennen" name="tap_tap_hold_to_run"/>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index bf150daf872741d9f23535185289d4b008a0fdec..5c91b34a21f43245e201e8a7d6097734b407fda7 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -45,7 +45,7 @@
 	</text>
 	<check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/>
 	<check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/>
-	<check_box label="Kompakten Text-Chatverlauf aktivieren" name="plain_text_chat_history"/>
+	<check_box label="Kompakten IM- und Text-Chatverlauf aktivieren" name="plain_text_chat_history"/>
 	<text name="show_ims_in_label">
 		IMs anzeigen in:
 	</text>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
index 16b4598486a9900117598c9b222833a0eb95e715..879262df9b88c5887fa9e052d5b0bc064599f629 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
@@ -1,19 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel label="Grafik" name="Display panel">
-	<text name="WindowSizeLabel">
-		Fenstergröße:
-	</text>
-	<check_box label="Vollbildmodus verwenden" name="windowed mode"/>
-	<combo_box left="115" name="windowsize combo">
-		<combo_box.item label="640x480" name="640x480"/>
-		<combo_box.item label="800x600" name="800x600"/>
-		<combo_box.item label="720x480 (NTSC)" name="720x480"/>
-		<combo_box.item label="768x576 (PAL)" name="768x576"/>
-		<combo_box.item label="1024x768" name="1024x768"/>
-	</combo_box>
-	<text name="UI Size:">
-		UI-Größe:
-	</text>
 	<text name="QualitySpeed">
 		Qualität und Geschwindigkeit:
 	</text>
@@ -63,6 +49,10 @@
 			m
 		</text>
 		<slider label="Max. Partikelzahl:" name="MaxParticleCount"/>
+		<slider label="Max. Avatarsichtweite:" name="MaxAvatarDrawDistance"/>
+		<text name="DrawDistanceMeterText3">
+			m
+		</text>
 		<slider label="Post-Processing-Qualität:" name="RenderPostProcess"/>
 		<text name="MeshDetailText">
 			Gitterdetails:
@@ -98,8 +88,8 @@
 			Beleuchtungsdetails:
 		</text>
 		<radio_group name="LightingDetailRadio">
-			<radio_item label="Nur Sonne und Mond" name="SunMoon"/>
-			<radio_item label="Lokale Lichtquellen" name="LocalLights"/>
+			<radio_item label="Nur Sonne und Mond" name="SunMoon" value="0"/>
+			<radio_item label="Lokale Lichtquellen" name="LocalLights" value="1"/>
 		</radio_group>
 		<text name="TerrainDetailText">
 			Terraindetails:
diff --git a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
index 7a280bd7ffc88fe0dfc933d4e38d954951c76b2c..f8e3db341a8d1b67e3079602715e6308981b8b99 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
@@ -1,16 +1,17 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <panel label="Outfits" name="appearance panel">
 	<string name="No Outfit" value="Kein Outfit"/>
+	<string name="Unsaved Changes" value="Ungespeicherte Änderungen"/>
+	<string name="Now Wearing" value="Aktuelles Outfit..."/>
 	<panel name="panel_currentlook">
-		<button label="Bearbeiten" name="editappearance_btn"/>
-		<text name="currentlook_title">
-			(nicht gespeichert)
+		<button label="B" name="editappearance_btn"/>
+		<button label="Ö" name="openoutfit_btn"/>
+		<text name="currentlook_status">
+			(Status)
 		</text>
 		<text name="currentlook_name">
 			MyOutfit With a really Long Name like MOOSE
 		</text>
 	</panel>
 	<filter_editor label="Outfits filtern" name="Filter"/>
-	<button label="Anziehen" name="wear_btn"/>
-	<button label="Neues Outfit" name="newlook_btn"/>
 </panel>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
index 96dd18185460b3b490b5b937e32077fea09a3c0a..f9bf2fe08123427efc07024f92af1c153b1723ec 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
@@ -4,7 +4,7 @@
 		<panel name="button_panel">
 			<button label="Profil" name="info_btn" tool_tip="Objektprofil anzeigen"/>
 			<button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/>
-			<button label="Shop" name="shop_btn" tool_tip="Marktplatz-Webseite öffnen"/>
+			<button label="Einkaufen" name="shop_btn" tool_tip="Marktplatz-Webseite öffnen"/>
 			<button label="Anziehen" name="wear_btn" tool_tip="Ausgewähltes Outfit tragen"/>
 			<button label="Wiedergeben" name="play_btn"/>
 			<button label="Teleportieren" name="teleport_btn" tool_tip="Zu ausgewähltem Standort teleportieren"/>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index bc4f20df26b7d56835b85734c43060d23d449a36..f5882adb79c384e9e6e7d1f59cdbefa92102c0d6 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -100,9 +100,21 @@
 	<string name="LoginDownloadingClothing">
 		Kleidung wird geladen...
 	</string>
+	<string name="InvalidCertificate">
+		Der Server hat ein ungültiges oder korruptes Zertifikate zurückgegeben. Bitte kontaktieren Sie den Grid-Administrator.
+	</string>
+	<string name="CertInvalidHostname">
+		Ein ungültiger Hostname wurde verwendet, um auf den Server zuzugreifen. Bitte überprüfen Sie Ihre SLURL oder den Grid-Hostnamen.
+	</string>
 	<string name="CertExpired">
 		Das vom Grid ausgegebene Zertifikate ist abgelaufen.  Bitte überprüfen Sie Ihre Systemuhr oder kontaktieren Sie Ihren Grid-Administrator.
 	</string>
+	<string name="CertKeyUsage">
+		Das vom Server ausgegebene Zertifikat konnte nicht für SSL verwendet werden.  Bitte kontaktieren Sie Ihren Grid-Administrator.
+	</string>
+	<string name="CertBasicConstraints">
+		In der Zertifikatskette des Servers befanden sich zu viele Zertifikate.  Bitte kontaktieren Sie Ihren Grid-Administrator.
+	</string>
 	<string name="CertInvalidSignature">
 		Die Zertifikatsunterschrift des Gridservers konnte nicht bestätigt werden.  Bitte kontaktieren Sie Ihren Grid-Administrator.
 	</string>
@@ -852,6 +864,42 @@
 	<string name="invalid">
 		ungültig
 	</string>
+	<string name="shirt_not_worn">
+		Hemd nicht getragen
+	</string>
+	<string name="pants_not_worn">
+		Hosen nicht getragen
+	</string>
+	<string name="shoes_not_worn">
+		Schuhe nicht getragen
+	</string>
+	<string name="socks_not_worn">
+		Socken nicht getragen
+	</string>
+	<string name="jacket_not_worn">
+		Jacke nicht getragen
+	</string>
+	<string name="gloves_not_worn">
+		Handschuhe nicht getragen
+	</string>
+	<string name="undershirt_not_worn">
+		Unterhemd nicht getragen
+	</string>
+	<string name="underpants_not_worn">
+		Unterhose nicht getragen
+	</string>
+	<string name="skirt_not_worn">
+		Rock nicht getragen
+	</string>
+	<string name="alpha_not_worn">
+		Alpha nicht getragen
+	</string>
+	<string name="tattoo_not_worn">
+		Tätowierung nicht getragen
+	</string>
+	<string name="invalid_not_worn">
+		ungültig
+	</string>
 	<string name="NewWearable">
 		Neue/r/s [WEARABLE_ITEM]
 	</string>
@@ -925,7 +973,10 @@
 		ESC drücken, um zur Normalansicht zurückzukehren
 	</string>
 	<string name="InventoryNoMatchingItems">
-		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all Suche].
+		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all/[SEARCH_TERM] Suche].
+	</string>
+	<string name="PlacesNoMatchingItems">
+		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/places/[SEARCH_TERM] Suche].
 	</string>
 	<string name="FavoritesNoMatchingItems">
 		Landmarke hier hin ziehen, um diese hinzuzufügen.
@@ -961,6 +1012,7 @@
 	<string name="Wave" value=" Winken"/>
 	<string name="HelloAvatar" value=" Hallo Avatar!"/>
 	<string name="ViewAllGestures" value="  Alle anzeigen &gt;&gt;"/>
+	<string name="GetMoreGestures" value="Mehr &gt;&gt;"/>
 	<string name="Animations" value=" Animationen,"/>
 	<string name="Calling Cards" value=" Visitenkarten,"/>
 	<string name="Clothing" value=" Kleidung,"/>
@@ -1579,7 +1631,7 @@
 		Der Einwohner/Die Einwohnerin ist „beschäftigt”, d.h. er/sie möchte im Moment nicht gestört werden.  Ihre Nachricht wird dem Einwohner/der Einwohnerin als IM angezeigt, und kann später beantwortet werden.
 	</string>
 	<string name="MuteByName">
-		(nach Namen)
+		(Nach Namen)
 	</string>
 	<string name="MuteAgent">
 		(Einwohner)
@@ -1590,6 +1642,9 @@
 	<string name="MuteGroup">
 		(Gruppe)
 	</string>
+	<string name="MuteExternal">
+		(Extern)
+	</string>
 	<string name="RegionNoCovenant">
 		Für diesen Grundbesitz liegt kein Vertrag vor.
 	</string>
@@ -3405,6 +3460,15 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
 	<string name="answered_call">
 		Ihr Anruf wurde entgegengenommen
 	</string>
+	<string name="you_started_call">
+		Sie haben einen Voice-Anruf begonnen
+	</string>
+	<string name="you_joined_call">
+		Sie sind dem Gespräch beigetreten
+	</string>
+	<string name="name_started_call">
+		[NAME] hat einen Voice-Anruf begonnen
+	</string>
 	<string name="ringing-im">
 		Verbindung wird hergestellt...
 	</string>
@@ -3617,6 +3681,57 @@ Missbrauchsbericht
 	<string name="Contents">
 		Inhalt
 	</string>
+	<string name="Gesture">
+		Gesten
+	</string>
+	<string name="Male Gestures">
+		Männliche Gesten
+	</string>
+	<string name="Female Gestures">
+		Weibliche Gesten
+	</string>
+	<string name="Other Gestures">
+		Andere Gesten
+	</string>
+	<string name="Speech Gestures">
+		Sprachgesten
+	</string>
+	<string name="Common Gestures">
+		Häufig verwendete Gesten
+	</string>
+	<string name="Male - Excuse me">
+		Männlich - Excuse me
+	</string>
+	<string name="Male - Get lost">
+		Männlich - Get lost
+	</string>
+	<string name="Male - Blow kiss">
+		Männlich - Kusshand
+	</string>
+	<string name="Male - Boo">
+		Männlich - Buh
+	</string>
+	<string name="Male - Bored">
+		Männlich - Gelangweilt
+	</string>
+	<string name="Male - Hey">
+		Männlich - Hey
+	</string>
+	<string name="Male - Laugh">
+		Männlich - Lachen
+	</string>
+	<string name="Male - Repulsed">
+		Männlich - Angewidert
+	</string>
+	<string name="Male - Shrug">
+		Männlich - Achselzucken
+	</string>
+	<string name="Male - Stick tougue out">
+		Männlich - Zunge herausstrecken
+	</string>
+	<string name="Male - Wow">
+		Männlich - Wow
+	</string>
 	<string name="Female - Excuse me">
 		Weiblich - Räuspern
 	</string>
@@ -3629,6 +3744,27 @@ Missbrauchsbericht
 	<string name="Female - Boo">
 		Weiblich  - Buh
 	</string>
+	<string name="Female - Bored">
+		Weiblich - Gelangweilt
+	</string>
+	<string name="Female - Hey">
+		Weiblich - Hey
+	</string>
+	<string name="Female - Laugh">
+		Weiblich - Lachen
+	</string>
+	<string name="Female - Repulsed">
+		Weiblich - Angewidert
+	</string>
+	<string name="Female - Shrug">
+		Weiblich - Achselzucken
+	</string>
+	<string name="Female - Stick tougue out">
+		Weiblich - Zunge herausstrecken
+	</string>
+	<string name="Female - Wow">
+		Weiblich - Wow
+	</string>
 	<string name="AvatarBirthDateFormat">
 		[mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
 	</string>
diff --git a/indra/newview/skins/default/xui/en/alert_button.xml b/indra/newview/skins/default/xui/en/alert_button.xml
index 632564d7938e7672b1646f10f3475c9a802c8745..a60e9afab1163f543567b146b325802cb9d47cb0 100644
--- a/indra/newview/skins/default/xui/en/alert_button.xml
+++ b/indra/newview/skins/default/xui/en/alert_button.xml
@@ -5,7 +5,7 @@
   label_shadow="true"
   auto_resize="false"
   image_overlay_alignment="center"
-  use_ellipses="flse"
+  use_ellipses="false"
   pad_right="10"
   pad_left="10"
   is_toggle="false"
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index b9489895ae8a9c440904ea2b4dfd4189e75718b8..14aacafa9f21498f150373ce8efbf85049ebb198 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -1489,6 +1489,7 @@ Only large parcels can be listed in search.
              layout="topleft"
              left="14"
              name="snapshot_ctrl"
+             fallback_image="default_land_picture.j2c" 
              tool_tip="Click to choose a picture"
              width="195" />
             <text
diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml
index acaa508792478934d3eebd8c77b7a0a869532fd8..0ad4fbc967031e5e51cd2556bb71d77fb351cf5e 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml
@@ -380,6 +380,7 @@ supports [AMOUNT2] objects
      width="275" />
     <texture_picker
      enabled="false"
+     fallback_image="default_land_picture.j2c"
      follows="top|left"
      height="135"
      layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_event.xml b/indra/newview/skins/default/xui/en/floater_event.xml
index d9c9d63c72da802e87608fbb77ceb4b5d011bdbe..887cedc33fbff0d7af4eb112b04a8faf41e5037c 100644
--- a/indra/newview/skins/default/xui/en/floater_event.xml
+++ b/indra/newview/skins/default/xui/en/floater_event.xml
@@ -266,7 +266,6 @@
            layout="topleft"
            left="6"
        name="create_event_btn"
-           picture_style="true"
            tool_tip="Create Event"
            width="18" />
       <button
@@ -280,7 +279,6 @@
            left="6"
            top_pad="-7" 
           name="god_delete_event_btn"
-           picture_style="true"
            tool_tip="Delete Event"
            width="18" />
       <button
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index efc1a66d95b0d4bed745c279ef7e06c822f6c7ac..34c1b25f8cd7add989944034635957de0dcfa613 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -335,7 +335,6 @@
     </combo_box>
     <button
      left_pad="0"
-     image_disabled="ForwardArrow_Disabled"
      image_selected="ForwardArrow_Press"
      image_unselected="ForwardArrow_Off"
      layout="topleft"
@@ -1012,7 +1011,7 @@
             follows="left|top"
             allow_text_entry="false"
             height="23"
-            intial_value="2"
+            initial_value="2"
             max_chars="20"
             mouse_opaque="true"
             name="sale type"
@@ -2176,8 +2175,6 @@ even though the user gets a free copy.
              width="60" />
             <color_swatch
              can_apply_immediately="true"
-	     bevel_style="none"
-	     border_style="line"
              color="0.5 0.5 0.5 1"
 	     border.border_thickness="0"
              follows="left|top"
@@ -2212,43 +2209,71 @@ even though the user gets a free copy.
              name="Light Intensity"
              top_pad="3"
              width="128" />
-          <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
- increment="0.1" initial_val="0.5" label="FOV" label_width="55"
- left="144" max_val="3" min_val="0" mouse_opaque="true"
- name="Light FOV" width="120" />
-          <spinner
-             follows="left|top"
-             height="19"
-             initial_value="5"
-             label="Radius"
-             label_width="70"
-             layout="topleft"
-             left="10"
-             max_val="20"
-             name="Light Radius"
-             top_pad="3"
-             width="128" />
-          <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
-        increment="0.5" initial_val="0.5" label="Focus" label_width="55"
-        left="144" max_val="20" min_val="-20" mouse_opaque="true"
-        name="Light Focus" width="120" />
-            <spinner
-             follows="left|top"
-             height="19"
-             increment="0.25"
-             initial_value="1"
-             label="Falloff"
-             label_width="70"
-             layout="topleft"
-             left="10"
-             max_val="2"
-             name="Light Falloff"
-             top_pad="3"
-             width="128" />
-          <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
-           increment="0.05" initial_val="1" label="Ambiance" label_width="55"
-           left="144" max_val="1" min_val="0" mouse_opaque="true"
-           name="Light Ambiance" width="120" />
+          <spinner bottom_delta="0"
+                   decimal_digits="3"
+                   follows="left|top"
+                   height="16"
+                   increment="0.1"
+                   initial_value="0.5"
+                   label="FOV"
+                   label_width="55"
+                   left="144"
+                   max_val="3"
+                   min_val="0"
+                   mouse_opaque="true"
+                   name="Light FOV"
+                   width="120" />
+          <spinner follows="left|top"
+                   height="19"
+                   initial_value="5"
+                   label="Radius"
+                   label_width="70"
+                   layout="topleft"
+                   left="10"
+                   max_val="20"
+                   name="Light Radius"
+                   top_pad="3"
+                   width="128" />
+          <spinner bottom_delta="0"
+                   decimal_digits="3"
+                   follows="left|top"
+                   height="16"
+                   increment="0.5"
+                   initial_value="0.5"
+                   label="Focus"
+                   label_width="55"
+                   left="144"
+                   max_val="20"
+                   min_val="-20"
+                   mouse_opaque="true"
+                   name="Light Focus"
+                   width="120" />
+          <spinner follows="left|top"
+                   height="19"
+                   increment="0.25"
+                   initial_value="1"
+                   label="Falloff"
+                   label_width="70"
+                   layout="topleft"
+                   left="10"
+                   max_val="2"
+                   name="Light Falloff"
+                   top_pad="3"
+                   width="128" />
+          <spinner bottom_delta="0"
+                   decimal_digits="3"
+                   follows="left|top"
+                   height="16"
+                   increment="0.05"
+                   initial_value="1"
+                   label="Ambiance"
+                   label_width="55"
+                   left="144"
+                   max_val="1"
+                   min_val="0"
+                   mouse_opaque="true"
+                   name="Light Ambiance"
+                   width="120" />
         </panel>
          <panel
          border="false"
@@ -2273,6 +2298,7 @@ even though the user gets a free copy.
             <texture_picker
              can_apply_immediately="true"
              default_image_name="Default"
+             fallback_image="locked_image.j2c"
              follows="left|top"
              height="80"
              label="Texture"
diff --git a/indra/newview/skins/default/xui/en/menu_edit.xml b/indra/newview/skins/default/xui/en/menu_edit.xml
index 68f3cb532cadfbf63de5efa181ff57ad54ac50a9..fab76c497cff0a6d0ca4614bb83f051780d48074 100644
--- a/indra/newview/skins/default/xui/en/menu_edit.xml
+++ b/indra/newview/skins/default/xui/en/menu_edit.xml
@@ -52,6 +52,7 @@
   <menu_item_call
    label="Delete"
    name="Delete"
+   allow_key_repeat="true" 
    shortcut="Del">
     <menu_item_call.on_click
      function="Edit.Delete" />
diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml
index 976f6d6cd08b418161815c69249be02bd26603f1..b7fd9773f263ff13c61601bd6b1dd2897f742a73 100644
--- a/indra/newview/skins/default/xui/en/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml
@@ -46,7 +46,6 @@
      image_unselected="BackButton_Off"
      layout="topleft"
      name="back_btn"
-     picture_style="true"
      left="10"
      tab_stop="false"
      top="2"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
index 6744a7b9c2259ea881cc685116939aef3168f74c..3f41973b7202479545a4faf30d851b9d7770b324 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
@@ -30,7 +30,6 @@
      image_unselected="BackButton_Off"
      layout="topleft"
      name="back_btn"
-     picture_style="true"
      left="10"
      tab_stop="false"
      top="2"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index dff2b9a214f2f1c35bb595bb117b82f79358d064..5072ec3a669df12e6d21d151cff22e8c95c1c1ed 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -118,6 +118,7 @@
              allow_no_texture="true"
              default_image_name="None"
              enabled="false"
+             fallback_image="default_profile_picture.j2c" 
              follows="top|left"
              height="124"
              layout="topleft"
@@ -174,6 +175,7 @@
              allow_no_texture="true"
              default_image_name="None"
              enabled="false"
+             fallback_image="Generic_Person_Large"
              follows="top|left"
              height="124"
              layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
index fc1caca9e9ce6aa8769211b6223553264f1f5ce5..484617df3456a9f86bd5827740b264b64be7a39d 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
@@ -131,19 +131,25 @@
      name="tattoo_desc_text">
         Tattoo:
     </string>
-    <button
+    <!-- Default width of the button should be to show it without label.
+     Button will be extedned in code to show whole label when wearable is being changed.
+    -->
+    <labeled_back_button
      follows="top|left"
      height="24"
      image_hover_unselected="BackButton_Over"
      image_pressed="BackButton_Press"
      image_unselected="BackButton_Off"
      layout="topleft"
+     label="Save"
      left="11"
      name="back_btn"
+     pad_left="24"
+     tool_tip="Return to Edit Outfit"
      top="3"
      width="30" />
     <text
-     follows="top|left"
+     follows="top|left|right"
      font="SansSerifHugeBold"
      height="22"
      layout="topleft"
@@ -152,7 +158,8 @@
      text_color="white"
      top="3"
      value="Editing Shape"
-     width="270" />
+     use_ellipses="true"
+     width="274" />
     <panel
      background_opaque="true"
      background_visible="true"
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index e894fc8fb8bd8431ae2b4ed7c44ed8012188ca22..4998322d62c11951425ff0a297781a21feb00695 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -96,6 +96,7 @@ background_visible="true"
        follows="all"
        layout="topleft"
        auto_resize="true"
+       height="513"
        width="313">
    <accordion
      left="0"
@@ -105,6 +106,7 @@ background_visible="true"
      follows="all"
      layout="topleft"
      name="groups_accordion"
+     height="513"
      width="313">
          <accordion_tab
             expanded="true"
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
index 55fef5aaf77cc6c960c4deaaa49ad07a3bd74398..a0a1e2963a95f84fbd10cae7d56df1942cd166f8 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -103,7 +103,8 @@
          width="310">
             <texture_picker
              enabled="false"
-         follows="left|top|right"
+             fallback_image="default_land_picture.j2c"
+             follows="left|top|right"
              height="197"
              layout="topleft"
              left="11"
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 2a53b3e2fab7969cf601b367205b597a89417e9c..16529f4064b0c30d97265c22b5ce86aeefade544 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -104,8 +104,6 @@
   </tab_container>
   <layout_stack
    animate="false"
-   background_visible="true"
-   bevel_style="none"
    border_size="0"
    follows="left|right|bottom"
    height="25"
diff --git a/indra/newview/skins/default/xui/en/panel_my_profile.xml b/indra/newview/skins/default/xui/en/panel_my_profile.xml
index 841a4f5713f811b4e852fe647156df110e46884e..1083f4d467678bdea5a9a3d7534eaa6d47306ee3 100644
--- a/indra/newview/skins/default/xui/en/panel_my_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_my_profile.xml
@@ -83,6 +83,7 @@
                allow_no_texture="true"
                default_image_name="None"
                enabled="false"
+               fallback_image="Generic_Person_Large" 
                follows="top|left"
                height="124"
                layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 96c76576c0cbf09271718a5dfa43441fbc5670b8..00b1fdd843091cbd5e806652518ddd0cbff77b38 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -113,10 +113,6 @@
 	<!--      top_delta="0" -->
 	<!--      width="168" /> -->
         <search_combo_box
-	     bevel_style="none"
-	     border_style="line"
-	     border.border_thickness="0"
-	     commit_on_focus_lost="false"
 	     follows="right|top"
 	     halign="right"
 	     height="23"
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
index f5a78fc92979e0cefbdaac1b5692eedc59423237..d8675b351289058062c6ae72f3ea919e8814f51f 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
@@ -1,7 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
-	can_resize="true"
-	can_close="false"
  bg_opaque_image="Volume_Background" 
  bg_alpha_image="Volume_Background" 
   background_opaque="true"
@@ -58,7 +56,6 @@
 		top_delta="0"
 		left_pad="4"
 		height="22"
-		min_width="28"
 		width="28">
 	  <button.commit_callback
 		  function="MediaListCtrl.GoMediaPrefs" />
diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
index 4abd7dceacb0529dc5f1cb1c24662380296055f0..362fdd606af278d26e09a603cdc05320fc724f03 100644
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
@@ -190,7 +190,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap
                 <layout_panel
                  auto_resize="true" 
                  background_visible="true"
-                 bg_alpha_color="DkGray2"
+                 bg_alpha_color="Black"
                  layout="topleft"
                  height="154"
                  name="add_button_and_combobox"
@@ -318,13 +318,13 @@ It is calculated as border_size + 2*UIResizeBarOverlap
              background_visible="false"
              border="false"
              follows="left|top|right|bottom"
-             height="442"
+             height="449"
              layout="topleft"
              left="0"
              mouse_opaque="false"
              name="folder_view"
-             top_pad="5"
-             width="310"
+             top_pad="0"
+             width="313"
              visible="false"/>
             <panel
              name="filtered_wearables_panel"
@@ -346,7 +346,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap
                  layout="topleft"
                  follows="all"
                  multi_select="true"
-                 width="310"
+                 width="313"
                  height="449"
                  left="0"
                  top="0"/>
@@ -382,20 +382,20 @@ It is calculated as border_size + 2*UIResizeBarOverlap
         <icon
          follows="bottom|left|right"
          height="25"
-         image_name="Toolbar_Right_Off"
+         image_name="Toolbar_Middle_Off"
          layout="topleft"
          left_pad="1"
          name="dummy_right_icon"
-         width="246" />
+         width="250" />
         <button
          follows="bottom|right"
          height="25"
-         image_hover_unselected="Toolbar_Middle_Over"
+         image_hover_unselected="Toolbar_Right_Over"
          image_overlay="Shop"
-         image_selected="Toolbar_Middle_Selected"
-         image_unselected="Toolbar_Middle_Off"
+         image_selected="Toolbar_Right_Selected"
+         image_unselected="Toolbar_Right_Off"
          layout="topleft"
-         left_pad="0"
+         left_pad="1"
          name="shop_btn_1"
          top="1"
          width="31" />
@@ -468,21 +468,21 @@ It is calculated as border_size + 2*UIResizeBarOverlap
         <icon
          follows="bottom|left|right"
          height="25"
-         image_name="Toolbar_Right_Off"
+         image_name="Toolbar_Middle_Off"
          layout="topleft"
          left_pad="1"
          name="dummy_right_icon"
-         width="153" >
+         width="154" >
         </icon>
         <button
          follows="bottom|right"
          height="25"
-         image_hover_unselected="Toolbar_Middle_Over"
+         image_hover_unselected="Toolbar_Right_Over"
          image_overlay="Shop"
-         image_selected="Toolbar_Middle_Selected"
-         image_unselected="Toolbar_Middle_Off"
+         image_selected="Toolbar_Right_Selected"
+         image_unselected="Toolbar_Right_Off"
          layout="topleft"
-         left_pad="0"
+         left_pad="1"
          name="shop_btn_2"
          top="1"
          width="31" />
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index b79ef1e287b58d2bc364b20a31cd820c8acb72e7..7cd0d5b5f04a5c50ec08f43cadffb8ea50df86db 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -95,8 +95,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
          width="313">
             <avatar_list
              allow_select="true"
-       		 bg_alpha_color="DkGray2"
-             bg_opaque_color="DkGray2"
              follows="all"
              height="356"
              ignore_online_status="true"
@@ -300,16 +298,11 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
     -->
             <group_list
              allow_select="true" 
-             background_visible="true"
-             bg_alpha_color="DkGray2"
-             bg_opaque_color="DkGray2"
              follows="all"
              height="356"
              layout="topleft"
              left="3"
              name="group_list"
-             no_filtered_groups_msg="[secondlife:///app/search/groups Try finding the group in search?]"
-             no_groups_msg="[secondlife:///app/search/groups Try searching for some groups to join.]"
              top="0"
              width="307" />
             <panel
@@ -386,9 +379,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
          width="313">
             <avatar_list
              allow_select="true"
-       		 background_visible="true"
-       		 bg_alpha_color="DkGray2"
-             bg_opaque_color="DkGray2"
              follows="all"
              height="356"
              layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index 0093a08e15d40c560221901976eeaa01fddee693..a815cdf7f05b4f5ac119813fda04835fd3204552 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -38,7 +38,6 @@ bg_opaque_color="DkGray2"
   single_expansion="true"
   width="313">
     <accordion_tab
-     can_resize="false"
      layout="topleft"
      height="235"
      min_height="150"
@@ -56,7 +55,6 @@ bg_opaque_color="DkGray2"
          width="313" />
     </accordion_tab>
     <accordion_tab
-     can_resize="false"
      layout="topleft"
      height="235"
      name="tab_classifieds"
diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml
index 55e0184282474c3715e336ffa3623dc9b1f17848..35e80758966623665c40d42ee93d918a60e21c7c 100644
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
@@ -200,7 +200,8 @@
          width="310">
             <texture_picker
              enabled="false"
-         follows="left|top|right"
+             fallback_image="default_land_picture.j2c"
+             follows="left|top|right"
              height="197"
              layout="topleft"
              left="11"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
index fca9b4bca157861e6e54f55b1ab3d8ed3d034f23..4ebd4c76f897c4bac86d4708af6cd57257028a19 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
@@ -162,8 +162,9 @@
      name="block_list"
      top_pad="20"
      width="145">
-        <button.commit_callback
-         function="SideTray.ShowPanel"
-		 parameter="panel_block_list_sidetray" />
+        <!--<button.commit_callback
+         function="SideTray.ShowPanel"-->
+      <button.commit_callback
+         function="Pref.BlockList"/>
     </button>
     </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index d7a601d7a3393eab7e31f08bc7cd98ab16da518e..fc33836c79d8b28c64d9fc65461b453a8cf5ff67 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -83,6 +83,7 @@
                allow_no_texture="true"
                default_image_name="None"
                enabled="false"
+               fallback_image="Generic_Person_Large"
                follows="top|left"
                height="124"
                layout="topleft"
@@ -130,6 +131,7 @@
                allow_no_texture="true"
                default_image_name="None"
                enabled="false"
+               fallback_image="Generic_Person_Large"
                follows="top|left"
                height="124"
                layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml
index 92b4c17247de325b77fd0730e2005388f5d44f2e..42f64c3a76e2487e670555787fc2c9988c498d0d 100644
--- a/indra/newview/skins/default/xui/en/panel_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_toast.xml
@@ -31,8 +31,6 @@
  can_close="false"
  can_dock="false"
  border_visible = "false"
- border_drop_shadow_visible = "false"
- drop_shadow_visible = "false"
  border = "false"
 >
  <panel
diff --git a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
index d3fb77f135f26b49800c16680e6ed868977a4a02..d8f4297e0ccbbad71ac5ca8ebc0d8e737ba05cbe 100644
--- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
@@ -10,7 +10,6 @@
  name="topinfo_bar"
  width="1024">
   <button
-    border="true"
     follows="left|top"
     height="16"
     hover_glow_amount="0.15"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
index b3bc618eec4157410a002608fc9e88558bf77388..f3912b513302cd55f131e2d3a04d8ef6ee81c7f1 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -1,12 +1,10 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
-	 auto_tile="true"
 	 height="570"
 	 layout="topleft"
 	 name="item properties"
 	 help_topic="item_properties"
-	 save_rect="true"
-	 title="Object Profile"
+	 title="Item Profile"
 	 width="333">
 	<panel.string
 		 name="unknown">
@@ -60,7 +58,7 @@
      text_color="LtGray"
      top="2"
      use_ellipses="true"
-     value="Object Profile"
+     value="Item Profile"
      width="275" />
     	    <text
      follows="top|left"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
index faa1ae4e8bc644e8aa9a9f04a9c3271ffd955337..ef7ec74b5a2fd5bad9cd727d9acf5e9f193366ad 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
@@ -1,11 +1,9 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
-	 auto_tile="true"
 	 height="570"
 	 layout="topleft"
 	 name="object properties"
 	 help_topic="object_properties"
-	 save_rect="true"
 	 title="Object Profile"
 	 width="333">
 	 <panel.string
@@ -219,7 +217,6 @@
 			 left_pad="0"
 			 top_delta="0"
 			 name="button set group"
-			 picture_style="true"
 			 tab_stop="false"
 			 tool_tip="Choose a group to share this object's permissions"
 			 width="10" />
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 68eea8dc9a6b1d332d0f1a239d74f22bbe4a1386..e30c081ba13eda6523921f27da65ae718760b7ce 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -1812,7 +1812,8 @@ Clears (deletes) the media and all params from the given face.
 	<string name="skirt">Skirt</string>
 	<string name="alpha">Alpha</string>
 	<string name="tattoo">Tattoo</string>
-	<string name="invalid">invalid</string>
+  <string name="invalid">invalid</string>
+  <string name="none">none</string>
   
   <!-- Not Worn Wearable Types -->
 	<string name="shirt_not_worn">Shirt not worn</string>
diff --git a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
index 5d429d5b5b989a67e46fd7a4af5748352335c631..ce84cfedc0a5d7a1a299634f66e6b0dbb452018e 100644
--- a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
@@ -1,15 +1,12 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <search_combo_box
  allow_text_entry="true"
- list_position="BELOW"
+ list_position="below"
  show_text_as_tentative="false"
  dropdown_button_visible="false"
  max_chars="256"
  name="parent"
- allow_new_values="true"
- background_image="TextField_Search_Off"
- background_image_disabled="TextField_Search_Disabled"
- background_image_focused="TextField_Search_Active">
+ allow_new_values="true">
  <combo_editor
   name="child1"
   select_on_focus="true"
diff --git a/indra/newview/skins/paths.xml b/indra/newview/skins/paths.xml
index 3b91a904b0f2aab15956fc4051ec8062712b5c69..e6d68488ea0622426386bb12d705888d556f51c2 100644
--- a/indra/newview/skins/paths.xml
+++ b/indra/newview/skins/paths.xml
@@ -1,4 +1,10 @@
 <paths>
-	<directory>xui/en</directory>
-	<directory>xui/[LANGUAGE]</directory>
+	<directory>
+    <subdir>xui</subdir>
+    <subdir>en</subdir>
+  </directory>
+	<directory>
+    <subdir>xui</subdir>
+    <subdir>[LANGUAGE]</subdir>
+  </directory>
 </paths>
\ No newline at end of file