diff --git a/src/load_balance_schemes.c b/src/load_balance_schemes.c
index 156a12df9e22fce1b7ca3efab18059fe1c57526f..05290b2890ad1ebbf1c83302ce81f0ffe9e43be7 100644
--- a/src/load_balance_schemes.c
+++ b/src/load_balance_schemes.c
@@ -289,7 +289,7 @@ void grr_main(thread_struct* thread_args_ptr) {
     int msg_received = 0;
     int* recv_array;
     int msg_status_flag;
-    int grr_counter;
+    int grr_counter = 0;
     int temp = 0;
     MPI_Request request_var;
 
@@ -348,7 +348,7 @@ void grr_main(thread_struct* thread_args_ptr) {
                     MPI_Recv(&temp, 1, MPI_INT, grr_index, tag_grr_query, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
 
                     grr_counter = (grr_counter + 1) % thread_args_ptr->total_processors;
-                    while (grr_counter == 0 || grr_counter == grr_index) {
+                    while (grr_counter <= 0 || grr_counter == grr_index) {
                         grr_counter = (grr_counter + 1) % thread_args_ptr->total_processors;
                     }