diff --git a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
index bce9ee4d6e71f1817f57f2046d5aaf455d8dfe52..715d3adbe82c10bf1e48a837d3d9decd4fda1d1c 100644
--- a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
+++ b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
@@ -1,6 +1,6 @@
 /*
  * UNICADO - UNIversity Conceptual Aircraft Design and Optimization
- * 
+ *
  * Copyright (C) 2025 UNICADO consortium
  *
  * This program is free software: you can redistribute it and/or modify
@@ -288,6 +288,11 @@ void StandardMissionOutput::generate_SAR_plot_data() {
         // Temporarily issue exit when CL_max is exceeded
         my_mission_ptr->aero.switchOnReqSwitch();
         for (double Ma(my_mission_ptr->mission_file->desired_cruise_speed - 0.04); Ma <= (my_mission_ptr->mission_file->desired_cruise_speed + 0.04); Ma += 0.02) {
+            bool loop_breaker(false);
+            if (Ma > my_mission_ptr->max_operating_mach) { // set max_operating_mach when its exceeded or approached
+                Ma = my_mission_ptr->max_operating_mach;
+                loop_breaker = true; // Stop the loop if max_operating_mach is reached
+            }
             SAR_mach.push_back(Ma);
             for (double aircraft_mass(0.5 * my_mission_ptr->MTOM); aircraft_mass <= my_mission_ptr->MTOM; aircraft_mass += 0.5 * my_mission_ptr->MTOM / weightSteps) {
                 if ((Ma - (my_mission_ptr->mission_file->desired_cruise_speed - 0.04)) < acc) {
@@ -312,6 +317,7 @@ void StandardMissionOutput::generate_SAR_plot_data() {
                     specific_air_ranges.push_back(SAR_tmp);
                 }
             }
+        if (loop_breaker) break; // max_operating_mach reached -> break
         }
     }
     plot.close();