diff --git a/src/fr/inrialpes/exmo/align/impl/method/EditDistNameAlignment.java b/src/fr/inrialpes/exmo/align/impl/method/EditDistNameAlignment.java
index bb5db45cbd2d290d42b45061ed4b52f87c7a56a3..e84a683c11a5ec14786cb1c98da1ba45278eff79 100644
--- a/src/fr/inrialpes/exmo/align/impl/method/EditDistNameAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/method/EditDistNameAlignment.java
@@ -58,6 +58,7 @@ public class EditDistNameAlignment extends DistanceAlignment implements Alignmen
     };
 
     private double max( double i, double j) { if ( i>j ) return i; else return j; }
+
     /** Processing **/
     /** This is not exactly equal, this uses toLowerCase() */
     public void align( Alignment alignment, Parameters params ) throws AlignmentException, OWLException {
@@ -115,19 +116,27 @@ public class EditDistNameAlignment extends DistanceAlignment implements Alignmen
 	    for ( j=0; j<nbclass2; j++ ){
 		l2 = ((OWLClass)classlist2.get(j)).getURI().getFragment().length();
 		clmatrix[i][j] = StringDistances.levenshteinDistance(
-						    cl.getURI().getFragment().toLowerCase(),
-						    ((OWLClass)classlist2.get(j)).getURI().getFragment().toLowerCase()) / max(l1,l2);
+				    cl.getURI().getFragment().toLowerCase(),
+				    ((OWLClass)classlist2.get(j)).getURI().getFragment().toLowerCase()) / max(l1,l2);
 	    }
 	}
 	// Compute distances on properties
 	for ( i=0; i<nbprop1; i++ ){
 	    OWLProperty pr = (OWLProperty)proplist1.get(i);
-	    l1 = pr.getURI().getFragment().length();
+	    String f1 = pr.getURI().getFragment();
+	    if ( f1 != null ) { l1 = f1.length(); }
+	    else { l1 = 0; };
 	    for ( j=0; j<nbprop2; j++ ){
-		l2 = ((OWLProperty)proplist2.get(j)).getURI().getFragment().length();
+		// Compute distances on properties
+		String f2 = ((OWLProperty)proplist2.get(j)).getURI().getFragment();
+		if ( f2 != null ) { l2 = f2.length(); }
+		else { l2 = 0; };
+		if ( (l2 == 0) || (l1 == 0) ) { prmatrix[i][j] = 1.; }
+		else {
 		prmatrix[i][j] = StringDistances.levenshteinDistance(
-						    pr.getURI().getFragment().toLowerCase(),
-						    ((OWLProperty)proplist2.get(j)).getURI().getFragment().toLowerCase()) / max(l1,l2);
+						   pr.getURI().getFragment().toLowerCase(),
+						   ((OWLProperty)proplist2.get(j)).getURI().getFragment().toLowerCase()) / max(l1,l2);
+		}
 	    }
 	}
 
diff --git a/src/fr/inrialpes/exmo/align/impl/method/StrucSubsDistAlignment.java b/src/fr/inrialpes/exmo/align/impl/method/StrucSubsDistAlignment.java
index 18588864033a0799e477c5ec6590ee15ecf99b52..af9a0922c15e5052533cb383c944ba156a58db60 100644
--- a/src/fr/inrialpes/exmo/align/impl/method/StrucSubsDistAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/method/StrucSubsDistAlignment.java
@@ -127,11 +127,16 @@ public class StrucSubsDistAlignment extends DistanceAlignment implements Alignme
 	if (debug > 0) System.err.println("Initializing property distances");
 	for ( i=0; i<nbprop1; i++ ){
 	    OWLProperty cl = (OWLProperty)proplist1.get(i);
-	    String s1 = cl.getURI().getFragment().toLowerCase();
+	    String s1 = cl.getURI().getFragment();
+	    if ( s1 != null ) s1 = s1.toLowerCase();
 	    for ( j=0; j<nbprop2; j++ ){
 		cl = (OWLProperty)proplist2.get(j);
-		String s2 = cl.getURI().getFragment().toLowerCase();
-		propmatrix[i][j] = pia1 * StringDistances.subStringDistance( s1, s2 );
+		String s2 = cl.getURI().getFragment();
+		if ( s2 != null ) s2 = s2.toLowerCase();
+		if ( s1 == null || s2 == null ) { propmatrix[i][j] = pia1; }
+		else {
+		    propmatrix[i][j] = pia1 * StringDistances.subStringDistance( s1, s2 );
+		}
 	    }
 	}
 
diff --git a/src/fr/inrialpes/exmo/align/impl/method/SubsDistNameAlignment.java b/src/fr/inrialpes/exmo/align/impl/method/SubsDistNameAlignment.java
index a7730cbc6895ba1b301bbc8b1322c07d8b111e44..89dd4a7e4a0ec188f3e44cb62f8ccb21da64506d 100644
--- a/src/fr/inrialpes/exmo/align/impl/method/SubsDistNameAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/method/SubsDistNameAlignment.java
@@ -112,11 +112,14 @@ public class SubsDistNameAlignment extends DistanceAlignment implements Alignmen
 	if (debug > 0) System.err.println("Initializing property distances");
 	for ( i=0; i<nbprop1; i++ ){
 	    OWLProperty cl = (OWLProperty)proplist1.get(i);
-	    String s1 = cl.getURI().getFragment().toLowerCase();
+	    String s1 = cl.getURI().getFragment();
+	    if ( s1 != null ) s1 = s1.toLowerCase();
 	    for ( j=0; j<nbprop2; j++ ){
 		cl = (OWLProperty)proplist2.get(j);
-		String s2 = cl.getURI().getFragment().toLowerCase();
-		propmatrix[i][j] = StringDistances.subStringDistance( s1, s2 );
+		String s2 = cl.getURI().getFragment();
+		if ( s2 != null ) s2 = s2.toLowerCase();
+		if ( s1 == null || s2 == null ) { propmatrix[i][j] = 1.; }
+		else { propmatrix[i][j] = StringDistances.subStringDistance( s1, s2 ); }
 	    }
 	}