diff --git a/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathSourceLastModelConstraint.java b/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathSourceLastModelConstraint.java
index c9a7b8b..82956de 100644
--- a/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathSourceLastModelConstraint.java
+++ b/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathSourceLastModelConstraint.java
@@ -17,7 +17,9 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.sysml14.blocks.DirectedRelationshipPropertyPath;
+import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Type;
 
@@ -47,8 +49,16 @@
 				DirectedRelationship directedRelationship = directedRelationshipPropertyPath
 						.getBase_DirectedRelationship();
 				if (directedRelationship != null) {
-					if (!type.getSourceDirectedRelationships().contains(directedRelationship)) {
-						return context.createFailureStatus(context.getTarget());
+					EList<Element> sources = directedRelationship.getSources();
+					if (sources != null && !sources.isEmpty() && !type.getOwnedElements().contains(sources.get(0))){	
+						if (type instanceof Classifier){
+							Classifier classifier = (Classifier) type;
+							if (!classifier.getInheritedMembers().contains(sources.get(0))){
+								return context.createFailureStatus(context.getTarget());
+							}
+						} else {
+							return context.createFailureStatus(context.getTarget());
+						}		
 					}
 				}
 			}
diff --git a/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathTargetLastModelConstraint.java b/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathTargetLastModelConstraint.java
index fecf161..343fe5f 100644
--- a/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathTargetLastModelConstraint.java
+++ b/core/org.eclipse.papyrus.sysml14.validation/src/org/eclipse/papyrus/sysml14/validation/rules/blocks/DirectedRelationshipPropertyPathTargetLastModelConstraint.java
@@ -8,7 +8,7 @@
  *
  * Contributors:
  *  Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation
- *   
+ *  Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Bug 515283
  *****************************************************************************/
 package org.eclipse.papyrus.sysml14.validation.rules.blocks;
 
@@ -17,7 +17,9 @@
 import org.eclipse.emf.validation.AbstractModelConstraint;
 import org.eclipse.emf.validation.IValidationContext;
 import org.eclipse.papyrus.sysml14.blocks.DirectedRelationshipPropertyPath;
+import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Type;
 
@@ -47,8 +49,16 @@
 				DirectedRelationship directedRelationship = directedRelationshipPropertyPath
 						.getBase_DirectedRelationship();
 				if (directedRelationship != null) {
-					if (!type.getTargetDirectedRelationships().contains(directedRelationship)) {
-						return context.createFailureStatus(context.getTarget());
+					EList<Element> targets = directedRelationship.getTargets();
+					if (targets != null && !targets.isEmpty() && !type.getOwnedElements().contains(targets.get(0))){
+						if (type instanceof Classifier){
+							Classifier classifier = (Classifier) type;
+							if (!classifier.getInheritedMembers().contains(targets.get(0))){
+								return context.createFailureStatus(context.getTarget());
+							}
+						} else {
+							return context.createFailureStatus(context.getTarget());
+						}	
 					}
 				}
 			}
