diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index c13630e1f6c3e7262051afeca159962fdc29ac22..d111d8a92058b97a26b35963cf151ecdcaf112c7 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -236,7 +236,7 @@ StringXNumber ViewOptions_Number[] = {
   { F, "RaiseX" , opt_view_raise0 , 0. }, 
   { F, "RaiseY" , opt_view_raise1 , 0. }, 
   { F, "RaiseZ" , opt_view_raise2 , 0. }, 
-  { F|O, "ArrowScale" , opt_view_arrow_scale , 100. }, 
+  { F|O, "ArrowScale" , opt_view_arrow_scale , 50. }, 
   { F, "Visible" , opt_view_visible , 1. }, 
   { F|O, "IntervalsType" , opt_view_intervals_type , DRAW_POST_ISO }, 
   { F|O, "NbIso" , opt_view_nb_iso , 15. }, 
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index d0896de032632c34a52de105d5cbfb10f1ed24bc..58f85d5b5dc0b65dc7486d43a65785efe9c05915 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.53 2001-02-24 08:53:20 geuzaine Exp $
+// $Id: GUI.cpp,v 1.54 2001-03-03 08:44:32 geuzaine Exp $
 
 // To make the interface as visually consistent as possible, please:
 // - use the BH, BW, WB, IW values for button heights/widths, window borders, etc.
@@ -1823,7 +1823,7 @@ void GUI::create_view_options_window(int num){
 	view_value[10]->type(FL_HORIZONTAL);
 	view_value[10]->align(FL_ALIGN_RIGHT);
 	view_value[10]->minimum(0); 
-	view_value[10]->maximum(100000); 
+	view_value[10]->maximum(1000); 
 	view_value[10]->step(1);
 	view_vector->end();
       }
diff --git a/Graphics/PostSimplex.cpp b/Graphics/PostSimplex.cpp
index e03a27df529ed8aed54de955359b4a37993706c4..e87397fd1df61ced8c3c005e31195bec453931ee 100644
--- a/Graphics/PostSimplex.cpp
+++ b/Graphics/PostSimplex.cpp
@@ -1,4 +1,4 @@
-// $Id: PostSimplex.cpp,v 1.11 2001-01-29 22:33:41 remacle Exp $
+// $Id: PostSimplex.cpp,v 1.12 2001-03-03 08:44:32 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -41,8 +41,7 @@ void Draw_VectorPoint(Post_View *View,
   double   d,dx,dy,dz,fact;
           
   if(View->ArrowType == DRAW_POST_DISPLACEMENT){
-
-    fact = View->ArrowScale/100. ;
+    fact = View->ArrowScale/50. ;
     glColor4ubv((GLubyte*)&CTX.color.fg);
     glBegin(GL_POINTS);
     glVertex3d(fact*V[3*View->TimeStep],
@@ -68,7 +67,7 @@ void Draw_VectorPoint(Post_View *View,
     
     if(d!=0.0 && d>=ValMin && d<=ValMax){
       Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-      fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;
+      fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
       if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
         dx /= d ; dy /= d ; dz /= d ;
         d = log10(d/ValMin) ; 
@@ -175,7 +174,7 @@ void Draw_VectorLine(Post_View *View,
     d = sqrt(dx*dx+dy*dy+dz*dz);          
     if(d!=0.0 && d>=ValMin && d<=ValMax){           
       Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));            
-      fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;            
+      fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
       if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
 	dx /= d ; dy /= d ; dz /= d ;
 	d = log10(d/ValMin) ; 
@@ -198,7 +197,7 @@ void Draw_VectorLine(Post_View *View,
       d = sqrt(dx*dx+dy*dy+dz*dz);            
       if(d!=0.0 && d>=ValMin && d<=ValMax){           
 	Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-	fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;          
+	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
 	if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
 	  dx /= d ; dy /= d ; dz /= d ;
 	  d = log10(d/ValMin) ; 
@@ -356,7 +355,7 @@ void Draw_VectorTriangle(Post_View *View,
 
   if(View->ArrowType == DRAW_POST_DISPLACEMENT){
 
-    fact = View->ArrowScale/100. ;
+    fact = View->ArrowScale/50. ;
     for(m=0 ; m<3 ; m++){
       xx[m] = X[m] + fact * V[9*View->TimeStep + 3 * m ];
       yy[m] = Y[m] + fact * V[9*View->TimeStep + 3 * m + 1];
@@ -380,7 +379,7 @@ void Draw_VectorTriangle(Post_View *View,
       d = sqrt(dx*dx+dy*dy+dz*dz);
       if(d!=0.0 && d>=ValMin && d<=ValMax){             
         Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));            
-        fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;            
+	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
         if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
           dx /= d ; dy /= d ; dz /= d ;
           d = log10(d/ValMin) ; 
@@ -404,7 +403,7 @@ void Draw_VectorTriangle(Post_View *View,
         
         if(d!=0.0 && d>=ValMin && d<=ValMax){           
           Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-          fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;          
+	  fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
           if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
             dx /= d ; dy /= d ; dz /= d ;
             d = log10(d/ValMin) ; 
@@ -464,11 +463,6 @@ void Draw_VectorTetrahedron(Post_View *View,
   int     k;
   double  d,dx,dy,dz,fact;
 
-  /* 
-     la plus grande fleche (d=ValMax) est de taille CTX.lc/50
-     (View->ArrowScale == 100 par defaut)
-  */
-    
   if(View->ArrowLocation == DRAW_POST_LOCATE_COG){
     dx = 0.25 * (V[12*View->TimeStep]  +V[12*View->TimeStep+3]+
 		 V[12*View->TimeStep+6]+V[12*View->TimeStep+9] );
@@ -480,7 +474,7 @@ void Draw_VectorTetrahedron(Post_View *View,
     
     if(d!=0.0 && d>=ValMin && d<=ValMax){             
       Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-      fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;            
+      fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
       if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
 	dx /= d ; dy /= d ; dz /= d ;
 	d = log10(d/ValMin) ; 
@@ -504,7 +498,7 @@ void Draw_VectorTetrahedron(Post_View *View,
       
       if(d!=0.0 && d>=ValMin && d<=ValMax){     
 	Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-	fact = 2.e-4 * CTX.lc * View->ArrowScale/View->Max ;          
+	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/View->Max ;
 	if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
 	  dx /= d ; dy /= d ; dz /= d ;
 	  d = log10(d/ValMin) ;