diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py
index f703226a52708c53abcba9f172b3fb470bd41a9b..6732f1c0584545b3e3a4176c1d9f40477167f400 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py
@@ -609,7 +609,9 @@ class SchedulingUnitDraft(NamedCommon, TemplateSchemaMixin, ProjectPropertyMixin
             if self.piggyback_allowed_aartfaac is None and hasattr(self, 'scheduling_set'):
                 self.piggyback_allowed_aartfaac = self.scheduling_set.project.piggyback_allowed_aartfaac
 
-        self.annotate_validate_add_defaults_to_doc_using_template('scheduling_constraints_doc', 'scheduling_constraints_template')
+        # we intentionally do not add defaults to scheduling_constraints_doc
+        # because that would add default items which the user did not specify,
+        # and for scheduling contraints this can have unforeseen sideeffects that the user did not intent.
 
         super().save(force_insert, force_update, using, update_fields)
 
@@ -744,21 +746,6 @@ class SchedulingUnitBlueprint(ProjectPropertyMixin, TemplateSchemaMixin, NamedCo
     global_identifier = OneToOneField('SIPidentifier', null=False, editable=False, on_delete=PROTECT, help_text='The global unique identifier for LTA SIP.')
     path_to_project = 'draft__scheduling_set__project'
 
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
-
-        # keep original scheduling constraints to detect changes on save
-        # Note: we cannot use self.scheduling_constraints_doc here since that causes an infinite loop of update_from_db
-        if 'scheduling_constraints_doc' in kwargs.keys():
-            self.__original_scheduling_constraints_doc = kwargs['scheduling_constraints_doc']
-        else:
-            field_names = [f.name for f in self._meta.fields]
-            if len(args) == len(field_names):
-                self.__original_scheduling_constraints_doc = args[field_names.index('scheduling_constraints_doc')]
-            else:
-                self.__original_scheduling_constraints_doc = None
-        self.__original_scheduling_constraints_template_id = self.scheduling_constraints_template_id
-
     def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
         SIPidentifier.assign_new_id_to_model(self)
 
@@ -769,12 +756,9 @@ class SchedulingUnitBlueprint(ProjectPropertyMixin, TemplateSchemaMixin, NamedCo
                 if hasattr(self, 'draft'):
                     setattr(self, copy_field, getattr(self.draft, copy_field))
 
-        # make sure the scheduling_constraints_doc contains all required and default values. (no-op when already complete)
-        self.annotate_validate_add_defaults_to_doc_using_template('scheduling_constraints_doc', 'scheduling_constraints_template')
-
-        # update the original constraints value for comparison on next save
-        self.__original_scheduling_constraints_doc = self.scheduling_constraints_doc
-        self.__original_scheduling_constraints_template_id = self.scheduling_constraints_template_id
+        # we intentionally do not add defaults to scheduling_constraints_doc
+        # because that would add default items which the user did not specify,
+        # and for scheduling contraints this can have unforeseen sideeffects that the user did not intent.
 
         if self._state.adding and self.interrupts_telescope:
             if self.project.can_trigger: