diff --git a/indra/newview/llhudeffectblob.cpp b/indra/newview/llhudeffectblob.cpp
index 6ef8fab4a6006b6b7bcadec7104ffd625a08bbd9..f976a320ee30b70629b8a9b5ed9ac03a04eb85aa 100644
--- a/indra/newview/llhudeffectblob.cpp
+++ b/indra/newview/llhudeffectblob.cpp
@@ -28,8 +28,15 @@
 
 #include "llhudeffectblob.h"
 
-LLHUDEffectBlob::LLHUDEffectBlob(const U8 type) : LLHUDEffect(type)
+#include "llagent.h"
+#include "llviewercamera.h"
+#include "llrendersphere.h"
+
+LLHUDEffectBlob::LLHUDEffectBlob(const U8 type) 
+:	LLHUDEffect(type), 
+	mPixelSize(10)
 {
+	mTimer.start();
 }
 
 LLHUDEffectBlob::~LLHUDEffectBlob()
@@ -38,6 +45,31 @@ LLHUDEffectBlob::~LLHUDEffectBlob()
 
 void LLHUDEffectBlob::render()
 {
+	F32 time = mTimer.getElapsedTimeF32();
+	if (mDuration < time)
+	{
+		markDead();
+	}
+
+	LLVector3 pos_agent = gAgent.getPosAgentFromGlobal(mPositionGlobal);
+
+	LLVector3 pixel_up, pixel_right;
+
+	LLViewerCamera::instance().getPixelVectors(pos_agent, pixel_up, pixel_right);
+
+	LLGLSPipelineAlpha gls_pipeline_alpha;
+	gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+
+	LLColor4U color = mColor;
+	color.mV[VALPHA] = clamp_rescale(time, 0.f, mDuration, 255.f, 0.f);
+	glColor4ubv(color.mV);
+
+	glPushMatrix();
+	glTranslatef(pos_agent.mV[0], pos_agent.mV[1], pos_agent.mV[2]);
+	F32 scale = pixel_up.magVec() * (F32)mPixelSize;
+	glScalef(scale, scale, scale);
+	gSphere.render(0);
+	glPopMatrix();
 }
 
 void LLHUDEffectBlob::renderForTimer()
diff --git a/indra/newview/llhudeffectblob.h b/indra/newview/llhudeffectblob.h
index 7757dc787c6d935b886fec8acd5f5419ddfa95bc..5b0703cdaade6b8678cc0cf0581b3267c3b7d0c5 100644
--- a/indra/newview/llhudeffectblob.h
+++ b/indra/newview/llhudeffectblob.h
@@ -34,6 +34,8 @@ class LLHUDEffectBlob : public LLHUDEffect
 public:
 	friend class LLHUDObject;
 
+	void setPixelSize(S32 pixels) { mPixelSize = pixels; }
+
 protected:
 	LLHUDEffectBlob(const U8 type);
 	~LLHUDEffectBlob();
@@ -41,7 +43,8 @@ class LLHUDEffectBlob : public LLHUDEffect
 	/*virtual*/ void render();
 	/*virtual*/ void renderForTimer();
 private:
-
+	S32				mPixelSize;
+	LLFrameTimer	mTimer;
 };
 
 #endif // LL_LLHUDEFFECTBLOB_H
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp
index 3efb8d287d971dbe9e401bb6c63e227341c4221f..95d57d08d853c1d2c79f39c00c858b1065d83b0c 100644
--- a/indra/newview/llhudobject.cpp
+++ b/indra/newview/llhudobject.cpp
@@ -240,6 +240,7 @@ LLHUDEffect *LLHUDObject::addHUDEffect(const U8 type)
 		break;
 	case LL_HUD_EFFECT_BLOB:
 		hud_objectp = new LLHUDEffectBlob(type);
+		break;
 	default:
 		llwarns << "Unknown type of hud effect:" << (U32) type << llendl;
 	}
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index ef9f5a855c909fdbf0199800bf4ce0c61faadae0..f258b5d87544fad4f94a2c983df5b0ee83876214 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -112,7 +112,6 @@ BOOL LLToolPie::handleMouseDown(S32 x, S32 y, MASK mask)
 	mPick.mKeyMask = mask;
 
 	mMouseButtonDown = true;
-	mAbortClickToWalk = false;
 	
 	handleLeftClickPick();
 
@@ -656,12 +655,16 @@ BOOL LLToolPie::handleMouseUp(S32 x, S32 y, MASK mask)
 			mPick.mPosGlobal = gAgent.getPositionGlobal() + LLVector3d(LLViewerCamera::instance().getAtAxis()) * SELF_CLICK_WALK_DISTANCE;
 		}
 		gAgentCamera.setFocusOnAvatar(TRUE, TRUE);
+		if(mAutoPilotDestination) { mAutoPilotDestination->markDead(); }
 		mAutoPilotDestination = (LLHUDEffectBlob *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_BLOB, FALSE);
 		mAutoPilotDestination->setPositionGlobal(mPick.mPosGlobal);
-		mAutoPilotDestination->setColor(LLColor4U::white);
-		mAutoPilotDestination->setDuration(5.f);
+		mAutoPilotDestination->setPixelSize(5);
+		mAutoPilotDestination->setColor(LLColor4U(50, 50, 200));
+		mAutoPilotDestination->setDuration(3.f);
 
 		handle_go_to();
+		mAbortClickToWalk = false;
+
 		return TRUE;
 	}
 	gViewerWindow->setCursor(UI_CURSOR_ARROW);
@@ -672,6 +675,8 @@ BOOL LLToolPie::handleMouseUp(S32 x, S32 y, MASK mask)
 
 	LLToolMgr::getInstance()->clearTransientTool();
 	gAgentCamera.setLookAt(LOOKAT_TARGET_CONVERSATION, obj); // maybe look at object/person clicked on
+
+	mAbortClickToWalk = false;
 	return LLTool::handleMouseUp(x, y, mask);
 }
 
@@ -1292,6 +1297,10 @@ void LLToolPie::VisitHomePage(const LLPickInfo& info)
 	}
 }
 
+void LLToolPie::handleSelect()
+{
+	mAbortClickToWalk = true;	
+}
 
 void LLToolPie::handleDeselect()
 {
@@ -1338,7 +1347,6 @@ void LLToolPie::onMouseCaptureLost()
 void LLToolPie::stopCameraSteering()
 {
 	mMouseOutsideSlop = false;
-	mMouseSteerGrabPoint = NULL;
 }
 
 bool LLToolPie::inCameraSteerMode()
@@ -1767,10 +1775,12 @@ void LLToolPie::startCameraSteering()
 		const LLVector3 rotation_center_to_pick		= gAgent.getPosAgentFromGlobal(mSteerPick.mPosGlobal) - gAgent.getFrameAgent().getOrigin();
 
 		mClockwise = camera_to_rotation_center * rotation_center_to_pick < 0.f;
-		mMouseSteerGrabPoint= (LLHUDEffectBlob *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_BLOB, FALSE);
-		mMouseSteerGrabPoint->setPositionGlobal(mPick.mPosGlobal);
-		mMouseSteerGrabPoint->setColor(LLColor4U::white);
-		mMouseSteerGrabPoint->setDuration(1000.f);
+		if (mMouseSteerGrabPoint) { mMouseSteerGrabPoint->markDead(); }
+		mMouseSteerGrabPoint = (LLHUDEffectBlob *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_BLOB, FALSE);
+		mMouseSteerGrabPoint->setPositionGlobal(mSteerPick.mPosGlobal);
+		mMouseSteerGrabPoint->setColor(LLColor4U(50, 50, 200));
+		mMouseSteerGrabPoint->setPixelSize(5);
+		mMouseSteerGrabPoint->setDuration(2.f);
 	}
 }
 
diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h
index 01e74a20d78ddc511b34b56a7dbf2e8adb8d6923..c324b50c65ca1766afc09c2025bb1f8c4de3a678 100644
--- a/indra/newview/lltoolpie.h
+++ b/indra/newview/lltoolpie.h
@@ -57,6 +57,7 @@ class LLToolPie : public LLTool, public LLSingleton<LLToolPie>
 	virtual void		stopEditing();
 
 	virtual void		onMouseCaptureLost();
+	virtual void		handleSelect();
 	virtual void		handleDeselect();
 	virtual LLTool*		getOverrideTool(MASK mask);
 
@@ -101,8 +102,8 @@ class LLToolPie : public LLTool, public LLSingleton<LLToolPie>
 	S32					mMouseDownY;
 	S32					mMouseSteerX;
 	S32					mMouseSteerY;
-	LLHUDEffectBlob*	mAutoPilotDestination;
-	LLHUDEffectBlob*	mMouseSteerGrabPoint;
+	LLPointer<LLHUDEffectBlob>	mAutoPilotDestination;
+	LLPointer<LLHUDEffectBlob>	mMouseSteerGrabPoint;
 	bool				mClockwise;			
 	bool				mAbortClickToWalk;
 	LLUUID				mMediaMouseCaptureID;
diff --git a/indra/newview/skins/minimal/xui/en/floater_media_browser.xml b/indra/newview/skins/minimal/xui/en/floater_media_browser.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4862146c94e53f232aa658ff615a4c6efa2984be
--- /dev/null
+++ b/indra/newview/skins/minimal/xui/en/floater_media_browser.xml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ can_resize="true"
+ height="440"
+ layout="topleft"
+ min_height="140"
+ min_width="467"
+ name="floater_about"
+ save_rect="true"
+ auto_tile="true"
+ title="MEDIA BROWSER"
+ width="820">
+    <floater.string
+     name="home_page_url">
+        http://www.secondlife.com
+    </floater.string>
+    <floater.string
+     name="support_page_url">
+        http://support.secondlife.com
+    </floater.string>
+    <layout_stack
+     bottom="440"
+     follows="left|right|top|bottom"
+     layout="topleft"
+     left="10"
+     name="stack1"
+     orientation="vertical" 
+     top="20"
+     width="800">
+        <layout_panel
+         auto_resize="false"
+         default_tab_group="1" 
+         height="20"
+         layout="topleft"
+         left="0"
+         min_height="20"
+         name="nav_controls"
+         top="400"
+         user_resize="false"
+         width="800">
+            <button
+             follows="left|top"
+             height="20"
+             label="Back"
+             layout="topleft"
+             left="0"
+             name="back"
+             top="0"
+             width="55">
+				<button.commit_callback
+				function="MediaBrowser.Back" />
+			</button>
+            <button
+             follows="left|top"
+             height="20"
+             label="Forward"
+             layout="topleft"
+             left_pad="3"
+             name="forward"
+             top_delta="0"
+             width="68">
+				<button.commit_callback
+				function="MediaBrowser.Forward" />
+			</button>
+            <button
+             enabled="false"
+             follows="left|top"
+             height="20"
+             label="Reload"
+             layout="topleft"
+             left_pad="2"
+             name="reload"
+             top_delta="0"
+             width="70">
+				<button.commit_callback
+				function="MediaBrowser.Refresh" />
+			</button>
+            <combo_box
+             allow_text_entry="true"
+             follows="left|top|right"
+             tab_group="1"
+             height="20"
+             layout="topleft"
+             left_pad="5"
+             max_chars="1024"
+             name="address"
+             combo_editor.select_on_focus="true"
+             top_delta="0"
+             width="540">
+				<combo_box.commit_callback
+				function="MediaBrowser.EnterAddress" />
+			</combo_box>
+            <button
+             enabled="false"
+             follows="right|top"
+             height="20"
+             label="Go"
+             layout="topleft"
+             left_pad="5"
+             name="go"
+             top_delta="0"
+             width="50">
+				<button.commit_callback
+				function="MediaBrowser.Go" />
+			</button>
+        </layout_panel>
+        <layout_panel
+         auto_resize="false"
+         height="20"
+         layout="topleft"
+         left_delta="0"
+         min_height="20"         
+         name="time_controls"
+         top_delta="0"
+         user_resize="false"
+         width="800">
+            <button
+             follows="left|top"
+             height="20"
+             label="rewind"
+             layout="topleft"
+             left="0"
+             name="rewind"
+             top="0"
+             width="55" />
+            <button
+             follows="left|top"
+             height="20"
+             image_selected="button_anim_play_selected.tga"
+             image_unselected="button_anim_play.tga"
+             layout="topleft"
+             left_delta="55"
+             name="play"
+             top_delta="0"
+             width="55" />
+            <button
+             follows="left|top"
+             height="20"
+             image_selected="button_anim_pause_selected.tga"
+             image_unselected="button_anim_pause.tga"
+             layout="topleft"
+             left_delta="0"
+             name="pause"
+             top_delta="0"
+             width="55" />
+            <button
+             follows="left|top"
+             height="20"
+             label="stop"
+             layout="topleft"
+             left_pad="10"
+             name="stop"
+             top_delta="0"
+             width="55" />
+            <button
+             follows="left|top"
+             height="20"
+             label="forward"
+             layout="topleft"
+             left_pad="20"
+             name="seek"
+             top_delta="0"
+             width="55" />
+        </layout_panel>
+        <layout_panel
+         auto_resize="false"
+         height="20"
+         layout="topleft"
+         left_delta="0"
+         min_height="20"         
+         name="parcel_owner_controls"
+         top_delta="0"
+         user_resize="false"
+         width="540">
+            <button
+             enabled="false"
+             follows="left|top"
+             height="20"
+             label="Send Current Page to Parcel"
+             layout="topleft"
+             left="0"
+             name="assign"
+             top="0"
+             width="200">
+				<button.commit_callback
+				function="MediaBrowser.Assign" />
+			</button>
+        </layout_panel>
+        <layout_panel
+         height="40"
+         layout="topleft"
+         left_delta="0"
+         name="external_controls"
+         top_delta="0"
+         user_resize="false"
+         width="540">
+          <web_browser
+             bottom="-30"
+             follows="all"
+             layout="topleft"
+             left="0"
+             name="browser"
+             top="0"
+             width="540" />
+            <button
+             follows="bottom|left"
+             height="20"
+             label="Open in My Web Browser"
+             layout="topleft"
+             left_delta="0"
+             name="open_browser"
+             top_pad="5"
+             width="185">
+              <button.commit_callback
+                function="MediaBrowser.OpenWebBrowser" />
+            </button>
+            <check_box
+             control_name="UseExternalBrowser"
+             follows="bottom|left"
+             height="20"
+             label="Always open in my web browser"
+             layout="topleft"
+             left_pad="5"
+             name="open_always"
+             top_delta="0"
+             width="200" />
+            <button
+             follows="bottom|right"
+             height="20"
+             label="Close"
+             layout="topleft"
+             left_pad="80"
+             name="close"
+             top_delta="0"
+             width="70">
+				<button.commit_callback
+				function="MediaBrowser.Close" />
+			</button>
+        </layout_panel>
+    </layout_stack>
+</floater>
diff --git a/indra/newview/skins/minimal/xui/en/floater_web_content.xml b/indra/newview/skins/minimal/xui/en/floater_web_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..50cb5b14ce7c0c4f1d8ac60962e2cefdb7379059
--- /dev/null
+++ b/indra/newview/skins/minimal/xui/en/floater_web_content.xml
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+  legacy_header_height="18"
+  can_resize="true"
+  height="775"
+  layout="topleft"
+  min_height="400"
+  min_width="500"
+  name="floater_web_content"
+  save_rect="true"
+  auto_tile="true"
+  title=""
+  initial_mime_type="text/html"
+  width="780">
+  <layout_stack
+    bottom="775"
+    follows="left|right|top|bottom"
+    layout="topleft"
+    left="5"
+    name="stack1"
+    orientation="vertical"
+    top="20"
+    width="770">
+    <layout_panel
+      auto_resize="false"
+      default_tab_group="1"
+      height="22"
+      layout="topleft"
+      left="0"
+      min_height="20"
+      name="nav_controls"
+      top="400"
+      user_resize="false"
+      width="770">
+      <button
+        image_overlay="Arrow_Left_Off"
+		    image_disabled="PushButton_Disabled"
+		    image_disabled_selected="PushButton_Disabled"
+		    image_selected="PushButton_Selected"
+		    image_unselected="PushButton_Off"
+		    hover_glow_amount="0.15"
+        tool_tip="Navigate back"
+        follows="left|top"
+        height="22"
+        layout="topleft"
+        left="1"
+        name="back"
+        top="0"
+        width="22">
+        <button.commit_callback
+          function="WebContent.Back" />
+      </button>
+      <button
+        image_overlay="Arrow_Right_Off"
+		    image_disabled="PushButton_Disabled"
+		    image_disabled_selected="PushButton_Disabled"
+		    image_selected="PushButton_Selected"
+		    image_unselected="PushButton_Off"
+        tool_tip="Navigate forward"
+        follows="left|top"
+        height="22"
+        layout="topleft"
+        left="27"
+        name="forward"
+        top_delta="0"
+        width="22">
+        <button.commit_callback
+          function="WebContent.Forward" />
+      </button>
+      <button
+        image_overlay="Stop_Off"
+		    image_disabled="PushButton_Disabled"
+		    image_disabled_selected="PushButton_Disabled"
+		    image_selected="PushButton_Selected"
+		    image_unselected="PushButton_Off"
+        tool_tip="Stop navigation"
+        enabled="true"
+        follows="left|top"
+        height="22"
+        layout="topleft"
+        left="51"
+        name="stop"
+        top_delta="0"
+        width="22">
+        <button.commit_callback
+          function="WebContent.Stop" />
+      </button>
+      <button
+        image_overlay="Refresh_Off"
+		    image_disabled="PushButton_Disabled"
+		    image_disabled_selected="PushButton_Disabled"
+		    image_selected="PushButton_Selected"
+		    image_unselected="PushButton_Off"
+        tool_tip="Reload page"
+        follows="left|top"
+        height="22"
+        layout="topleft"
+        left="51"
+        name="reload"
+        top_delta="0"
+        width="22">
+        <button.commit_callback
+          function="WebContent.Reload" />
+      </button>
+      <combo_box
+        allow_text_entry="true"
+        follows="left|top|right"
+        tab_group="1"
+        height="22"
+        layout="topleft"
+        left_pad="4"
+        max_chars="1024"
+        name="address"
+        combo_editor.select_on_focus="true"
+        tool_tip="Enter URL here"
+        top_delta="0"
+        width="672">
+        <combo_box.commit_callback
+          function="WebContent.EnterAddress" />
+      </combo_box>
+      <icon
+        name="media_secure_lock_flag"
+        height="16"
+        follows="top|right"
+        image_name="Lock2"
+        layout="topleft"
+        left_delta="620"
+        top_delta="2"
+        visible="false" 
+        tool_tip="Secured Browsing"
+        width="16" />
+      <button
+        image_overlay="ExternalBrowser_Off"
+		    image_disabled="PushButton_Disabled"
+		    image_disabled_selected="PushButton_Disabled"
+		    image_selected="PushButton_Selected"
+		    image_unselected="PushButton_Off"
+        tool_tip="Open current URL in your desktop browser"
+        follows="right|top"
+        enabled="true" 
+        height="22"
+        layout="topleft"
+        name="popexternal"
+        right="770"
+        top_delta="-2"
+        width="22">
+        <button.commit_callback
+          function="WebContent.PopExternal" />
+      </button>
+    </layout_panel>
+    <layout_panel
+      height="40"
+      layout="topleft"
+      left_delta="0"
+      name="external_controls"
+      top_delta="0"
+      user_resize="false"
+      width="585">
+      <web_browser
+        bottom="-22"
+        follows="all"
+        layout="topleft"
+        left="0"
+        name="webbrowser"
+        top="0"/>
+      <text
+        type="string"
+        length="200"
+        follows="bottom|left"
+        height="20"
+        layout="topleft"
+        left_delta="0"
+        name="statusbartext"
+        parse_urls="false"
+        text_color="0.4 0.4 0.4 1"
+        top_pad="5"
+        width="495"/>
+      <progress_bar
+        color_bar="0.3 1.0 0.3 1"
+        follows="bottom|right"
+        height="16"
+        top_delta="-1"
+        left_pad="24"
+        layout="topleft"
+        name="statusbarprogress"
+        width="64"/>
+    </layout_panel>
+  </layout_stack>
+</floater>
diff --git a/indra/newview/skins/minimal/xui/en/inspect_object.xml b/indra/newview/skins/minimal/xui/en/inspect_object.xml
index a5b03a2f58c4711b0154c7b9ec135b07b989a9bd..f424069ec6760e612b9d02a75714d77583a35392 100644
--- a/indra/newview/skins/minimal/xui/en/inspect_object.xml
+++ b/indra/newview/skins/minimal/xui/en/inspect_object.xml
@@ -98,22 +98,6 @@ L$30,000
    use_ellipses="true">
    http://www.superdupertest.com
 </text>
-  <button
-   follows="top|left"
-   height="20"
-   label="Buy"
-   left="8"
-   name="buy_btn"
-   top="121"
-   width="80" />
-  <button
-   follows="top|left"
-   height="20"
-   label="Pay"
-   left_delta="0"
-   name="pay_btn"
-   top_delta="0"
-   width="80" />
   <button
    follows="top|left"
    height="20"