diff --git a/hyracks-storage-am-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/rtree/impls/UnorderedSlotManager.java b/hyracks-storage-am-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/rtree/impls/UnorderedSlotManager.java
index 34155d4..631cfe6 100644
--- a/hyracks-storage-am-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/rtree/impls/UnorderedSlotManager.java
+++ b/hyracks-storage-am-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/rtree/impls/UnorderedSlotManager.java
@@ -80,17 +80,20 @@
 
     public void deleteEmptySlots() {
         int slotOff = getSlotStartOff();
-        int numOfSlots = ((getSlotStartOff() - getSlotEndOff()) / slotSize) + 1;
-        for (int i = 0; i < numOfSlots; i++) {
+        while (slotOff >= getSlotEndOff()) {
             if (frame.getBuffer().getInt(slotOff) == -1) {
-                int slotStartOff = getSlotEndOff();
-                int length = slotOff - slotStartOff;
-                System.arraycopy(frame.getBuffer().array(), slotStartOff, frame.getBuffer().array(), slotStartOff
-                        + slotSize, length);
-                ((NSMRTreeFrame) frame).setTupleCount(frame.getTupleCount() - 1);
-            } else {
-                slotOff -= slotSize;
+                while (frame.getBuffer().getInt(getSlotEndOff()) == -1) {
+                    ((NSMRTreeFrame) frame).setTupleCount(frame.getTupleCount() - 1);
+                }
+                if (slotOff > getSlotEndOff()) {
+                    System.arraycopy(frame.getBuffer().array(), getSlotEndOff(), frame.getBuffer().array(), slotOff,
+                            slotSize);
+                    ((NSMRTreeFrame) frame).setTupleCount(frame.getTupleCount() - 1);
+                } else {
+                    break;
+                }
             }
+            slotOff -= slotSize;
         }
     }
 }
