diff --git a/a.out b/a.out
index 141e658942b535d3ec055993f72e88b14421b025..427dc8639b9c9300cda49e4a4301f993551e324b 100644
Binary files a/a.out and b/a.out differ
diff --git a/t2.c b/t2.c
index 284893cde836f39584d44264e054e866f3bd22aa..ae0d0b0c7934b97d78de85a8958acbe931b1912a 100644
--- a/t2.c
+++ b/t2.c
@@ -179,6 +179,11 @@ void calculate_finger_table(Node* head, int max_id) {
             while(temp->id < finger_id && temp->next != head) {
                 temp = temp->next;
             }
+            if(temp->next == head && temp->id < finger_id){
+                temp = head;
+            }
+            if(temp->id == current->id)
+                temp = temp->next;
             current->finger[k-1] = temp->id;
         }
         current->tam_finger = log2_max_id;