diff --git a/src/fr/inrialpes/exmo/align/util/GenPlot.java b/src/fr/inrialpes/exmo/align/util/GenPlot.java
index 6e9d3489fd521afe11b4e571b78203b8aef70746..3d91f94a519e0a3a1c86e5196ef734d11ee1e018 100644
--- a/src/fr/inrialpes/exmo/align/util/GenPlot.java
+++ b/src/fr/inrialpes/exmo/align/util/GenPlot.java
@@ -1,6 +1,5 @@
 /*
  * $Id$
- * MULT
  *
  * Copyright (C) 2003 The University of Manchester
  * Copyright (C) 2003 The University of Karlsruhe
@@ -63,35 +62,40 @@ import gnu.getopt.Getopt;
 import fr.inrialpes.exmo.align.parser.AlignmentParser;
 
 /** A basic class for synthesizing the alignment results of an algorithm by a
-    precision recall graph.
-    
-    <pre>
-    java -cp procalign.jar fr.inrialpes.exmo.align.util.GenPlot [options]
-    </pre>
-
-    where the options are:
-    <pre>
-    -o filename --output=filename
-    -d debug --debug=level
-    -l list of compared algorithms
-    -t output --type=output: xml/tex/html/ascii
-   </pre>
-
-   The input is taken in the current directory in a set of subdirectories (one per
-   test) each directory contains a the alignment files (one per algorithm) for that test and the
-   reference alignment file.
-
-   If output is
-   requested (<CODE>-o</CODE> flags), then output will be written to
-    <CODE>output</CODE> if present, stdout by default.
-
-<pre>
-$Id$
-</pre>
-
-@author Sean K. Bechhofer
-@author Jérôme Euzenat
-    */
+ * precision recall graph.
+ *
+ * These graphs are however computed on averaging the precision recall/graphs
+ * on test directories instead of recording the actual precision recall graphs
+ * which would amount at recoding all the valid and invalid alignment cells and
+ * their level.
+ *  
+ *  <pre>
+ *  java -cp procalign.jar fr.inrialpes.exmo.align.util.GenPlot [options]
+ *  </pre>
+ *
+ *  where the options are:
+ *  <pre>
+ *  -o filename --output=filename
+ *  -d debug --debug=level
+ *  -l list of compared algorithms
+ *  -t output --type=output: xml/tex/html/ascii
+ * </pre>
+ *
+ * The input is taken in the current directory in a set of subdirectories (one per
+ * test) each directory contains a the alignment files (one per algorithm) for that test and the
+ * reference alignment file.
+ *
+ * If output is
+ * requested (<CODE>-o</CODE> flags), then output will be written to
+ *  <CODE>output</CODE> if present, stdout by default.
+ *
+ * <pre>
+ * $Id$
+ * </pre>
+ *
+ * @author Sean K. Bechhofer
+ * @author Jérôme Euzenat
+ */
 
 public class GenPlot {
 
@@ -167,7 +171,7 @@ public class GenPlot {
     /**
      * Iterate on each subdirectory
      * Returns a vector[ each algo ] of vector [ each point ]
-     * The points are computing by aggregating the values
+     * The points are computed by aggregating the values
      *  (and in the end computing the average)
      */
     public static double[][] iterateDirectories (){
@@ -254,7 +258,7 @@ public class GenPlot {
 	    params.setParameter( "debug", new Integer( nextdebug ) );
 	    eval.eval( params ) ;
 
-	// Unload the ontologies.
+	    // Unload the ontologies.
 	    for ( Enumeration e = loaded.elements() ; e.hasMoreElements();  ){
 		OWLOntology o = (OWLOntology)e.nextElement();
 		o.getOWLConnection().notifyOntologyDeleted( o );
diff --git a/src/fr/inrialpes/exmo/align/util/GroupAlign.java b/src/fr/inrialpes/exmo/align/util/GroupAlign.java
index e4c4cf279d133ae3caccbcd27a65a5cabcbdaa22..d53cfc9ba19bf8ce66e351516b2bdcd5a71d7458 100644
--- a/src/fr/inrialpes/exmo/align/util/GroupAlign.java
+++ b/src/fr/inrialpes/exmo/align/util/GroupAlign.java
@@ -315,7 +315,10 @@ public class GroupAlign {
 	if (debug > 1) System.err.println(" Alignment structure created");
 
 	// Compute alignment
+	long time = System.currentTimeMillis();
 	result.align(init, params); // add opts
+	long newTime = System.currentTimeMillis();
+	//result.setTime( newTime - time );
 
 	if (debug > 1) System.err.println(" Alignment performed");
 
diff --git a/src/fr/inrialpes/exmo/align/util/GroupEval.java b/src/fr/inrialpes/exmo/align/util/GroupEval.java
index c4cfc2dd2329e37b50637cc8dc76f9faaacdbd17..7e8e1334c22b6848a3c5e1099700cdc1c830c593 100644
--- a/src/fr/inrialpes/exmo/align/util/GroupEval.java
+++ b/src/fr/inrialpes/exmo/align/util/GroupEval.java
@@ -266,6 +266,7 @@ public class GroupEval {
 	int expected = 0; // expected so far
 	int foundVect[]; // found so far
 	int correctVect[]; // correct so far
+	long timeVect[]; // time so far
 	double hMeansPrec[]; // Precision H-means so far
 	double hMeansRec[]; // Recall H-means so far
 	PrintStream writer = null;
@@ -306,6 +307,8 @@ public class GroupEval {
 			writer.print("FMeas.");
 		    } else if ( format.charAt(i) == 'o' ) {
 			writer.print("Over.");
+		    } else if ( format.charAt(i) == 't' ) {
+			writer.print("Time");
 		    }
 		    writer.println("</td>");
 		}
@@ -314,11 +317,13 @@ public class GroupEval {
 	    writer.println("</tr></tbody><tbody>");
 	    foundVect = new int[ listAlgo.size() ];
 	    correctVect = new int[ listAlgo.size() ];
+	    timeVect = new long[ listAlgo.size() ];
 	    hMeansPrec = new double[ listAlgo.size() ];
 	    hMeansRec = new double[ listAlgo.size() ];
 	    for( int k = listAlgo.size()-1; k >= 0; k-- ) {
 		foundVect[k] = 0;
 		correctVect[k] = 0;
+		timeVect[k] = 0;
 		hMeansPrec[k] = 1.;
 		hMeansRec[k] = 1.;
 	    }
@@ -356,6 +361,7 @@ public class GroupEval {
 			int ncorrect = eval.getCorrect();
 			int ocorrect = correctVect[k];
 			correctVect[k] = ocorrect + ncorrect;
+			timeVect[k] += eval.getTime();
 
 			for ( int i = 0 ; i < fsize; i++){
 			    writer.print("<td>");
@@ -369,6 +375,12 @@ public class GroupEval {
 				printFormat(writer,eval.getFmeasure());
 			    } else if ( format.charAt(i) == 'o' ) {
 				printFormat(writer,eval.getOverall());
+			    } else if ( format.charAt(i) == 't' ) {
+				if ( eval.getTime() == 0 ){
+				    writer.print("-");
+				} else {
+				    printFormat(writer,eval.getTime());
+				}
 			    }
 			    writer.println("</td>");
 			}
@@ -396,6 +408,12 @@ public class GroupEval {
 			printFormat(writer,2 * precision * recall / (precision + recall));
 		    } else if ( format.charAt(i) == 'o' ) {
 			printFormat(writer,recall * (2 - (1 / precision)));
+		    } else if ( format.charAt(i) == 't' ) {
+			if ( timeVect[k] == 0 ){
+			    writer.print("-");
+			} else {
+			    printFormat(writer,timeVect[k]);
+			}
 		    }
 		    writer.println("</td>");
 		};
@@ -430,7 +448,7 @@ public class GroupEval {
     public static void usage() {
 	System.out.println("usage: GroupEval [options]");
 	System.out.println("options are:");
-	System.out.println("\t--format=prfmo -r prfmo\tSpecifies the output order (precision/recall/fallout/f-measure/overall)");
+	System.out.println("\t--format=prfmot -r prfmot\tSpecifies the output order (precision/recall/fallout/f-measure/overall/time)");
 	System.out.println("\t--dominant=algo -s algo\tSpecifies if dominant columns are algorithms or measure");
 	System.out.println("\t--type=html|xml|tex|ascii -t html|xml|tex|ascii\tSpecifies the output format");
 	System.out.println("\t--list=algo1,...,algon -l algo1,...,algon\tSequence of the filenames to consider");