diff --git a/autobuild.xml b/autobuild.xml
index feb4260c18869f6bffda3012d5023621c0d5f6ab..04b08dc5bf30aee265dea3d5479aa4f63a7fbc5c 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1692,7 +1692,7 @@
           <key>darwin</key>
           <map>
             <key>archive</key>
-            <map>              
+            <map>
               <key>hash</key>
               <string>3855bd40f950e3c22739ae8f3ee2afc9</string>
               <key>url</key>
@@ -1705,10 +1705,10 @@
           <map>
             <key>archive</key>
             <map>
-              <key>hash</key>              
+              <key>hash</key>
               <string>d1521becaf21bf7233173722af63f57d</string>
               <key>url</key>
-              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/15257/98440/kdu-7.10.4.513518-darwin64-513518.tar.bz2</string>              
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/15257/98440/kdu-7.10.4.513518-darwin64-513518.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1717,10 +1717,10 @@
           <map>
             <key>archive</key>
             <map>
-              <key>hash</key>              
+              <key>hash</key>
               <string>43d7a6a69a54534a736f132e9c81795b</string>
               <key>url</key>
-              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/15255/98451/kdu-7.10.4.513518-linux-513518.tar.bz2</string>              
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/15255/98451/kdu-7.10.4.513518-linux-513518.tar.bz2</string>
             </map>
             <key>name</key>
             <string>linux</string>
@@ -1752,11 +1752,11 @@
           <key>windows64</key>
           <map>
             <key>archive</key>
-            <map>              
+            <map>
               <key>hash</key>
               <string>da3b1ea90797b189d80ab5d50fdf05d4</string>
               <key>url</key>
-              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/15260/98469/kdu-7.10.4.513518-windows64-513518.tar.bz2</string>              
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/15260/98469/kdu-7.10.4.513518-windows64-513518.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
@@ -3260,9 +3260,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>86f6708f393c162cd4f92426b0a3cde7</string>
+              <string>f45c0a5e7b4601b355e163bf62f5718e</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15341/99062/viewer_manager-1.0.513570-darwin64-513570.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/20587/147509/viewer_manager-1.0.517052-darwin64-517052.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -3284,9 +3284,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>c4dec51062ad78c09b11f7432aff4d1d</string>
+              <string>d2443caf062697430071d458a965f611</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/17857/121832/viewer_manager-1.0.515286-windows-515286.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/20588/147516/viewer_manager-1.0.517052-windows-517052.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -3297,7 +3297,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
         <key>source_type</key>
         <string>hg</string>
         <key>version</key>
-        <string>1.0.515286</string>
+        <string>1.0.517052</string>
       </map>
       <key>vlc-bin</key>
       <map>
diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp
index 3165ce0743644d62274a2089c0d9757b2c5abe75..67e9fad1abf2b14e890624dfaee349f33ccd9350 100644
--- a/indra/llcommon/llcoros.cpp
+++ b/indra/llcommon/llcoros.cpp
@@ -284,17 +284,20 @@ void LLCoros::setStackSize(S32 stacksize)
 void LLCoros::printActiveCoroutines()
 {
     LL_INFOS("LLCoros") << "Number of active coroutines: " << (S32)mCoros.size() << LL_ENDL;
-    LL_INFOS("LLCoros") << "-------------- List of active coroutines ------------";
-    CoroMap::iterator iter;
-    CoroMap::iterator end = mCoros.end();
-    F64 time = LLTimer::getTotalSeconds();
-    for (iter = mCoros.begin(); iter != end; iter++)
+    if (mCoros.size() > 0)
     {
-        F64 life_time = time - iter->second->mCreationTime;
-        LL_CONT << LL_NEWLINE << "Name: " << iter->first << " life: " << life_time;
+        LL_INFOS("LLCoros") << "-------------- List of active coroutines ------------";
+        CoroMap::iterator iter;
+        CoroMap::iterator end = mCoros.end();
+        F64 time = LLTimer::getTotalSeconds();
+        for (iter = mCoros.begin(); iter != end; iter++)
+        {
+            F64 life_time = time - iter->second->mCreationTime;
+            LL_CONT << LL_NEWLINE << "Name: " << iter->first << " life: " << life_time;
+        }
+        LL_CONT << LL_ENDL;
+        LL_INFOS("LLCoros") << "-----------------------------------------------------" << LL_ENDL;
     }
-    LL_CONT << LL_ENDL;
-    LL_INFOS("LLCoros") << "-----------------------------------------------------" << LL_ENDL;
 }
 
 #if LL_WINDOWS
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index d8ef5b39adecf94e203f94f22fec83de2c83a54e..f3a2ed94085baa3d6aa31a5ce03052eeb5d81c04 100644
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
@@ -1168,12 +1168,12 @@ void LLPanelNearByMedia::onClickSelectedMediaMute()
 			F32 volume = impl->getVolume();
 			if(volume > 0.0)
 			{
-				impl->setVolume(0.0);
+				impl->setMute(true);
 			}
 			else if (mVolumeSlider->getValueF32() == 0.0)
 			{
-				impl->setVolume(1.0);
-				mVolumeSlider->setValue(1.0);
+				impl->setMute(false);
+				mVolumeSlider->setValue(impl->getVolume());
 			}
 			else 
 			{
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 4334cbfda33f2f12cc5b9c5b4f59f715d91d79b5..22a21c9ca3c60e3d0144804c93c3cf15bdc31daa 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1555,6 +1555,7 @@ LLViewerMediaImpl::LLViewerMediaImpl(	  const LLUUID& texture_id,
 	mNavigateServerRequest(false),
 	mMediaSourceFailed(false),
 	mRequestedVolume(1.0f),
+	mPreviousVolume(1.0f),
 	mIsMuted(false),
 	mNeedsMuteCheck(false),
 	mPreviousMediaState(MEDIA_NONE),
@@ -2081,6 +2082,20 @@ void LLViewerMediaImpl::setVolume(F32 volume)
 	updateVolume();
 }
 
+//////////////////////////////////////////////////////////////////////////////////////////
+void LLViewerMediaImpl::setMute(bool mute)
+{
+	if (mute)
+	{
+		mPreviousVolume = mRequestedVolume;
+		setVolume(0.0);
+	}
+	else
+	{
+		setVolume(mPreviousVolume);
+	}
+}
+
 //////////////////////////////////////////////////////////////////////////////////////////
 void LLViewerMediaImpl::updateVolume()
 {
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index c52960dfcfe85e8e58625f6e905d7c52e61ff572..e2e758befb6df2a59946f55cae1671100075c6b3 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -216,6 +216,7 @@ class LLViewerMediaImpl
 	void skipBack(F32 step_scale);
 	void skipForward(F32 step_scale);
 	void setVolume(F32 volume);
+	void setMute(bool mute);
 	void updateVolume();
 	F32 getVolume();
 	void focus(bool focus);
@@ -448,6 +449,7 @@ class LLViewerMediaImpl
 	bool mNavigateServerRequest;
 	bool mMediaSourceFailed;
 	F32 mRequestedVolume;
+	F32 mPreviousVolume;
 	bool mIsMuted;
 	bool mNeedsMuteCheck;
 	int mPreviousMediaState;