diff --git a/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java b/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java
index a62735ce1c282f9ed2e20f5ff5ccc56d854a5adb..06cac7aad417ab14c6b6566d09343e07d90eb9e4 100644
--- a/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java
+++ b/src/fr/inrialpes/exmo/align/service/HTMLAServProfile.java
@@ -272,7 +272,7 @@ public class HTMLAServProfile implements AlignmentServiceProfile {
 	    }
 	    msg += "</ul>";
 	} else if ( perf.equals("prmsqlquery") ){
-	    msg = "<h1>SQL query</h1><form action=\"sqlquery\">Query:<br /><textarea name=\"query\" rows=\"20\" cols=\"60\" size=\"60\">SELECT \nFROM \nWHERE </textarea> (sql)<br /><small>An SQL SELECT query</small><br /><input type=\"submit\" value=\"Query\"/></form>";
+	    msg = "<h1>SQL query</h1><form action=\"sqlquery\">Query:<br /><textarea name=\"query\" rows=\"20\" cols=\"80\">SELECT \nFROM \nWHERE </textarea> (sql)<br /><small>An SQL SELECT query</small><br /><input type=\"submit\" value=\"Query\"/></form>";
 	} else if ( perf.equals("sqlquery") ){
 	    String answer = manager.query( (String)params.getParameter("query") );
 	    msg = "<pre>"+answer+"</pre>";
@@ -438,15 +438,17 @@ public class HTMLAServProfile implements AlignmentServiceProfile {
 		msg += "<option value=\""+id+"\">"+id+"</option>";
 	    }
 	    msg += "</select><br />";
-	    msg += "Turtle query:<br /> <textarea name=\"query\" rows=\"20\" cols=\"60\" size=\"60\">PREFIX foaf: <http://xmlns.com/foaf/0.1/>\nSELECT *\nFROM <>\nWHERE {\n\n}</textarea> (turtle)<br /><small>A SPARQL query expressed in Turtle syntax (PREFIX prefix: &lt;URI&gt; SELECT variables FROM &lt;URL&gt; WHERE { triples })</small><br /><input type=\"submit\" value=\"Query\"/></form>";
+	    msg += "SPARQL query:<br /> <textarea name=\"query\" rows=\"20\" cols=\"80\">PREFIX foaf: <http://xmlns.com/foaf/0.1/>\nSELECT *\nFROM <>\nWHERE {\n\n}</textarea> (turtle)<br /><small>A SPARQL query (PREFIX prefix: &lt;uri&gt; SELECT variables FROM &lt;url&gt; WHERE { triples })</small><br /><input type=\"submit\" value=\"Translate\"/></form>";
 	} else if ( perf.equals("translate") ) {
 	    Message answer = manager.translate( new Message(newId(),(Message)null,myId,serverId,"", params) );
 	    if ( answer instanceof ErrorMsg ) {
 		msg = testErrorMessages( answer );
 	    } else {
-		// Depending on the type we should change the MIME type
-		// This should be returned in answer.getParameters()
-		return new Response( HTTP_OK, MIME_HTML, answer.getContent() );
+		msg = "<h1>Message translation</h1>";
+		msg += "<h2>Initial message</h2><pre>"+((String)params.getParameter("query")).replaceAll("&", "&amp;").replaceAll("<", "&lt;")+"</pre>";
+		msg += "<h2>Translated message</h2><pre>";
+		msg += answer.HTMLString().replaceAll("&", "&amp;").replaceAll("<", "&lt;");
+		msg += "</pre>";
 	    }
 	} else if ( perf.equals("prmmetadata") ) {
 	    msg = "<h1>Retrieve alignment metadata</h1><form action=\"metadata\">";
diff --git a/src/fr/inrialpes/exmo/align/service/QueryMediator.java b/src/fr/inrialpes/exmo/align/service/QueryMediator.java
index 23669921a3b10a385c3407a4a805ffe6e0258531..83c47861712e396ec49a65b6ce1d04ad1ad6f24d 100644
--- a/src/fr/inrialpes/exmo/align/service/QueryMediator.java
+++ b/src/fr/inrialpes/exmo/align/service/QueryMediator.java
@@ -38,6 +38,7 @@ import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.Cell;
 
 import org.xml.sax.SAXException;
+import java.util.regex.Pattern;
 
 import javax.xml.parsers.ParserConfigurationException;
 
@@ -55,6 +56,7 @@ import java.io.IOException;
  * against loss in generality.
  * 
  * @author Arun Sharma
+ * @author Jérôme Euzenat
  */
 public class QueryMediator implements QueryProcessor {
     
@@ -148,22 +150,23 @@ public class QueryMediator implements QueryProcessor {
      *    (use invert() in this case).
      */    
     public String rewriteQuery( String aQuery ) throws AlignmentException {
-	return rewriteQuery( aQuery, alignment );
+	return rewriteSPARQLQuery( aQuery, alignment );
     }
 
-    public static String rewriteQuery( String aQuery, Alignment align ) throws AlignmentException {
+    public static String rewriteSPARQLQuery( String aQuery, Alignment align ) throws AlignmentException {
 	// The first part expands the prefixes of the query
-        aQuery = aQuery.replaceAll("PREFIX", "prefix");
+        //aQuery = aQuery.replaceFirst("^[ \t\n]+","").replaceAll("PREFIX", "prefix");
+	aQuery = aQuery.trim().replaceAll("PREFIX", "prefix");
         String mainQuery = ""; 
         if( aQuery.indexOf("prefix") != -1 )  {
             String[] pref = aQuery.split("prefix");               
-            for(int j =0; j < pref.length; j++)  {
+            for(int j=0; j < pref.length; j++)  {
                 String str = "";
                 if(!pref[0].equals(""))   
                     str = pref[0];
                 else
                     str = pref[pref.length-1];
-                mainQuery = str.substring(str.indexOf('>') +1, str.length());
+                mainQuery = str.substring(str.indexOf('>')+1, str.length());
             }
                 
             for(int i = 0; i < pref.length; i++)  {       
@@ -172,8 +175,9 @@ public class QueryMediator implements QueryProcessor {
                     int begin = currPrefix.indexOf('<');
                     int end = currPrefix.indexOf('>');
                     String ns = currPrefix.substring(0, begin).trim();
-                    String iri = currPrefix.substring(begin+1, end).trim();         
-                    mainQuery = mainQuery.replaceAll(ns, iri);            
+                    String iri = currPrefix.substring(begin+1, end).trim();
+		    mainQuery = Pattern.compile(ns+"([A-Za-z0-9_-]+)").matcher(mainQuery).replaceAll("<"+iri+"#$1>");
+		    //mainQuery = mainQuery.replaceAll(ns+"([A-Za-z0-9_-]+)", "<"+iri+"#$1>");
                 }
             }
         } else mainQuery = aQuery;
diff --git a/src/fr/inrialpes/exmo/align/service/TranslatedMessage.java b/src/fr/inrialpes/exmo/align/service/TranslatedMessage.java
index f1481f464204eccaae171857ee1ff3b437d624a5..5f243a8a2e0ff581417ff5239eb6f89db3cf2553 100644
--- a/src/fr/inrialpes/exmo/align/service/TranslatedMessage.java
+++ b/src/fr/inrialpes/exmo/align/service/TranslatedMessage.java
@@ -32,6 +32,6 @@ public class TranslatedMessage extends Success {
 	super( surr, rep, from, to, cont, param );
     }
     public String HTMLString() {
-	return "Translated message: "+content;
+	return content;
     }
 }