diff --git a/Runtime/Scripts/WorldAnalysisARFoundation.cs b/Runtime/Scripts/WorldAnalysisARFoundation.cs
index 0292ec05538f7bc565d76d5ebf7404ddcee15bd2..cb2abda0a9791a7af680aa8accc1689f0b547da4 100644
--- a/Runtime/Scripts/WorldAnalysisARFoundation.cs
+++ b/Runtime/Scripts/WorldAnalysisARFoundation.cs
@@ -157,7 +157,6 @@ public class WorldAnalysisARFoundation : MonoBehaviour, WorldAnalysisInterface
             foreach (KeyValuePair<Guid, SubscriptionInfo> subPose in m_subscriptionsPoses)
             {
                 RelocalizationInformation information = m_relocalizationInformations[subPose.Value.uuidTarget];
-                RelocObjects firstRelocInfo = information.RelocObjects.First();
                 Dictionary<Guid, RelocObjects> temp = information.RelocObjects.ToDictionary(relocObject => relocObject.Trackable.UUID, relocObject => relocObject);
 
                 /// Trackable selection
@@ -234,8 +233,9 @@ public class WorldAnalysisARFoundation : MonoBehaviour, WorldAnalysisInterface
                         // For now we just ignore it : we could also send not tracked todo
                         continue;
                     }
-
-                    Matrix4x4 tr = WorldStorageUnityHelper.ConvertETSIARFTransform3DToUnity(firstRelocInfo.Transform3D);  // Changed to WS / SylR
+                    
+                    Matrix4x4 tr = WorldStorageUnityHelper.ConvertETSIARFTransform3DToUnity(temp[bestTrackableCandidateID].Transform3D);  // Changed to WS / SylR
+  
                     UnityEngine.Vector3 tr_trans = WorldAnalysisUnityHelper.ExtractTranslationFromMatrix(tr);
                     UnityEngine.Quaternion tr_rot = WorldAnalysisUnityHelper.ExtractRotationFromMatrix(tr);