diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp
index 7178042b326f1192f2e101238ef046519ce329b3..51967d54a0514eb79601d6f4a264051180e642aa 100644
--- a/indra/newview/lleventpoll.cpp
+++ b/indra/newview/lleventpoll.cpp
@@ -45,7 +45,7 @@ namespace LLEventPolling
 namespace Details
 {
 
-    class LLEventPollImpl
+    class LLEventPollImpl: public boost::enable_shared_from_this<LLEventPollImpl>
     {
     public:
         LLEventPollImpl(const LLHost &sender);
@@ -113,7 +113,7 @@ namespace Details
         {
             std::string coroname =
                 LLCoros::instance().launch("LLEventPollImpl::eventPollCoro",
-                boost::bind(&LLEventPollImpl::eventPollCoro, this, url));
+                boost::bind(&LLEventPollImpl::eventPollCoro, this->shared_from_this(), url));
             LL_INFOS("LLEventPollImpl") << coroname << " with  url '" << url << LL_ENDL;
         }
     }
@@ -273,8 +273,7 @@ namespace Details
 LLEventPoll::LLEventPoll(const std::string&	poll_url, const LLHost& sender):
     mImpl()
 { 
-    mImpl = boost::unique_ptr<LLEventPolling::Details::LLEventPollImpl>
-            (new LLEventPolling::Details::LLEventPollImpl(sender));
+    mImpl = boost::shared_ptr<LLEventPolling::Details::LLEventPollImpl>(new LLEventPolling::Details::LLEventPollImpl(sender));
     mImpl->start(poll_url);
 }
 
diff --git a/indra/newview/lleventpoll.h b/indra/newview/lleventpoll.h
index e2afd9226bcf9cbb0163bc1401b19a64992426b6..d305135b18edf48ed49ba5deae1743c1dc615552 100644
--- a/indra/newview/lleventpoll.h
+++ b/indra/newview/lleventpoll.h
@@ -57,7 +57,7 @@ class LLEventPoll
 
 
 private:
-    boost::unique_ptr<LLEventPolling::Details::LLEventPollImpl>    mImpl;
+    boost::shared_ptr<LLEventPolling::Details::LLEventPollImpl>  mImpl;
 };