diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index 9bb4fe59ad9801e79751d352d6badb0834149952..3597d70e0d70efcc2a77579e670c3b01edd06d23 100755
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
@@ -44,6 +44,7 @@
 #include "message.h"
 #include "llstartup.h"              // login_alert_done
 #include "llcorehttputil.h"
+#include "llfloaterreg.h"
 
 LLFloaterTOS::LLFloaterTOS(const LLSD& data)
 :	LLModalDialog( data["message"].asString() ),
@@ -196,7 +197,7 @@ void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev
             std::string url(getString("real_url"));
 
             LLCoros::instance().launch("LLFloaterTOS::testSiteIsAliveCoro",
-                boost::bind(&LLFloaterTOS::testSiteIsAliveCoro, this, url));
+                boost::bind(&LLFloaterTOS::testSiteIsAliveCoro, url));
 		}
 		else if(mRealNavigateBegun)
 		{
@@ -216,18 +217,25 @@ void LLFloaterTOS::testSiteIsAliveCoro(std::string url)
     LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
     LLCore::HttpOptions::ptr_t httpOpts = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions);
 
+
     httpOpts->setWantHeaders(true);
 
-    LL_INFOS("HttpCoroutineAdapter", "genericPostCoro") << "Generic POST for " << url << LL_ENDL;
+
+    LL_INFOS("testSiteIsAliveCoro") << "Generic POST for " << url << LL_ENDL;
 
     LLSD result = httpAdapter->getAndSuspend(httpRequest, url);
 
     LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
     LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
 
+    LLFloaterTOS *that = LLFloaterReg::findTypedInstance<LLFloaterTOS>("message_tos");
     // double not.  
-    // First ! returns a boolean error status, second ! is true if success result.
-    setSiteIsAlive(!!status); 
+    if (that)
+        that->setSiteIsAlive(static_cast<bool>(status)); 
+    else
+    {
+        LL_WARNS("testSiteIsAliveCoro") << "Dialog canceled before response." << LL_ENDL;
+    }
 }
 
 
diff --git a/indra/newview/llfloatertos.h b/indra/newview/llfloatertos.h
index 2748b205130946cf8a9da286ad9828dced603c72..b71b80ed24f66be7d94a40593706b6f48e04cfae 100755
--- a/indra/newview/llfloatertos.h
+++ b/indra/newview/llfloatertos.h
@@ -62,7 +62,7 @@ class LLFloaterTOS :
 	/*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
 
 private:
-    void testSiteIsAliveCoro(std::string url);
+    static void testSiteIsAliveCoro(std::string url);
 
 	std::string		mMessage;
 	bool			mLoadingScreenLoaded;