diff --git a/src/remoteClient/clientContextImpl.cpp b/src/remoteClient/clientContextImpl.cpp
index db04760..b6d15b1 100644
--- a/src/remoteClient/clientContextImpl.cpp
+++ b/src/remoteClient/clientContextImpl.cpp
@@ -3327,7 +3327,7 @@ private:
virtual ChannelProvider::shared_pointer getProvider()
{
- return m_context;
+ return m_context->external_from_this();
}
// NOTE: synchronization guarantees that transport is non-0 and state == CONNECTED.
@@ -3377,8 +3377,8 @@ private:
return m_channelID;
}
public:
- virtual ClientContextImpl::shared_pointer getContext() {
- return m_context;
+ virtual ClientContextImpl* getContext() {
+ return m_context.get();
}
virtual pvAccessID getSearchInstanceID() {
diff --git a/src/remoteClient/pv/clientContextImpl.h b/src/remoteClient/pv/clientContextImpl.h
index 45ed1f2..741599e 100644
--- a/src/remoteClient/pv/clientContextImpl.h
+++ b/src/remoteClient/pv/clientContextImpl.h
@@ -47,7 +47,7 @@ public:
virtual void destroyChannel(bool force) = 0;
virtual void connectionCompleted(pvAccessID sid/*, rights*/) = 0;
virtual void createChannelFailed() = 0;
- virtual std::tr1::shared_ptr getContext() = 0;
+ virtual ClientContextImpl* getContext() = 0;
virtual void channelDestroyedOnServer() = 0;
virtual pvAccessID getServerChannelID() = 0;