diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 2f22b8cedc3c68d3eb528f2fc49b1a13f29e9012..8971a2d9b501be3926090fbfc5f8ffb35dadaaae 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.170 2002-04-25 18:06:15 geuzaine Exp $
+// $Id: GUI.cpp,v 1.171 2002-04-26 00:15:30 geuzaine Exp $
 
 // To make the interface as visually consistent as possible, please:
 // - use the IW, BB, BH, BW and WB values
@@ -1727,8 +1727,10 @@ void GUI::create_statistics_window(){
     stat_window->position(m_window->x()+m_window->w()/2-width/2,
 			  m_window->y()+9*BH-height/2);
   stat_window->end();
-  set_statistics();
+
   stat_window->show();
+  set_statistics();
+  stat_window->redraw();
 
 }
 
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index 97785aff17f8706cf8f4e15c96ff6e6936f7efa3..a6b3ce5024749db86aca2de3d809b3c1805913eb 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.35 2001-11-19 09:29:18 geuzaine Exp $
+// $Id: Main.cpp,v 1.36 2002-04-26 00:15:30 geuzaine Exp $
 
 #include <signal.h>
 #include <time.h>
@@ -108,8 +108,10 @@ int main(int argc, char *argv[]){
       }
       else
         Print_Geo(THEM, CTX.output_filename);
-      if(CTX.mesh.histogram)
+      if(CTX.mesh.histogram){
+	Mesh_Quality(THEM);
 	Print_Histogram(THEM->Histogram[0]);
+      }
       exit(1);
     }    
   }
diff --git a/Mesh/3D_Mesh.cpp b/Mesh/3D_Mesh.cpp
index 6124f7f6581d939b19fc28dfabe1cafc720b155e..3a8a441a64f253d60a8f955abd1c14145014ac49 100644
--- a/Mesh/3D_Mesh.cpp
+++ b/Mesh/3D_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Mesh.cpp,v 1.36 2002-02-16 14:14:47 remacle Exp $
+// $Id: 3D_Mesh.cpp,v 1.37 2002-04-26 00:15:30 geuzaine Exp $
 
 /*
  
@@ -994,10 +994,4 @@ void Maillage_Volume (void *data, void *dum){
   THEM->Statistics[10] += Tree_Nbr(v->Hexahedra);
   THEM->Statistics[11] += Tree_Nbr(v->Prisms);
 
-  if(v->Typ == 99999){
-    Gamma_Maillage (THEM, &THEM->Statistics[17], &THEM->Statistics[18], &THEM->Statistics[19]);
-    Eta_Maillage (THEM, &THEM->Statistics[20], &THEM->Statistics[21], &THEM->Statistics[22]);
-    R_Maillage (THEM, &THEM->Statistics[23], &THEM->Statistics[24], &THEM->Statistics[25]);
-  }
-
 }
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 90667a6791ee285829f2c59aa60187ee886b5946..03981c20cd7db22586b135fe1539d52a79f0c217 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// $Id: Generator.cpp,v 1.31 2001-12-03 08:41:44 geuzaine Exp $
+// $Id: Generator.cpp,v 1.32 2002-04-26 00:15:30 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Numeric.h"
@@ -22,6 +22,7 @@ void GetStatistics (double s[50]){
     THEM->Statistics[1] = Tree_Nbr (THEM->Curves);
     THEM->Statistics[2] = Tree_Nbr (THEM->Surfaces);
     THEM->Statistics[3] = Tree_Nbr (THEM->Volumes);
+    Mesh_Quality(THEM);
     for (i = 0; i < 50; i++) s[i] = THEM->Statistics[i];
   }
 }
diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h
index 07cb5fa13a026811449b4a0f343cebee86e6b224..a55c713ff17aa5ec035f7a1713542c336d74b065 100644
--- a/Mesh/Mesh.h
+++ b/Mesh/Mesh.h
@@ -483,6 +483,7 @@ void ApplyLcFactor(Mesh *M);
 void Gamma_Maillage (Mesh * m, double *gamma, double *gammamax, double *gammamin);
 void Eta_Maillage (Mesh * m, double *gamma, double *gammamax, double *gammamin);
 void R_Maillage (Mesh * m, double *gamma, double *gammamax, double *gammamin);
+void Mesh_Quality(Mesh *m);
 void Print_Histogram(int *h);
 
 #endif
diff --git a/Mesh/MeshQuality.cpp b/Mesh/MeshQuality.cpp
index 570bf05a963a6a09f5c343b67b9dc2c917de40a2..7efd0b2f38b9a9a7084f63df247b7fa67480d19e 100644
--- a/Mesh/MeshQuality.cpp
+++ b/Mesh/MeshQuality.cpp
@@ -1,4 +1,4 @@
-// $Id: MeshQuality.cpp,v 1.5 2001-08-11 23:28:32 geuzaine Exp $
+// $Id: MeshQuality.cpp,v 1.6 2002-04-26 00:15:30 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Numeric.h"
@@ -114,6 +114,11 @@ void R_Maillage (Mesh * m, double *gamma, double *gammamax, double *gammamin){
   *gammamin = GAMMAMIN;
 }
 
+void Mesh_Quality(Mesh *m){
+  Gamma_Maillage (m, &m->Statistics[17], &m->Statistics[18], &m->Statistics[19]);
+  Eta_Maillage (m, &m->Statistics[20], &m->Statistics[21], &m->Statistics[22]);
+  R_Maillage (m, &m->Statistics[23], &m->Statistics[24], &m->Statistics[25]);
+}
 
 void Print_Histogram(int *h){
   for(int i=0;i<NB_HISTOGRAM;i++)
diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp
index fae484c1754704c442804e61afe293a7db608967..66e77798298fb0f27571423f349671047e030a88 100644
--- a/Mesh/Read_Mesh.cpp
+++ b/Mesh/Read_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Read_Mesh.cpp,v 1.39 2002-02-05 20:18:50 geuzaine Exp $
+// $Id: Read_Mesh.cpp,v 1.40 2002-04-26 00:15:30 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Geo.h"
@@ -267,9 +267,6 @@ void Read_Mesh_MSH (Mesh *M, FILE *File_GEO){
 
   if(Tree_Nbr(M->Volumes)){
     M->status = 3 ;
-    Gamma_Maillage(M, &M->Statistics[17], &M->Statistics[18], &M->Statistics[19]);
-    Eta_Maillage(M, &M->Statistics[20], &M->Statistics[21], &M->Statistics[22]);
-    R_Maillage(M, &M->Statistics[23], &M->Statistics[24], &M->Statistics[25]);
     M->Statistics[6]=Tree_Nbr(M->Vertices); //incorrect, mais...
   }
   else if(Tree_Nbr(M->Surfaces)){
@@ -299,5 +296,4 @@ void Read_Mesh (Mesh *M, FILE *File_GEO, int type){
   case FORMAT_SMS : Read_Mesh_SMS(M,File_GEO); break;
   default : Msg(WARNING, "Unkown mesh file format to read"); break;
   }
-  GetStatistics(s);
 }