diff --git a/Common/Views.cpp b/Common/Views.cpp
index 18d790278a059b2185aba7f7510e31b397acb3f3..15a7df57506f13660afb7c975b50a5c847431fbf 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-/* $Id: Views.cpp,v 1.7 2000-11-27 10:58:18 geuzaine Exp $ */
+/* $Id: Views.cpp,v 1.8 2000-11-27 14:23:18 geuzaine Exp $ */
 
 #include "Gmsh.h"
 #include "Views.h"
@@ -103,19 +103,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
   if(ActualView->NbSP){
     nb = List_Nbr(ActualView->SP) / ActualView->NbSP ;
     for(i = 0 ; i < List_Nbr(ActualView->SP) ; i+=nb)
-      Stat_ScalarSimplex(0, (double*)List_Pointer(ActualView->SP,i),
+      Stat_ScalarSimplex(1, (double*)List_Pointer(ActualView->SP,i),
 			 nb-3, (double*)List_Pointer(ActualView->SP,i+3));
   }
   if(ActualView->NbVP){
     nb = List_Nbr(ActualView->VP) / ActualView->NbVP ;
     for(i = 0 ; i < List_Nbr(ActualView->VP) ; i+=nb)
-      Stat_VectorSimplex(0, (double*)List_Pointer(ActualView->VP,i),
+      Stat_VectorSimplex(1, (double*)List_Pointer(ActualView->VP,i),
 			 nb-3, (double*)List_Pointer(ActualView->VP,i+3));
   }
   if(ActualView->NbTP){
     nb = List_Nbr(ActualView->TP) / ActualView->NbTP ;
     for(i = 0 ; i < List_Nbr(ActualView->TP) ; i+=nb)
-      Stat_TensorSimplex(0, (double*)List_Pointer(ActualView->TP,i),
+      Stat_TensorSimplex(1, (double*)List_Pointer(ActualView->TP,i),
 			 nb-3, (double*)List_Pointer(ActualView->TP,i+3));
   }
 
@@ -124,19 +124,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
   if(ActualView->NbSL){
     nb = List_Nbr(ActualView->SL) / ActualView->NbSL ;
     for(i = 0 ; i < List_Nbr(ActualView->SL) ; i+=nb)
-      Stat_ScalarSimplex(1, (double*)List_Pointer(ActualView->SL,i),
+      Stat_ScalarSimplex(2, (double*)List_Pointer(ActualView->SL,i),
 			 nb-6, (double*)List_Pointer(ActualView->SL,i+6));
   }
   if(ActualView->NbVL){
     nb = List_Nbr(ActualView->VL) / ActualView->NbVL ;
     for(i = 0 ; i < List_Nbr(ActualView->VL) ; i+=nb)
-      Stat_VectorSimplex(1, (double*)List_Pointer(ActualView->VL,i),
+      Stat_VectorSimplex(2, (double*)List_Pointer(ActualView->VL,i),
 			 nb-6, (double*)List_Pointer(ActualView->VL,i+6));
   }
   if(ActualView->NbTL){
     nb = List_Nbr(ActualView->TL) / ActualView->NbTL ;
     for(i = 0 ; i < List_Nbr(ActualView->TL) ; i+=nb)
-      Stat_TensorSimplex(1, (double*)List_Pointer(ActualView->TL,i),
+      Stat_TensorSimplex(2, (double*)List_Pointer(ActualView->TL,i),
 			 nb-6, (double*)List_Pointer(ActualView->TL,i+6));
   }
 
@@ -145,19 +145,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
   if(ActualView->NbST){
     nb = List_Nbr(ActualView->ST) / ActualView->NbST ;
     for(i = 0 ; i < List_Nbr(ActualView->ST) ; i+=nb)
-      Stat_ScalarSimplex(2, (double*)List_Pointer(ActualView->ST,i),
+      Stat_ScalarSimplex(3, (double*)List_Pointer(ActualView->ST,i),
 			 nb-9, (double*)List_Pointer(ActualView->ST,i+9));
   }
   if(ActualView->NbVT){
     nb = List_Nbr(ActualView->VT) / ActualView->NbVT ;
     for(i = 0 ; i < List_Nbr(ActualView->VT) ; i+=nb)
-      Stat_VectorSimplex(2, (double*)List_Pointer(ActualView->VT,i),
+      Stat_VectorSimplex(3, (double*)List_Pointer(ActualView->VT,i),
 			 nb-9, (double*)List_Pointer(ActualView->VT,i+9));
   }
   if(ActualView->NbTT){
     nb = List_Nbr(ActualView->TT) / ActualView->NbTT ;
     for(i = 0 ; i < List_Nbr(ActualView->TT) ; i+=nb)
-      Stat_TensorSimplex(2, (double*)List_Pointer(ActualView->TT,i),
+      Stat_TensorSimplex(3, (double*)List_Pointer(ActualView->TT,i),
 			 nb-9, (double*)List_Pointer(ActualView->TT,i+9));
   }
 
@@ -166,19 +166,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
   if(ActualView->NbSS){
     nb = List_Nbr(ActualView->SS) / ActualView->NbSS ;
     for(i = 0 ; i < List_Nbr(ActualView->SS) ; i+=nb)
-      Stat_ScalarSimplex(3, (double*)List_Pointer(ActualView->SS,i),
+      Stat_ScalarSimplex(4, (double*)List_Pointer(ActualView->SS,i),
 			 nb-12, (double*)List_Pointer(ActualView->SS,i+12));
   }
   if(ActualView->NbVS){
     nb = List_Nbr(ActualView->VS) / ActualView->NbVS ;
     for(i = 0 ; i < List_Nbr(ActualView->VS) ; i+=nb)
-      Stat_VectorSimplex(3, (double*)List_Pointer(ActualView->VS,i),
+      Stat_VectorSimplex(4, (double*)List_Pointer(ActualView->VS,i),
 			 nb-12, (double*)List_Pointer(ActualView->VS,i+12));
   }
   if(ActualView->NbTS){
     nb = List_Nbr(ActualView->TS) / ActualView->NbTS ;
     for(i = 0 ; i < List_Nbr(ActualView->TS) ; i+=nb)
-      Stat_TensorSimplex(3, (double*)List_Pointer(ActualView->TS,i),
+      Stat_TensorSimplex(4, (double*)List_Pointer(ActualView->TS,i),
 			 nb-12, (double*)List_Pointer(ActualView->TS,i+12));
   }
 
@@ -290,20 +290,13 @@ void CopyViewOptions(Post_View *src, Post_View *dest){
 /*  S t a t _ X X X  S i m p l e x                                          */
 /* ------------------------------------------------------------------------ */
 
-void Stat_ScalarSimplex(int dim, double *coord, int N, double *V){
-  int i,nbnod;
+void Stat_ScalarSimplex(int nbnod, double *coord, int N, double *V){
+  int i;
   double *X, *Y, *Z;
   
-  switch(dim){
-  case 0 : nbnod = 1 ; NbPoints++; break;
-  case 1 : nbnod = 2 ; NbLines++; break;
-  case 2 : nbnod = 3 ; NbTriangles++; break;
-  case 3 : nbnod = 4 ; NbTetrahedra++; break;
-  }
-
   X = &coord[0] ; Y = &coord[nbnod] ; Z = &coord[2*nbnod] ;
 
-  if(NbPoints == 1 && NbLines == 1 && NbTriangles == 1 && NbTetrahedra == 1){
+  if(!NbPoints && !NbLines && !NbTriangles && !NbTetrahedra){
     ActualView->Min = V[0];
     ActualView->Max = V[0];
     ActualView->NbTimeStep = N/nbnod;
@@ -315,23 +308,23 @@ void Stat_ScalarSimplex(int dim, double *coord, int N, double *V){
     if(V[i] < ActualView->Min) ActualView->Min = V[i] ;
     if(V[i] > ActualView->Max) ActualView->Max = V[i] ;
   }
+
+  switch(nbnod){
+  case 1 : NbPoints++; break;
+  case 2 : NbLines++; break;
+  case 3 : NbTriangles++; break;
+  case 4 : NbTetrahedra++; break;
+  }
 }
 
-void Stat_VectorSimplex(int dim, double *coord, int N, double *V){
+void Stat_VectorSimplex(int nbnod, double *coord, int N, double *V){
   double l0;
-  int nbnod, i;
+  int i;
   double *X, *Y, *Z;
 
-  switch(dim){
-  case 0 : nbnod = 1 ; NbPoints++; break;
-  case 1 : nbnod = 2 ; NbLines++; break; 
-  case 2 : nbnod = 3 ; NbTriangles++; break;
-  case 3 : nbnod = 4 ; NbTetrahedra++; break;
-  }
-
   X = &coord[0] ; Y = &coord[nbnod] ; Z = &coord[2*nbnod] ;
 
-  if(NbPoints == 1 && NbLines == 1 && NbTriangles == 1 && NbTetrahedra == 1){
+  if(!NbPoints && !NbLines && !NbTriangles && !NbTetrahedra){
     l0 = sqrt(DSQR(V[0])+DSQR(V[1])+DSQR(V[2]));
     ActualView->Min = l0;
     ActualView->Max = l0;
@@ -346,10 +339,15 @@ void Stat_VectorSimplex(int dim, double *coord, int N, double *V){
     if(l0 > ActualView->Max) ActualView->Max = l0 ;
   }
 
-  ActualView->ScalarOnly = 0;
+  switch(nbnod){
+  case 1 : NbPoints++; break;
+  case 2 : NbLines++; break;
+  case 3 : NbTriangles++; break;
+  case 4 : NbTetrahedra++; break;
+  }
 }
 
-void Stat_TensorSimplex(int dim, double *coord, int N, double *v){
+void Stat_TensorSimplex(int nbnod, double *coord, int N, double *v){
   Msg(ERROR, "Tensor Field Views not Implemented Yet");
 }
 
@@ -362,7 +360,7 @@ extern int Force_ViewNumber;
 
 void Read_View(FILE *file, char *filename){
   char   str[NAME_STR_L], name[NAME_STR_L];
-  int    nb, format, nbtimestep;
+  int    nb, format;
   double version;
 
   while (1) {
@@ -394,63 +392,64 @@ void Read_View(FILE *file, char *filename){
       BeginView(0);
 
       fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d\n", 
-             name, &nbtimestep,
+             name, &ActualView->NbTimeStep,
              &ActualView->NbSP, &ActualView->NbVP, &ActualView->NbTP, 
              &ActualView->NbSL, &ActualView->NbVL, &ActualView->NbTL, 
              &ActualView->NbST, &ActualView->NbVT, &ActualView->NbTT, 
              &ActualView->NbSS, &ActualView->NbVS, &ActualView->NbTS);
 
       Msg(DEBUG, "View '%s' (%d TimeSteps): %d %d %d %d %d %d %d %d %d %d %d %d",
-          name, nbtimestep,
+          name, ActualView->NbTimeStep,
           ActualView->NbSP, ActualView->NbVP, ActualView->NbTP, 
           ActualView->NbSL, ActualView->NbVL, ActualView->NbTL, 
           ActualView->NbST, ActualView->NbVT, ActualView->NbTT, 
           ActualView->NbSS, ActualView->NbVS, ActualView->NbTS);
 
-      ActualView->Time = List_CreateFromFile(nbtimestep, sizeof(double), file, format);
+      ActualView->Time = List_CreateFromFile(ActualView->NbTimeStep, 
+					     sizeof(double), file, format);
 
       nb = ActualView->NbSP ? 
-        ActualView->NbSP * nbtimestep     + ActualView->NbSP * 3 : 0 ;
+        ActualView->NbSP * ActualView->NbTimeStep     + ActualView->NbSP * 3 : 0 ;
       ActualView->SP = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbVP ?
-        ActualView->NbVP * nbtimestep * 3 + ActualView->NbVP * 3 : 0 ;
+        ActualView->NbVP * ActualView->NbTimeStep * 3 + ActualView->NbVP * 3 : 0 ;
       ActualView->VP = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbTP ? 
-        ActualView->NbTP * nbtimestep * 9 + ActualView->NbTP * 3 : 0 ;
+        ActualView->NbTP * ActualView->NbTimeStep * 9 + ActualView->NbTP * 3 : 0 ;
       ActualView->TP = List_CreateFromFile(nb, sizeof(double), file, format);
 
       nb = ActualView->NbSL ? 
-        ActualView->NbSL * nbtimestep * 2     + ActualView->NbSL * 6 : 0 ;
+        ActualView->NbSL * ActualView->NbTimeStep * 2     + ActualView->NbSL * 6 : 0 ;
       ActualView->SL = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbVL ?
-        ActualView->NbVL * nbtimestep * 2 * 3 + ActualView->NbVL * 6 : 0 ;
+        ActualView->NbVL * ActualView->NbTimeStep * 2 * 3 + ActualView->NbVL * 6 : 0 ;
       ActualView->VL = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbTL ?
-        ActualView->NbTL * nbtimestep * 2 * 9 + ActualView->NbTL * 6 : 0 ;
+        ActualView->NbTL * ActualView->NbTimeStep * 2 * 9 + ActualView->NbTL * 6 : 0 ;
       ActualView->TL = List_CreateFromFile(nb, sizeof(double), file, format);
 
       nb = ActualView->NbST ? 
-        ActualView->NbST * nbtimestep * 3     + ActualView->NbST * 9 : 0 ;
+        ActualView->NbST * ActualView->NbTimeStep * 3     + ActualView->NbST * 9 : 0 ;
       ActualView->ST = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbVT ? 
-        ActualView->NbVT * nbtimestep * 3 * 3 + ActualView->NbVT * 9 : 0 ;
+        ActualView->NbVT * ActualView->NbTimeStep * 3 * 3 + ActualView->NbVT * 9 : 0 ;
       ActualView->VT = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbTT ? 
-        ActualView->NbTT * nbtimestep * 3 * 9 + ActualView->NbTT * 9 : 0 ;
+        ActualView->NbTT * ActualView->NbTimeStep * 3 * 9 + ActualView->NbTT * 9 : 0 ;
       ActualView->TT = List_CreateFromFile(nb, sizeof(double), file, format);
 
       nb = ActualView->NbSS ?
-        ActualView->NbSS * nbtimestep * 4     + ActualView->NbSS * 12 : 0 ;
+        ActualView->NbSS * ActualView->NbTimeStep * 4     + ActualView->NbSS * 12 : 0 ;
       ActualView->SS = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbVS ? 
-        ActualView->NbVS * nbtimestep * 4 * 3 + ActualView->NbVS * 12 : 0 ;
+        ActualView->NbVS * ActualView->NbTimeStep * 4 * 3 + ActualView->NbVS * 12 : 0 ;
       ActualView->VS = List_CreateFromFile(nb, sizeof(double), file, format);
       nb = ActualView->NbTS ?
-        ActualView->NbTS * nbtimestep * 4 * 9 + ActualView->NbTS * 12 : 0 ;
+        ActualView->NbTS * ActualView->NbTimeStep * 4 * 9 + ActualView->NbTS * 12 : 0 ;
       ActualView->TS = List_CreateFromFile(nb, sizeof(double), file, format);
 
       Msg(DEBUG, "Read View '%s' (%d TimeSteps): %d %d %d %d %d %d %d %d %d %d %d %d",
-          name, nbtimestep,
+          name, ActualView->NbTimeStep,
           List_Nbr(ActualView->SP), List_Nbr(ActualView->VP), List_Nbr(ActualView->TP), 
           List_Nbr(ActualView->SL), List_Nbr(ActualView->VL), List_Nbr(ActualView->TL), 
           List_Nbr(ActualView->ST), List_Nbr(ActualView->VT), List_Nbr(ActualView->TT),