diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index c4722b772e183c9b37b85c4d3acabdedf7b167a2..768fdd410303ba493570a3236a47e0413d8b8404 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -5294,7 +5294,6 @@
       <key>Value</key>
       <integer>1</integer>
     </map>
-
     <key>PluginInstancesCPULimit</key>
     <map>
       <key>Comment</key>
@@ -5360,6 +5359,17 @@
       <string>U32</string>
       <key>Value</key>
 	  <integer>13</integer>
+    </map>
+	<key>PrimMediaControlsUseHoverControlSet</key>
+	<map>
+	  <key>Comment</key>
+      <string>Whether or not hovering over prim media uses minimal "hover" controls or the authored control set.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
     </map>
     <key>PrimMediaMaxRetries</key>
     <map>
diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp
index e4b32c4820d379cbe98ddcc317995c6f03a88f01..58ca481b77b9dd827bdfcacd27f5bbacc0f68a61 100644
--- a/indra/newview/llpanelprimmediacontrols.cpp
+++ b/indra/newview/llpanelprimmediacontrols.cpp
@@ -228,7 +228,10 @@ void LLPanelPrimMediaControls::updateShape()
 
 	bool can_navigate = parcel->getMediaAllowNavigate();
 	bool enabled = false;
-	bool has_focus = media_impl->hasFocus();
+	// There is no such thing as "has_focus" being different from normal controls set
+	// anymore (as of user feedback from bri 10/09).  So we cheat here and force 'has_focus'
+	// to 'true' (or, actually, we use a setting)
+	bool has_focus = (gSavedSettings.getBOOL("PrimMediaControlsUseHoverControlSet")) ? media_impl->hasFocus() : true;
 	setVisible(enabled);
 
 	if (objectp)
@@ -310,8 +313,8 @@ void LLPanelPrimMediaControls::updateShape()
 			fwd_ctrl->setEnabled(has_focus);
 			media_address_ctrl->setVisible(false);
 			media_address_ctrl->setEnabled(false);
-			media_play_slider_panel->setVisible(!mini_controls);
-			media_play_slider_panel->setEnabled(!mini_controls);
+			media_play_slider_panel->setVisible(has_focus && !mini_controls);
+			media_play_slider_panel->setEnabled(has_focus && !mini_controls);
 				
 			volume_ctrl->setVisible(has_focus);
 			volume_up_ctrl->setVisible(has_focus);
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index 517a76ce3dd6aa4c9b06677a19c25ce48d4bba6c..d6dde0c93e382463f4015c0ed3fce0c773a7637f 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -258,7 +258,7 @@ class LLViewerMediaImpl
 	void calculateInterest();
 	F64 getInterest() const { return mInterest; };
 	F64 getApproximateTextureInterest();
-	S32 getProximity() { return mProximity; };
+	S32 getProximity() const { return mProximity; };
 	
 	// Mark this object as being used in a UI panel instead of on a prim
 	// This will be used as part of the interest sorting algorithm.