diff --git a/SAS/TMSS/backend/services/scheduling/lib/dynamic_scheduling.py b/SAS/TMSS/backend/services/scheduling/lib/dynamic_scheduling.py
index e6c21b26faa6be78ef8078acdfe039d7c132a095..c46aa94ae6707331796c3f2cd551bb183ecf5a11 100644
--- a/SAS/TMSS/backend/services/scheduling/lib/dynamic_scheduling.py
+++ b/SAS/TMSS/backend/services/scheduling/lib/dynamic_scheduling.py
@@ -247,9 +247,6 @@ class Scheduler:
                             assert (scheduled_unit.status.value == models.SchedulingUnitStatus.Choices.SCHEDULED.value)
                             logger.info("Scheduled fixed_time unit [%s/%s] id=%d at '%s'", i, len(schedulable_units), schedulable_unit.id, at_timestamp)
                             scheduled_units.append(scheduled_unit)
-
-                            scheduled_B_units = self.schedule_B_priority_units_in_gaps_around_scheduling_unit(scheduled_unit)
-                            scheduled_units.extend(scheduled_B_units)
                         else:
                             unschedulable_unit = determine_unschedulable_reason_and_mark_unschedulable_if_needed(schedulable_unit, at_timestamp, at_timestamp + schedulable_unit.specified_observation_duration,
                                                                                                                  proposed_start_time=at_timestamp,
@@ -291,8 +288,18 @@ class Scheduler:
                                                                                                      proposed_start_time=at_timestamp,
                                                                                                      gridder=self.search_gridder, raise_if_interruped=self._raise_if_triggered)
                 assert(unschedulable_unit.status.value == models.SchedulingUnitStatus.Choices.UNSCHEDULABLE.value)
-        return [scheduled_unit for scheduled_unit in scheduled_units if scheduled_unit.status.value == models.SchedulingUnitStatus.Choices.SCHEDULED.value]
 
+        # what are the truly scheduled fixed time units?
+        scheduled_units = [scheduled_unit for scheduled_unit in scheduled_units if scheduled_unit.status.value == models.SchedulingUnitStatus.Choices.SCHEDULED.value]
+
+        # now try to place B-prio units in between the scheduled fixed-time units
+        scheduled_units = sorted(scheduled_units, key=lambda su: su.scheduled_start_time)
+        for scheduled_unit in list(scheduled_units):
+            scheduled_B_units = self.schedule_B_priority_units_in_gaps_around_scheduling_unit(scheduled_unit)
+            scheduled_units.extend(scheduled_B_units)
+
+        # return all scheduled (fixedtime and B-prio) units
+        return scheduled_units
 
     def do_dynamic_schedule(self) -> [models.SchedulingUnitBlueprint]:
         '''do a full update of the schedule: schedule next scheduling unit (and if possible, squeeze in B-prio units between now and the upcoming scheduled unit).