diff --git a/source/RobotAPI/libraries/robotstate/remote/LinkedPose.cpp b/source/RobotAPI/libraries/robotstate/remote/LinkedPose.cpp
index edb15c860f199bf3e6fb2d7715a8fad22f92c781..f3c82135429ba3eb1f00f8ec0187d8afaf1f931a 100644
--- a/source/RobotAPI/libraries/robotstate/remote/LinkedPose.cpp
+++ b/source/RobotAPI/libraries/robotstate/remote/LinkedPose.cpp
@@ -145,6 +145,27 @@ namespace armarx {
         }
     }
 
+#if ICE_INT_VERSION >= 30500
+    void LinkedPose::__read(IceInternal::BasicStream *__is)
+    {
+        LinkedPoseBase::__read(__is);
+        if(referenceRobot)
+        {
+            //ARMARX_WARNING_S << "Calling referenceRobot->ref() in __read(IceInternal::BasicStream *__is, bool __rid) of LinkedPose";
+            referenceRobot->ref();
+        }
+    }
+
+    void LinkedPose::__read(const Ice::InputStreamPtr &__is)
+    {
+        LinkedPoseBase::__read(__is);
+        if(referenceRobot)
+        {
+            //ARMARX_WARNING_S << "Calling referenceRobot->ref() in __read(const Ice::InputStreamPtr &__is, bool __rid) of LinkedPose";
+            referenceRobot->ref();
+        }
+    }
+#else
     void LinkedPose::__read(IceInternal::BasicStream *__is, bool __rid)
     {
         LinkedPoseBase::__read(__is, __rid);
@@ -164,6 +185,7 @@ namespace armarx {
             referenceRobot->ref();
         }
     }
+#endif
 
     /*void LinkedPose::__write(IceInternal::BasicStream *__os) const
     {
diff --git a/source/RobotAPI/libraries/robotstate/remote/LinkedPose.h b/source/RobotAPI/libraries/robotstate/remote/LinkedPose.h
index 82d73470800678833485e2555ee6e44c9678a37c..ce13e5c475856b30788f49c575f6857fb6a4ab78 100644
--- a/source/RobotAPI/libraries/robotstate/remote/LinkedPose.h
+++ b/source/RobotAPI/libraries/robotstate/remote/LinkedPose.h
@@ -127,8 +127,13 @@ namespace armarx
         virtual void serialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = ::Ice::Current()) const;
         virtual void deserialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = ::Ice::Current());
 
+#if ICE_INT_VERSION >= 30500
+        virtual void __read(::IceInternal::BasicStream *__is);
+        virtual void __read(const ::Ice::InputStreamPtr &__is);
+#else
         virtual void __read(::IceInternal::BasicStream *__is, bool __rid);
         virtual void __read(const ::Ice::InputStreamPtr &__is, bool __rid);
+#endif
     };
 
     typedef IceInternal::Handle<LinkedPose> LinkedPosePtr;