diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index de24bd92d0c0b06ecd9497cac2003d27034d44c3..c784ca3a9c84f1fe6781a839b4d8186856317612 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -327,6 +327,11 @@ BOOL get_is_category_renameable(const LLInventoryModel* model, const LLUUID& id)
 	return FALSE;
 }
 
+void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id)
+{
+	LLSideTray::getInstance()->showPanel("sidepanel_inventory", LLSD().with("id", item_uuid).with("object", object_id));
+}
+
 void show_item_profile(const LLUUID& item_uuid)
 {
 	LLUUID linked_uuid = gInventory.getLinkedItemID(item_uuid);
diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h
index 93c56e1b8a6075dde112fdaaf443ce2ff6422b4b..aa4ac98241f632e1312bee8f38e05a4cffe8adca 100644
--- a/indra/newview/llinventoryfunctions.h
+++ b/indra/newview/llinventoryfunctions.h
@@ -53,6 +53,7 @@ BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id);
 BOOL get_is_category_renameable(const LLInventoryModel* model, const LLUUID& id);
 
 void show_item_profile(const LLUUID& item_uuid);
+void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id);
 
 void show_item_original(const LLUUID& item_uuid);
 
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index da809b7baaaadeeecea1f0f1d30da7c07b3ab0d5..f683cbc8d0c0f771585f3142ffbb054f68507d35 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -176,17 +176,7 @@ LLInventoryItem* LLTaskInvFVBridge::findItem() const
 
 void LLTaskInvFVBridge::showProperties()
 {
-	show_item_profile(mUUID);
-
-	// Disable old properties floater; this is replaced by the sidepanel.
-	/*
-	LLFloaterProperties* floater = LLFloaterReg::showTypedInstance<LLFloaterProperties>("properties", mUUID);
-	if (floater)
-	{
-		floater->setObjectID(mPanel->getTaskUUID());
-	}
-	*/
-	
+	show_task_item_profile(mUUID, mPanel->getTaskUUID());
 }
 
 struct LLBuyInvItemData
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index d315f40ff3ba07da0865f523837bee111447674e..668c04cf159b28bba94a3818565fe269108672c3 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -257,7 +257,6 @@ class LLObjectSelection : public LLRefCount
 	LLObjectSelection();
 
 	void updateEffects();
-	void cleanupNodes();
 
 	BOOL isEmpty() const;
 
@@ -281,11 +280,6 @@ class LLObjectSelection : public LLRefCount
 	template <typename T> bool getSelectedTEValue(LLSelectedTEGetFunctor<T>* func, T& res);
 	template <typename T> bool isMultipleTEValue(LLSelectedTEGetFunctor<T>* func, const T& ignore_value);
 	
-	void addNode(LLSelectNode *nodep);
-	void addNodeAtEnd(LLSelectNode *nodep);
-	void moveNodeToFront(LLSelectNode *nodep);
-	void removeNode(LLSelectNode *nodep);
-	void deleteAllNodes();			// Delete all nodes
 	S32 getNumNodes();
 	LLSelectNode* findNode(LLViewerObject* objectp);
 
@@ -312,6 +306,15 @@ class LLObjectSelection : public LLRefCount
 
 	ESelectType getSelectType() const { return mSelectType; }
 
+private:
+	void addNode(LLSelectNode *nodep);
+	void addNodeAtEnd(LLSelectNode *nodep);
+	void moveNodeToFront(LLSelectNode *nodep);
+	void removeNode(LLSelectNode *nodep);
+	void deleteAllNodes();
+	void cleanupNodes();
+
+
 private:
 	list_t mList;
 	const LLObjectSelection &operator=(const LLObjectSelection &);
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index e76397671bfe790c92c9df8a6f9a0f06f29bcb56..3ab71eac64f8d37a9db1833579e577f5a7244f78 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -80,6 +80,7 @@ static LLRegisterPanelClassWrapper<LLSidepanelTaskInfo> t_task_info("sidepanel_t
 LLSidepanelTaskInfo::LLSidepanelTaskInfo()
 {
 	setMouseOpaque(FALSE);
+	LLSelectMgr::instance().mUpdateSignal.connect(boost::bind(&LLSidepanelTaskInfo::refreshAll, this));
 }
 
 
@@ -271,7 +272,6 @@ void LLSidepanelTaskInfo::refresh()
 	// BUG: fails if a root and non-root are both single-selected.
 	const BOOL is_perm_modify = (mObjectSelection->getFirstRootNode() && LLSelectMgr::getInstance()->selectGetRootsModify()) ||
 		LLSelectMgr::getInstance()->selectGetModify();
-	const LLFocusableElement* keyboard_focus_view = gFocusMgr.getKeyboardFocus();
 
 	S32 string_index = 0;
 	std::string MODIFY_INFO_STRINGS[] =
@@ -365,14 +365,14 @@ void LLSidepanelTaskInfo::refresh()
 
 	if (is_one_object)
 	{
-		if (keyboard_focus_view != LineEditorObjectName)
+		if (!LineEditorObjectName->hasFocus())
 		{
 			childSetText("Object Name",nodep->mName);
 		}
 
 		if (LineEditorObjectDesc)
 		{
-			if (keyboard_focus_view != LineEditorObjectDesc)
+			if (!LineEditorObjectDesc->hasFocus())
 			{
 				LineEditorObjectDesc->setText(nodep->mDescription);
 			}
@@ -1178,9 +1178,30 @@ void LLSidepanelTaskInfo::save()
 	onCommitIncludeInSearch(getChild<LLCheckBoxCtrl>("search_check"), this);
 }
 
+// removes keyboard focus so that all fields can be updated
+// and then restored focus
+void LLSidepanelTaskInfo::refreshAll()
+{
+	// update UI as soon as we have an object
+	// but remove keyboard focus first so fields are free to update
+	LLFocusableElement* focus = NULL;
+	if (hasFocus())
+	{
+		focus = gFocusMgr.getKeyboardFocus();
+		setFocus(FALSE);
+	}
+	refresh();
+	if (focus)
+	{
+		focus->setFocus(TRUE);
+	}
+}
+
+
 void LLSidepanelTaskInfo::setObjectSelection(LLObjectSelectionHandle selection)
 {
 	mObjectSelection = selection;
+	refreshAll();
 }
 
 LLSidepanelTaskInfo* LLSidepanelTaskInfo::getActivePanel()
diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h
index 15274c90db7ef00ef5a4eddde27b1361bb36d5de..010173e84e2a144818a9875eae5e86162a839b85 100644
--- a/indra/newview/llsidepaneltaskinfo.h
+++ b/indra/newview/llsidepaneltaskinfo.h
@@ -67,6 +67,8 @@ class LLSidepanelTaskInfo : public LLSidepanelInventorySubpanel
 	/*virtual*/ void save();
 	/*virtual*/ void updateVerbs();
 
+	void refreshAll(); // ignore current keyboard focus and update all fields
+
 	// statics
 	static void onClickClaim(void*);
 	static void onClickRelease(void*);
@@ -120,7 +122,7 @@ class LLSidepanelTaskInfo : public LLSidepanelInventorySubpanel
 	LLViewerObject*				getObject();
 private:
 	LLViewerObject*				mObject;
-	LLObjectSelectionHandle mObjectSelection;
+	LLObjectSelectionHandle		mObjectSelection;
 	static LLSidepanelTaskInfo* sActivePanel;
 };
 
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 2c7ae539ce7b5ce62869f658ba81e0ef4512e741..cc33dfcfef907e9bb1d2186f99357cef0d516272 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -7209,7 +7209,7 @@ void handle_web_browser_test(const LLSD& param)
 	{
 		url = "about:blank";
 	}
-	LLWeb::loadURL(url);
+	LLWeb::loadURLInternal(url);
 }
 
 void handle_buy_currency_test(void*)
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 179002d2a869b36f584155ece87c7d89f6adbea0..4ef166fb71debcf2da9788e6b1fea42e3290a426 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -3551,7 +3551,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
 //							AUDIO_STEP_LO_SPEED, AUDIO_STEP_HI_SPEED,
 //							AUDIO_STEP_LO_GAIN, AUDIO_STEP_HI_GAIN );
 
-			const F32 STEP_VOLUME = 0.3f;
+			const F32 STEP_VOLUME = 0.1f;
 			const LLUUID& step_sound_id = getStepSound();
 
 			LLVector3d foot_pos_global = gAgent.getPosGlobalFromAgent(foot_pos_agent);
diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml
index 70dac7e41c35746e013725ce19d08a021754fba9..c02d6075866ab69c720d1dcae353d92c9316d122 100644
--- a/indra/newview/skins/default/xui/en/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml
@@ -182,7 +182,7 @@
 			</button>
         </layout_panel>
         <layout_panel
-         height="20"
+         height="40"
          layout="topleft"
          left_delta="0"
          name="external_controls"
@@ -190,7 +190,7 @@
          user_resize="false"
          width="540">
             <web_browser
-             bottom="-10"
+             bottom="-30"
              follows="left|right|top|bottom"
              layout="topleft"
              left="0"
@@ -206,9 +206,9 @@
              name="open_browser"
              top_pad="5"
              width="185">
-				<button.commit_callback
-				function="MediaBrowser.OpenWebBrowser" />
-			</button>
+              <button.commit_callback
+                function="MediaBrowser.OpenWebBrowser" />
+            </button>
             <check_box
              control_name="UseExternalBrowser"
              follows="bottom|left"
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 e2bd6f375eccaa7d5b5f80c510dd8db190b188b4..b3bc618eec4157410a002608fc9e88558bf77388 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -159,51 +159,49 @@
 		     name="LabelCreatorName"
 		     top_delta="6"
 		     width="140">
-	        Nicole Linden
-	     </text>
-	     <button
-			 follows="top|right"
-			 height="16"
-     image_selected="Inspector_I"
-     image_unselected="Inspector_I"
-			 layout="topleft"
-			 right="-5"
-			 name="BtnCreator"
-			 top_delta="-6"
-			 width="16" />
-	     <text
-			 type="string"
-			 length="1"
-			 follows="left|top"
-			 height="23"
-			 layout="topleft"
-			   left="5"
-			 name="LabelOwnerTitle"
-			   top_pad="10"
-			 width="78">
-			    Owner:
-	     </text>
-	     <avatar_icon
-			   follows="top|left"
-			   height="20"
-			   default_icon_name="Generic_Person"
-			   layout="topleft"
-			   left_pad="0"
-			   top_delta="-6"
-			   mouse_opaque="true"
-			   width="20" />
-	     <text
-			 type="string"
-			   follows="left|right|top"
-			   font="SansSerifSmall"
-			   height="15"
-			   layout="topleft"
-			   left_pad="5"
-			 name="LabelOwnerName"
-			 top_delta="6"
-			 width="140">
-			    Thrax Linden
-	     </text>
+      </text>
+      <button
+      follows="top|right"
+      height="16"
+    image_selected="Inspector_I"
+    image_unselected="Inspector_I"
+      layout="topleft"
+      right="-5"
+      name="BtnCreator"
+      top_delta="-6"
+      width="16" />
+      <text
+      type="string"
+      length="1"
+      follows="left|top"
+      height="23"
+      layout="topleft"
+        left="5"
+      name="LabelOwnerTitle"
+        top_pad="10"
+      width="78">
+        Owner:
+      </text>
+      <avatar_icon
+        follows="top|left"
+        height="20"
+        default_icon_name="Generic_Person"
+        layout="topleft"
+        left_pad="0"
+        top_delta="-6"
+        mouse_opaque="true"
+        width="20" />
+      <text
+      type="string"
+        follows="left|right|top"
+        font="SansSerifSmall"
+        height="15"
+        layout="topleft"
+        left_pad="5"
+      name="LabelOwnerName"
+      top_delta="6"
+      width="140">
+      </text>
 	     <button
 			 follows="top|right"
 			 height="16"
@@ -236,7 +234,6 @@ top_pad="10"
 			 name="LabelAcquiredDate"
 			 top_delta="0"
 			 width="222">
-			Wed May 24 12:50:46 2006
       </text>
 	 <panel
          border="false"