diff --git a/build/includes/global/message_atoms.hpp b/build/includes/global/message_atoms.hpp
index 5854774d627b832d5ab5b5593e7ed5cdaedd754a..260aa7cad1edf4c3531b509e4f4134a53a60d63c 100644
--- a/build/includes/global/message_atoms.hpp
+++ b/build/includes/global/message_atoms.hpp
@@ -128,6 +128,10 @@ CAF_BEGIN_TYPE_ID_BLOCK(summa, first_custom_type_id)
     // Reciever:
     // Summary:
     CAF_ADD_ATOM(summa, no_more_batches)
+    // Sender:
+    // Reciever:
+    // Summary:
+    CAF_ADD_ATOM(summa, update_backup_server_list)
     // Struct Types
     CAF_ADD_TYPE_ID(summa, (Distributed_Settings))
     CAF_ADD_TYPE_ID(summa, (Summa_Actor_Settings))
@@ -141,12 +145,12 @@ CAF_BEGIN_TYPE_ID_BLOCK(summa, first_custom_type_id)
     CAF_ADD_TYPE_ID(summa, (Batch))
     CAF_ADD_TYPE_ID(summa, (Batch_Container))
 
-
     CAF_ADD_TYPE_ID(summa, (std::vector<std::vector<double>>))
     CAF_ADD_TYPE_ID(summa, (std::vector<std::vector<int>>))
     CAF_ADD_TYPE_ID(summa, (std::vector<int>))
     CAF_ADD_TYPE_ID(summa, (std::vector<double>))
     CAF_ADD_TYPE_ID(summa, (std::vector<long int>))
+    CAF_ADD_TYPE_ID(summa, (std::vector<std::tuple<caf::actor, std::string>>))
 
 
 CAF_END_TYPE_ID_BLOCK(summa)
\ No newline at end of file
diff --git a/build/includes/summa_actor/summa_client.hpp b/build/includes/summa_actor/summa_client.hpp
index 308c0ad3a3e1a8eeaba1c9d607742ee85613f3c4..4e5dfa51049c311fe722b8629ca62eb49a6708d3 100644
--- a/build/includes/summa_actor/summa_client.hpp
+++ b/build/includes/summa_actor/summa_client.hpp
@@ -22,7 +22,7 @@ struct summa_client_state {
     int client_id; // id held by server
 
     // tuple is the actor ref and hostname of the backup server
-    std::vector<std::tuple<caf::actor, std::string>> backup_servers;
+    std::vector<std::tuple<caf::actor, std::string>> backup_servers_list;
 
     Batch current_batch;
 
diff --git a/build/source/actors/summa_actor/summa_backup_server.cpp b/build/source/actors/summa_actor/summa_backup_server.cpp
index 5fc7071a28f28d3f104da3f8f19a5ccac23dc269..caa7470dcea764a24ecce4598595958ad0868e16 100644
--- a/build/source/actors/summa_actor/summa_backup_server.cpp
+++ b/build/source/actors/summa_actor/summa_backup_server.cpp
@@ -80,12 +80,18 @@ behavior summa_backup_server(stateful_actor<summa_server_state>* self, const act
             aout(self) << "We are now connected to the lead server\n";
         },
 
+        // get the list of batches and clients from the lead server
         [=](update_with_current_state, Batch_Container& batch_container, Client_Container& client_container) {
             aout(self) << "Received the containers from the lead server\n";
             self->state.batch_container = &batch_container;
             self->state.client_container = &client_container;
         },
 
+        [=](update_backup_server_list, std::vector<std::tuple<caf::actor, std::string>> backup_servers) {
+            aout(self) << "Received the backup server list from the lead server\n";
+            self->state.backup_servers_list = backup_servers;
+        },
+
         // Client finished a batch and the lead server has sent an update
         [=](done_batch, actor client_actor, Batch& batch) {
             aout(self) << "Batch: " << batch.getBatchID() << " is done\n";
@@ -103,7 +109,6 @@ behavior summa_backup_server(stateful_actor<summa_server_state>* self, const act
         [=](no_more_batches, actor client_actor) {
             aout(self) << "No more batches to distribute\n";
             self->state.client_container->setBatchForClient(client_actor, {});
-
         },
 
         // Simulation has finished
diff --git a/build/source/actors/summa_actor/summa_client.cpp b/build/source/actors/summa_actor/summa_client.cpp
index ae642e67b4db18b7e99b3a1ad8260396ec0609b9..34ef6673b670ae0121547adae38e0573457cb9c1 100644
--- a/build/source/actors/summa_actor/summa_client.cpp
+++ b/build/source/actors/summa_actor/summa_client.cpp
@@ -69,6 +69,11 @@ behavior summa_client(stateful_actor<summa_client_state>* self, const actor& ser
             
         },
 
+        [=](update_backup_server_list, std::vector<std::tuple<caf::actor, std::string>> backup_servers) {
+            aout(self) << "Received the backup server list from the server\n";
+            self->state.backup_servers_list = backup_servers;
+        },
+
         // Received batch from server to compute
         [=](Batch& batch) {
             self->state.current_batch = batch;
@@ -104,7 +109,6 @@ behavior summa_client(stateful_actor<summa_client_state>* self, const actor& ser
                 self->send(server_actor, done_batch_v, self, self->state.current_batch);
 
             }
-
         },
 
         [=](time_to_exit) {
diff --git a/build/source/actors/summa_actor/summa_server.cpp b/build/source/actors/summa_actor/summa_server.cpp
index c857643e749241ff8c61b8591cf75d8795576efb..2c9d0a26f5f335868bbb690d72f087b4a03686ac 100644
--- a/build/source/actors/summa_actor/summa_server.cpp
+++ b/build/source/actors/summa_actor/summa_server.cpp
@@ -77,6 +77,14 @@ behavior summa_server(stateful_actor<summa_server_state>* self) {
             self->send(backup_server, connect_as_backup_v); // confirm connection with sender
             // Now we need to send the backup actor our current state
             self->send(backup_server, update_with_current_state_v, *self->state.batch_container, *self->state.client_container);
+            std::vector<Client> clients = self->state.client_container->getClientList();
+            for (Client client : clients) {
+                self->send(client.getActor(), update_backup_server_list_v, self->state.backup_servers_list);
+            }
+            
+            for(std::tuple<actor, std::string> backup_server : self->state.backup_servers_list) {
+                self->send(std::get<0>(backup_server), update_backup_server_list_v, self->state.backup_servers_list);
+            }
 
         },