diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ConstraintDropStrategy.java b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ConstraintDropStrategy.java
index 72a9aa0..942d397 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ConstraintDropStrategy.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ConstraintDropStrategy.java
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
+ *  Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Bug 510842 - ClassCastException
  *****************************************************************************/
 package org.eclipse.papyrus.sysml14.diagram.parametric.dnd;
 
@@ -28,7 +29,6 @@
 import org.eclipse.papyrus.sysml14.diagram.common.util.GraphicalSysMLServiceTypeUtil;
 import org.eclipse.papyrus.sysml14.service.types.util.SysMLServiceTypeUtil;
 import org.eclipse.uml2.uml.Constraint;
-import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Type;
 
@@ -79,7 +79,7 @@
 			final List<EObject> valuesToAdd = new ArrayList<>(sourceElements.size());
 			final ISpecializationType constraintPropertyElementType = (ISpecializationType) ElementTypeRegistry.getInstance().getType(SysMLServiceTypeUtil.ORG_ECLIPSE_PAPYRUS_SYSML14_CONSTRAINTPROPERTY);
 			// the target must me a constraint property
-			Element target = (Element) graphicalEditPart.resolveSemanticElement();
+			EObject target = graphicalEditPart.resolveSemanticElement();
 			if (constraintPropertyElementType.getMatcher().matches(target) && target instanceof Property && ((Property) target).getType() != null) {
 				Type targetType = ((Property) target).getType();
 				for (EObject sourceElement : sourceElements) {
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ParameterDropStrategy.java b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ParameterDropStrategy.java
index 7775014..e9ad9a1 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ParameterDropStrategy.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/src/org/eclipse/papyrus/sysml14/diagram/parametric/dnd/ParameterDropStrategy.java
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *  Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
+ *  Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Bug 510842 - ClassCastException
  *****************************************************************************/
 package org.eclipse.papyrus.sysml14.diagram.parametric.dnd;
 
@@ -27,7 +28,6 @@
 import org.eclipse.papyrus.infra.gmfdiag.dnd.strategy.ExpansionElementDropStrategy;
 import org.eclipse.papyrus.sysml14.diagram.common.util.GraphicalSysMLServiceTypeUtil;
 import org.eclipse.papyrus.sysml14.service.types.util.SysMLServiceTypeUtil;
-import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Type;
 
@@ -79,7 +79,7 @@
 				return null;
 			}
 			// the target must me a Parameter property
-			Element target = (Element) graphicalEditPart.resolveSemanticElement();
+			EObject target = graphicalEditPart.resolveSemanticElement();
 			if (parameterPropertyElementType.getMatcher().matches(target) && target instanceof Property && ((Property) target).getType() != null) {
 				Type targetType = ((Property) target).getType();
 				for (EObject sourceElement : sourceElements) {
