diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala
index 33d205575c074a9768d670fd377386c7402d7b27..55939bb94a99d76253b1aa0d467526ee3ef5ad5e 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetter.scala
@@ -11,6 +11,7 @@ class SSetter(struc: SStructuralFeature) extends SMethod(
   name = s"set${struc.getName.firstLetterToUpperCase}",
   result = PredefTypes.Unit,
   params = Seq(SMethodParameter(struc.getName.head.toString, struc.getTypeElement)),
-  implementation = Seq(SMethodStatement(content = s"${struc.getName} = ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) {
+  implementation = Seq(SMethodStatement(content = s"require(${struc.getName.head} != null)"),
+      SMethodStatement(content = s"${struc.getName} = ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) {
 
 }
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala
index 061a85c2a66d916c2ea69550fd42fe0aed6a81bb..f5b69db409963b419951c3770d925a6eec056edb 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterAdd.scala
@@ -11,6 +11,8 @@ class SSetterAdd(struc: SStructuralFeature, inner: STypedElement) extends SMetho
   name = s"add${struc.getName.firstLetterToUpperCase}",
   result = PredefTypes.Unit,
   params = Seq(SMethodParameter(struc.getName.head.toString, inner)),
-  implementation = Seq(SMethodStatement(content = s"${struc.getName} += ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) {
+  implementation = Seq(SMethodStatement(content = s"require(${struc.getName.head} != null)"),
+      SMethodStatement(content = s"require(!${struc.getName}.contains(${struc.getName.head}))"),
+      SMethodStatement(content = s"${struc.getName} += ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) {
 
 }
\ No newline at end of file
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala
index 7a5c3d5f5243c942220593eb24e279207d908e2a..646fc799b93187c51a0fed1e7b3d3e960ab67006 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SSetterRemove.scala
@@ -11,6 +11,8 @@ class SSetterRemove(struc: SStructuralFeature, inner: STypedElement) extends SMe
   name = s"remove${struc.getName.firstLetterToUpperCase}",
   result = PredefTypes.Unit,
   params = Seq(SMethodParameter(struc.getName.head.toString, inner)),
-  implementation = Seq(SMethodStatement(content = s"${struc.getName} -= ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) {
+  implementation = Seq(SMethodStatement(content = s"require(${struc.getName.head} != null)"),
+      SMethodStatement(content = s"require(${struc.getName}.contains(${struc.getName.head}))"),
+      SMethodStatement(content = s"${struc.getName} -= ${struc.getName.head}", usedTypes = Set(struc.getTypeElement)))) {
 
 }
\ No newline at end of file