diff --git a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java
index 27493a8d47e5899610c917082bea3e41813e3884..d95e4770396faf1cfe5c4aa9f150e62bd460e957 100644
--- a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java
+++ b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java
@@ -29,6 +29,7 @@ import fr.inrialpes.exmo.align.impl.BasicAlignment;
 import fr.inrialpes.exmo.align.impl.URIAlignment;
 import fr.inrialpes.exmo.align.impl.ObjectAlignment;
 //import fr.inrialpes.exmo.align.util.DiffAlign;
+import fr.inrialpes.exmo.align.impl.eval.DiffEvaluator;
 
 import fr.inrialpes.exmo.ontowrap.OntologyFactory;
 import fr.inrialpes.exmo.ontowrap.Ontology;
@@ -615,24 +616,14 @@ public class AServProtocolManager {
 	} catch (Exception e) {
 	    return new UnknownAlignment(newId(),mess,myId,mess.getSender(),"unknown/Alignment/"+id2,(Properties)null);
 	}
-	// Set the comparison method
-	// Should be rewritted with diff -- no choice
-	/*
-	DiffAlign eval = new DiffAlign( al1, al2 );
-	// Compare it
-	try { eval.eval( params ); }
-	catch (AlignmentException e) {
+	try { 
+	    DiffEvaluator diff = new DiffEvaluator( al1, al2 );
+	    diff.eval( params ); 
+	    // This will only work with HTML
+	    return new EvalResult(newId(),mess,myId,mess.getSender(),diff.HTMLString(),(Properties)null);
+	} catch (AlignmentException e) {
 	    return new ErrorMsg(newId(),mess,myId,mess.getSender(),"dummy//",(Properties)null);
 	}
-	// Return it, not easy
-	StringWriter sw = new StringWriter();
-	try {
-	    eval.write( new PrintWriter( sw ) );
-	} catch (IOException ioex) {}; // never occurs
-	// Should not be alignment evaluation results...
-	return new EvaluationId(newId(),mess,myId,mess.getSender(),sw.toString(),(Properties)null);
-	*/
-	return new ErrorMsg(newId(),mess,myId,mess.getSender(),"Not yet implented",(Properties)null);
     }
 
     /**
diff --git a/src/fr/inrialpes/exmo/align/service/EvalResult.java b/src/fr/inrialpes/exmo/align/service/EvalResult.java
index 5f67f255b6696ab187a552a9fb7c27b259be5efe..e3ccea3004c40b283f2ca2d9368dcf2ebf8a7708 100644
--- a/src/fr/inrialpes/exmo/align/service/EvalResult.java
+++ b/src/fr/inrialpes/exmo/align/service/EvalResult.java
@@ -32,11 +32,16 @@ public class EvalResult extends Success {
 	super( surr, rep, from, to, cont, param );
     }
     public String HTMLString(){
-	String results = "Alignment method: "+getContent()+"\n<ul>\n";
-	for ( String key : getParameters().stringPropertyNames() ) {
-	    results += "<li>"+key+" : "+getParameters().getProperty( key )+"</li>\n";
+	String results = "";
+	if ( getParameters() == null ) {
+	    results += getContent();
+	} else {
+	    results += "Alignment method: "+getContent()+"\n<ul>\n";
+	    for ( String key : getParameters().stringPropertyNames() ) {
+		results += "<li>"+key+" : "+getParameters().getProperty( key )+"</li>\n";
+	    }
+	    results += "</ul>\n";
 	}
-	results += "</ul>\n";
 	return results;
     }
     public String RESTString(){
diff --git a/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java b/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java
index 30a27c1069f899049c4842d4a04880872d8a74f3..77c74013ec586baff8319dfd77006ed9b7bc1948 100644
--- a/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java
+++ b/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java
@@ -196,8 +196,11 @@ public class HTMLAServProfile implements AlignmentServiceProfile {
 			// e.g., it uses /tmp and keeps the files
 			filter.doFilter( request, dummyResponse, new Chain() );
 			// Extract parameters from response
+			if ( request.getAttribute("pretty") != null )
+			    params.setProperty( "pretty", request.getAttribute("pretty").toString() );
 			if ( request.getAttribute("content") != null )
 			    params.setProperty( "filename", request.getAttribute("content").toString() );
+			//System.err.println( " >>>> Read: "+params.getProperty( "pretty" ) );
 			filter.destroy();
 		    } else if ( mimetype != null && mimetype.startsWith("text/xml") ) {
 			// Most likely Web service request (REST through POST)
@@ -778,8 +781,6 @@ public class HTMLAServProfile implements AlignmentServiceProfile {
 	    } else {
 		msg = "<h1>Evaluation results</h1>";
 		msg += displayAnswer( answer, params );
-		// This should be nice here to provide the oportunity to diff them
-		// This needs to pass arguments... and to get them on the other side.
 	    }
 	} else if ( perf.equals("saveeval") ) {
 	} else if ( perf.equals("prmgrpeval") ) {
@@ -828,6 +829,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile {
 	    msg += "<form action=\"prmstore\"><button title=\"Persistently store an alignent in this server\" type=\"submit\" >Store alignment</button></form>";
 	    msg += "<form action=\"prmretrieve\"><button title=\"Render an alignment in a particular format\" type=\"submit\">Render alignment</button></form>";
 	    msg += "<form action=\"prmeval\"><button title=\"Evaluation of an alignment\" type=\"submit\">Evaluate alignment</button></form>";
+	    msg += "<form action=\"prmdiff\"><button title=\"Compare two alignments\" type=\"submit\">Compare alignment</button></form>";
 	    msg += "<form action=\"../admin/\"><button style=\"background-color: lightpink;\" title=\"Server management functions\" type=\"submit\">Server management</button></form>";
 	} else {
 	    msg = "Cannot understand command "+perf;