diff --git a/src/fr/inrialpes/exmo/align/service/CacheImpl.java b/src/fr/inrialpes/exmo/align/service/CacheImpl.java
index 70ccb08455b85173366086dd0324c0e0c83a700e..1fa55dc7b7e41fae8613351d6487fea43d60ab7c 100644
--- a/src/fr/inrialpes/exmo/align/service/CacheImpl.java
+++ b/src/fr/inrialpes/exmo/align/service/CacheImpl.java
@@ -191,6 +191,27 @@ public class CacheImpl {
 	return alignmentTable.values();
     }
 
+    protected Collection<Alignment> alignments( URI u1, URI u2 ) {
+	Collection<Alignment> results = new HashSet<Alignment>();
+	if ( u1 != null ) {
+	    for ( Alignment al : ontologyTable.get( u1 ) ) {
+		try {
+		    if ( al.getOntology1URI().equals( u1 ) ) {
+			if ( u2 == null ) results.add( al );
+			else if ( al.getOntology2URI().equals( u2 ) ) results.add( al );
+		    }
+		} catch (AlignmentException alex) {} // ignore
+	    }
+	} else if ( u2 != null ) {
+	    for ( Alignment al : ontologyTable.get( u2 ) ) {
+		try {
+		    if ( al.getOntology2URI().equals( u2 ) ) results.add( al );
+		} catch (AlignmentException alex) {} // ignore
+	    }
+	} else { results = alignmentTable.values(); }
+	return results;
+    }
+
     protected void flushCache() {// throws AlignmentException
 	for ( Alignment al : alignmentTable.values() ){
 	    if ( al.getExtension( SVCNS, CACHED ) != ""