diff --git a/server.py b/server.py
index 27f1e799ddb2ae98e3bd72910c02bf4351197e2b..6e1c1ebc38e300cccdbb63ae3c2d48f51517af80 100644
--- a/server.py
+++ b/server.py
@@ -33,6 +33,7 @@ class Server():
         self.informServer = False
         self.serverList = [] # list if servers and their addresses
         self.leader_uuid = '' # fix the leader IP
+        self.leader_ip = ''
         self.is_leader = False  # New variable to track if the server is the leader
         self.uuid = str(uuid.uuid4())
         self.participant = False
@@ -315,6 +316,7 @@ class Server():
                 if data:
                     self.leader_heartbeat_last_received = time.time()
                     sender_ip = address[0]
+                    self.leader_ip = sender_ip
                     if sender_ip != MY_IP:
                         print(f"Received heartbeat from {sender_ip}: {data.decode()}")
 
@@ -327,8 +329,8 @@ class Server():
                     if self.missed_heartbeats >= self.missed_heartbeats_limit:
                         print("Missed heartbeats limit reached. Initiating leader election.")
 
-                        thread_election.join()
-                        thread_election.start()
+                        self.serverList.remove(self.leader_ip)
+                        self.basic_lcr()
 
                         # Reset missed heartbeats count
                         self.missed_heartbeats = 0