diff --git a/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/SysmlProfileTest.java b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/SysmlProfileTest.java
index 6ff73aa..777656b 100644
--- a/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/SysmlProfileTest.java
+++ b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/SysmlProfileTest.java
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (c) 2015 CEA LIST.
+ * Copyright (c) 2015,2018 CEA LIST.
  *
  *    
  * All rights reserved. This program and the accompanying materials
@@ -13,9 +13,18 @@
  *****************************************************************************/
 package org.eclipse.papyrus.sysml14.tests;
 
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.uml2.uml.UMLPlugin;
-import org.junit.Assert;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
 
 /**
  * Basic test for SysML 1.4 profile
@@ -23,20 +32,39 @@
  * @author Benoit Maggi
  */
 @SuppressWarnings("nls")
+@RunWith(Parameterized.class)
 public class SysmlProfileTest {
 
+	@Parameters
+	public static Collection<Object[]> data() {
+		return Arrays.asList(new Object[][] { 
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/Activities"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/Allocations"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/DeprecatedElements"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/ModelElements"},
+				{ "http://www.eclipse.org/papyrus/sysml/1.4/SysML/Requirements"}
+		});
+	}
+
+	private String uri;
+
+	public SysmlProfileTest(String uri) {
+		this.uri = uri;
+	}
+
 	/**
-	 * Check that we have a profile registered here :
-	 * "http://www.eclipse.org/papyrus/sysml/1.4/SysML"
+	 * Check that we have a location for the uri
+	 * and that the location point to some existing EObject
 	 */
 	@Test
 	public void testProfilRegistration() {
-		Assert.assertNotNull(
-				UMLPlugin.getEPackageNsURIToProfileLocationMap().get("http://www.eclipse.org/papyrus/sysml/1.4/SysML"));
+		URI location = UMLPlugin.getEPackageNsURIToProfileLocationMap().get(uri);
+		assertNotNull("Location missing for this uri :"+uri, location);
+		assertNotNull("Location is refering to a non existing EObject :"+location, new ResourceSetImpl().getEObject(location,true));
 	}
 
-	
-	
-	
-	
 }
diff --git a/core/org.eclipse.papyrus.sysml14/plugin.xml b/core/org.eclipse.papyrus.sysml14/plugin.xml
index ffee75f..5012b66 100644
--- a/core/org.eclipse.papyrus.sysml14/plugin.xml
+++ b/core/org.eclipse.papyrus.sysml14/plugin.xml
@@ -146,8 +146,6 @@
       </factory>
    </extension>
    
- 
-   
   <extension point="org.eclipse.uml2.uml.generated_package">
      <profile uri="http://www.eclipse.org/papyrus/sysml/1.4/SysML"
            location="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML"/>
@@ -172,7 +170,7 @@
            uri="http://www.eclipse.org/papyrus/sysml/1.4/SysML/DeprecatedElements">
      </profile>
      <profile
-           location="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_PortsAndFlows"
+           location="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows"
            uri="http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows">
      </profile>
      <profile
