diff --git a/src/misc.py b/src/misc.py
index 8d1a4dbe7ec12058aff43da89845d515f2be8e20..24d9b0dea4c58689fa7c39f8204a49048480e39a 100644
--- a/src/misc.py
+++ b/src/misc.py
@@ -765,11 +765,12 @@ def calc_trash_distances(data_manager, roomba_only=False):
         _calc_trash_distances()
 
 
-def calc_traveling_salesman(data_manager, calc_new=True, debug=False):
+def calc_traveling_salesman(data_manager, calc_new=True, total_move_reset=True, debug=False):
     """
     Calculates the approximately-ideal overall path to visit all trash tiles.
     :param data_manager: Data manager data structure. Consolidates useful program data to one location.
     :param calc_new: Bool indicating if previously calculated path data should be discarded. Such as wall entity update.
+    :param total_move_reset: Bool indicating if "total moves counter" should reset.
     """
     logger.debug('calc_traveling_salesman()')
 
@@ -790,6 +791,7 @@ def calc_traveling_salesman(data_manager, calc_new=True, debug=False):
     if calc_new:
         data_manager.ideal_overall_path = calculated_path
         data_manager.gui_data['optimal_counter'] = curr_total_dist
+    if total_move_reset:
         data_manager.gui_data['total_move_counter'] = 0
 
     logger.debug('')
diff --git a/src/systems.py b/src/systems.py
index a2f5cc8eef292c7744400f622d7e40861d4d759e..ca3088c977e974e43f331aa8b0cb502b8d792b72 100644
--- a/src/systems.py
+++ b/src/systems.py
@@ -230,7 +230,7 @@ class AbstractMovementSystem(ABC):
 
         # Recalculate path distances for new roomba location.
         calc_trash_distances(self.data_manager, roomba_only=(not roomba_failed))
-        calc_traveling_salesman(self.data_manager, calc_new=roomba_failed)
+        calc_traveling_salesman(self.data_manager, calc_new=roomba_failed, total_move_reset=False)
 
         # Update for a movement.
         self.data_manager.gui_data['total_move_counter'] += 1