diff --git a/org.framed.iorm.ui/modules/relationship/Relationship.ecl b/org.framed.iorm.ui/modules/relationship/Relationship.ecl
index 8d14b52c68ef11a68c9df09b38cffe08f50120b4..8711b96d272e12db36bd2d792ff2202106734a53 100644
--- a/org.framed.iorm.ui/modules/relationship/Relationship.ecl
+++ b/org.framed.iorm.ui/modules/relationship/Relationship.ecl
@@ -1,11 +1,7 @@
 //Relationships  
-Start Relationship (Relationships) when true;
-Add Relationship (Relationships) when true; 
-Reconnect Relationship (Relationships) when true;
+Start Relationship (Relationships) when IsSourceType(RoleType);
+Add Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
+Reconnect Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
+Create Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
  
-Start Relationship (true) when IsSourceType(RoleType);//For Relationship-Relation Source and Target must be Role-Type	
-Add Relationship (true) when IsTargetType(RoleType) and IsSourceType(RoleType);
-Reconnect Relationship (true) when IsTargetType(RoleType) and IsSourceType(RoleType);
-
-Execute Relationship (true) when true;
-Create Relationship (true) when true;
+Execute Relationship (Relationships) when true;
diff --git a/org.framed.iorm.ui/modules/relationship/Relationship.editpolicy b/org.framed.iorm.ui/modules/relationship/Relationship.editpolicy
index 3ab826e93bfa767832f13513bb44a1c4a3107e2b..67c046f3bbc57a48758965087e861e08f4d07671 100644
--- a/org.framed.iorm.ui/modules/relationship/Relationship.editpolicy
+++ b/org.framed.iorm.ui/modules/relationship/Relationship.editpolicy
@@ -2,40 +2,46 @@
 <editpolicymodel:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editpolicymodel="http://framed/editpolicymodel">
   <policies action="Start" actionType="Relationship">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Relationships"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
   </policies>
   <policies action="Add" actionType="Relationship">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Relationships"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      </rules>
+      <rules xsi:type="editpolicymodel:NotConstraintRule">
+        <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+      </rules>
+    </constraintRule>
   </policies>
   <policies action="Reconnect" actionType="Relationship">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Relationships"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
-  </policies>
-  <policies action="Start" actionType="Relationship">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
-  </policies>
-  <policies action="Add" actionType="Relationship">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
-      <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
-      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      </rules>
+      <rules xsi:type="editpolicymodel:NotConstraintRule">
+        <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+      </rules>
     </constraintRule>
   </policies>
-  <policies action="Reconnect" actionType="Relationship">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
+  <policies actionType="Relationship">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Relationships"/>
     <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
-      <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
-      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      </rules>
+      <rules xsi:type="editpolicymodel:NotConstraintRule">
+        <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+      </rules>
     </constraintRule>
   </policies>
   <policies action="Execute" actionType="Relationship">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
-  </policies>
-  <policies actionType="Relationship">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Relationships"/>
     <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
   </policies>
 </editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
index e38b375d209eaefc3a3fa6fb4b5c8ba2f8297a6d..390b7ea247adad6edd9f0b11efde395f873ac057 100644
--- a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
@@ -158,7 +158,7 @@ public abstract class AbstractIntraRelationshipConstraintPattern extends FRaMEDS
 		if(targetConnection != null &&
 		   getBusinessObjectForPictogramElement(targetConnection) instanceof Relation) {
 			Relation relation = (Relation) getBusinessObjectForPictogramElement(targetConnection);
-			return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, relation.getType());
+			return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.getModelType());
 		}
 	    return false;
 	}