diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index 3db9587797d590b08bb23dbaa88111b9a005b0b1..104827f4a3dd5061299acf9a69b8abbecb4bd6e1 100644
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
@@ -144,9 +144,6 @@ BOOL LLFloaterTOS::postBuild()
 		// Don't use the start_url parameter for this browser instance -- it may finish loading before we get to add our observer.
 		// Store the URL separately and navigate here instead.
 		web_browser->navigateTo( getString( "loading_url" ) );
-		
-		gResponsePtr = LLIamHere::build( this );
-		LLHTTPClient::get( getString( "real_url" ), gResponsePtr );
 	}
 
 	return TRUE;
@@ -163,10 +160,19 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )
 		if ( alive )
 		{
 			// navigate to the "real" page 
-			loadIfNeeded();
+			if(!mRealNavigateBegun && mSiteAlive)
+			{
+				LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html");
+				if(web_browser)
+				{
+					mRealNavigateBegun = true;
+					web_browser->navigateTo( getString( "real_url" ) );
+				}
+			}
 		}
 		else
 		{
+			LL_INFOS("TOS") << "ToS page: ToS page unavailable!" << LL_ENDL;
 			// normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads)
 			// but if the page is unavailable, we need to do this now
 			LLCheckBoxCtrl* tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
@@ -175,22 +181,8 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )
 	}
 }
 
-void LLFloaterTOS::loadIfNeeded()
-{
-	if(!mRealNavigateBegun && mSiteAlive)
-	{
-		LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html");
-		if(web_browser)
-		{
-			mRealNavigateBegun = true;
-			web_browser->navigateTo( getString( "real_url" ) );
-		}
-	}
-}
-
 LLFloaterTOS::~LLFloaterTOS()
 {
-
 	// tell the responder we're not here anymore
 	if ( gResponsePtr )
 		gResponsePtr->setParent( 0 );
@@ -215,7 +207,7 @@ void LLFloaterTOS::updateAgree(LLUICtrl*, void* userdata )
 void LLFloaterTOS::onContinue( void* userdata )
 {
 	LLFloaterTOS* self = (LLFloaterTOS*) userdata;
-	llinfos << "User agrees with TOS." << llendl;
+	LL_INFOS("TOS") << "User agrees with TOS." << LL_ENDL;
 
 	if(self->mReplyPumpName != "")
 	{
@@ -229,7 +221,7 @@ void LLFloaterTOS::onContinue( void* userdata )
 void LLFloaterTOS::onCancel( void* userdata )
 {
 	LLFloaterTOS* self = (LLFloaterTOS*) userdata;
-	llinfos << "User disagrees with TOS." << llendl;
+	LL_INFOS("TOS") << "User disagrees with TOS." << LL_ENDL;
 	LLNotificationsUtil::add("MustAgreeToLogIn", LLSD(), LLSD(), login_alert_done);
 
 	if(self->mReplyPumpName != "")
@@ -254,11 +246,13 @@ void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev
 		if(!mLoadingScreenLoaded)
 		{
 			mLoadingScreenLoaded = true;
-			loadIfNeeded();
+
+			gResponsePtr = LLIamHere::build( this );
+			LLHTTPClient::get( getString( "real_url" ), gResponsePtr );
 		}
 		else if(mRealNavigateBegun)
 		{
-			llinfos << "NAVIGATE COMPLETE" << llendl;
+			LL_INFOS("TOS") << "TOS: NAVIGATE COMPLETE" << LL_ENDL;
 			// enable Agree to TOS radio button now that page has loaded
 			LLCheckBoxCtrl * tos_agreement = getChild<LLCheckBoxCtrl>("agree_chk");
 			tos_agreement->setEnabled( true );
diff --git a/indra/newview/llfloatertos.h b/indra/newview/llfloatertos.h
index 6ea56408eeaf1b0e39936a53e8587ebcd881b6cf..d985ccbab0c7dbfad745532b0408c4a9556fe45b 100644
--- a/indra/newview/llfloatertos.h
+++ b/indra/newview/llfloatertos.h
@@ -67,8 +67,6 @@ class LLFloaterTOS :
 
 private:
 
-	void			loadIfNeeded();
-	
 	std::string		mMessage;
 	int				mWebBrowserWindowId;
 	bool			mLoadingScreenLoaded;
diff --git a/install.xml b/install.xml
index f223521689047fe8bd0b2c0e2ea048b1bd223085..8a7bac42ebd264ec8d5c5d162d9e6077155c2915 100644
--- a/install.xml
+++ b/install.xml
@@ -1386,23 +1386,23 @@ anguage Infrstructure (CLI) international standard</string>
           <key>darwin</key>
           <map>
             <key>md5sum</key>
-            <string>38d836fa53d073b9f197eecd0f5615f0</string>
+            <string>3b7fa3a7ac07034a747759f22956b6d5</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8181-darwin-20100319.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8385-darwin-20100412.tar.bz2</uri>
           </map>
           <key>linux</key>
           <map>
             <key>md5sum</key>
-            <string>dd8dd1c223ecb8b232bf626cca6c63ac</string>
+            <string>3f834e00fa06e636814f22ad8685e407</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8181-linux-20100319.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8385-linux-20100412.tar.bz2</uri>
           </map>
           <key>windows</key>
           <map>
             <key>md5sum</key>
-            <string>8b4ce60f25823cd38896cb3b7eb0dd43</string>
+            <string>089a715a33cb48e030c9206966dfe31b</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8181-windows-20100319.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8385-windows-20100412.tar.bz2</uri>
           </map>
         </map>
       </map>