diff --git a/src/mhtree/ObjectToNodeDistanceRank.java b/src/mhtree/ObjectToNodeDistanceRank.java
index ea83379c7ab14fd9fc3537ee0b0ac6f53838541d..6da2fa9eb5ba8400015ae494f3eb01d760dec2f2 100644
--- a/src/mhtree/ObjectToNodeDistanceRank.java
+++ b/src/mhtree/ObjectToNodeDistanceRank.java
@@ -5,14 +5,16 @@ import messif.objects.LocalAbstractObject;
 public class ObjectToNodeDistanceRank implements Comparable<ObjectToNodeDistanceRank> {
     private final Node node;
     private final LocalAbstractObject object;
+    private final float distance;
 
     public ObjectToNodeDistanceRank(Node node, LocalAbstractObject object) {
         this.node = node;
         this.object = object;
+        this.distance = node.getDistance(object);
     }
 
     public int compareTo(ObjectToNodeDistanceRank rank) {
-        return Float.compare(node.getDistance(object), rank.node.getDistance(object));
+        return Float.compare(distance, rank.node.getDistance(object));
     }
 
     public Node getNode() {