diff --git a/Graphics/PostSimplex.cpp b/Graphics/PostSimplex.cpp
index daab0c685986cff15b56af60b09abcba7256c6fa..b5b9b9197ecbc5512e7732c702d531b422ea6aa0 100644
--- a/Graphics/PostSimplex.cpp
+++ b/Graphics/PostSimplex.cpp
@@ -1,4 +1,4 @@
-// $Id: PostSimplex.cpp,v 1.24 2001-08-03 19:23:38 geuzaine Exp $
+// $Id: PostSimplex.cpp,v 1.25 2001-08-03 19:40:01 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -97,15 +97,19 @@ void Draw_ScalarLine(Post_View *View,
   double  Xp[5],Yp[5],Zp[5],Val[5],value[5],thev;
   char    Num[100] ;
 
+  double *vv = &V[2*View->TimeStep];
+
   if(View->Boundary > 0){
     View->Boundary--;
-    Draw_ScalarPoint(View, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &V[0]);//0
-    Draw_ScalarPoint(View, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &V[1]);//1
+    int ts = View->TimeStep;
+    View->TimeStep = 0;
+    Draw_ScalarPoint(View, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);//0
+    Draw_ScalarPoint(View, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);//1
+    View->TimeStep = ts;
     View->Boundary++;
     return;
   }
 
-  double *vv = &V[2*View->TimeStep];
   if(View->SaturateValues){
     for(i=0;i<2;i++){
       if(vv[i] > ValMax) Val[i] = ValMax;
@@ -199,18 +203,22 @@ void Draw_ScalarTriangle(Post_View *View, int preproNormals,
   double  Xp[5],Yp[5],Zp[5],Val[3],value[5],thev;
   char    Num[100] ;
 
+  double *vv = &V[3*View->TimeStep];
+
   if(!preproNormals && View->Boundary > 0){
     View->Boundary--;
-    Draw_ScalarLine(View, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &V[0]);//01
-    Draw_ScalarLine(View, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &V[1]);//12
-    Xp[0] = X[0]; Yp[0] = Y[0]; Zp[0] = Z[0]; Val[0] = V[0];
-    Xp[1] = X[2]; Yp[1] = Y[2]; Zp[1] = Z[2]; Val[1] = V[2];
+    int ts = View->TimeStep;
+    View->TimeStep = 0;
+    Draw_ScalarLine(View, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);//01
+    Draw_ScalarLine(View, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);//12
+    Xp[0] = X[0]; Yp[0] = Y[0]; Zp[0] = Z[0]; Val[0] = vv[0];
+    Xp[1] = X[2]; Yp[1] = Y[2]; Zp[1] = Z[2]; Val[1] = vv[2];
     Draw_ScalarLine(View, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);//02
+    View->TimeStep = ts;
     View->Boundary++;
     return;
   }
 
-  double *vv = &V[3*View->TimeStep];
   if(View->SaturateValues){
     for(i=0;i<3;i++){
       if(vv[i] > ValMax) Val[i] = ValMax;
@@ -370,21 +378,25 @@ void Draw_ScalarTetrahedron(Post_View *View, int preproNormals,
   char Num[100];
   double Val[4];
 
+  double *vv = &V[4*View->TimeStep];
+
   if(!preproNormals && View->Boundary > 0){
     View->Boundary--;
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &V[0]);//012
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &V[1]);//123
-    xx[0] = X[0]; yy[0] = Y[0]; zz[0] = Z[0]; Val[0] = V[0];
-    xx[1] = X[1]; yy[1] = Y[1]; zz[1] = Z[1]; Val[1] = V[1];
-    xx[2] = X[3]; yy[2] = Y[3]; zz[2] = Z[3]; Val[2] = V[3];
+    int ts = View->TimeStep;
+    View->TimeStep = 0;
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);//012
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);//123
+    xx[0] = X[0]; yy[0] = Y[0]; zz[0] = Z[0]; Val[0] = vv[0];
+    xx[1] = X[1]; yy[1] = Y[1]; zz[1] = Z[1]; Val[1] = vv[1];
+    xx[2] = X[3]; yy[2] = Y[3]; zz[2] = Z[3]; Val[2] = vv[3];
     Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, xx, yy, zz, Val);//013
-    xx[1] = X[2]; yy[1] = Y[2]; zz[1] = Z[2]; Val[1] = V[2];
+    xx[1] = X[2]; yy[1] = Y[2]; zz[1] = Z[2]; Val[1] = vv[2];
     Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, xx, yy, zz, Val);//023
+    View->TimeStep = ts;
     View->Boundary++;
     return;
   }
 
-  double *vv = &V[4*View->TimeStep];
   if(View->SaturateValues){
     for(i=0;i<4;i++){
       if(vv[i] > ValMax) Val[i] = ValMax;