diff --git a/src/mhtree/MHTree.java b/src/mhtree/MHTree.java
index ea9876115386856714bbce938b028c04404dbb93..038022534995e7175b93bee83ad239e56a761152 100644
--- a/src/mhtree/MHTree.java
+++ b/src/mhtree/MHTree.java
@@ -53,13 +53,17 @@ public class MHTree extends Algorithm implements Serializable {
         while (!queue.isEmpty() && operation.getAnswerCount() < operation.getK()) {
             Node currentNode = queue.poll().getNode();
 
-            if (currentNode.isLeaf())
-                for (LocalAbstractObject obj : currentNode.getObjects())
-                    operation.addToAnswer(obj);
+            if (currentNode.isLeaf()) {
+                for (LocalAbstractObject obj : currentNode.getObjects()) {
+                    if (operation.getAnswerCount() >= operation.getK() && currentNode.getDistance(object) > operation.getAnswerDistance())
+                        continue;
 
-            if (!currentNode.isLeaf())
+                    operation.addToAnswer(obj);
+                }
+            } else {
                 for (Node child : ((InternalNode) currentNode).getChildren())
                     queue.add(new ObjectToNodeDistanceRank(child, object));
+            }
         }
 
         operation.endOperation();