diff --git a/Common/Views.cpp b/Common/Views.cpp
index fa269f08666b2f429c8fdd7297a4a9bd1c2484bd..26c986c6dadc6b9f34851e0406c89b3198fddb2a 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.171 2005-03-26 04:09:15 geuzaine Exp $
+// $Id: Views.cpp,v 1.172 2005-04-05 05:56:48 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -110,7 +110,7 @@ Post_View *BeginView(int allocate)
   if(allocate) {
     v->DataSize = sizeof(double);
 
-#define LCD List_Create(100, 1000, sizeof(double))
+#define LCD List_Create(1, 1000, sizeof(double))
     v->Time = LCD;
     v->SP = LCD; v->VP = LCD; v->TP = LCD;
     v->SL = LCD; v->VL = LCD; v->TL = LCD; v->SL2 = LCD; v->VL2 = LCD; v->TL2 = LCD; 
@@ -122,10 +122,10 @@ Post_View *BeginView(int allocate)
     v->SY = LCD; v->VY = LCD; v->TY = LCD; v->SY2 = LCD; v->VY2 = LCD; v->TY2 = LCD; 
 #undef LCD
 
-    v->T2D = List_Create(10, 100, sizeof(double));
-    v->T2C = List_Create(100, 1000, sizeof(char));
-    v->T3D = List_Create(10, 100, sizeof(double));
-    v->T3C = List_Create(100, 1000, sizeof(char));
+    v->T2D = List_Create(1, 100, sizeof(double));
+    v->T2C = List_Create(1, 100, sizeof(char));
+    v->T3D = List_Create(1, 100, sizeof(double));
+    v->T3C = List_Create(1, 100, sizeof(char));
   }
   else {
     v->Time = NULL;
@@ -905,12 +905,12 @@ void ReadView(FILE *file, char *filename)
       v->DataSize = size;
 
       // Time values
-      v->Time = List_CreateFromFile(v->NbTimeStep, 10, size, file, format, swap);
+      v->Time = List_CreateFromFile(v->NbTimeStep, 100, size, file, format, swap);
 
       // Note: if nb==0, we still allocates the lists (so that they
       // are ready to be filled later, e.g. in plugins)
 
-#define LCD List_CreateFromFile(nb, 100, size, file, format, swap)
+#define LCD List_CreateFromFile(nb, 1000, size, file, format, swap)
 
       // Points
       nb = v->NbSP ? v->NbSP * (v->NbTimeStep * 1 + 3) : 0; v->SP = LCD;
@@ -991,19 +991,19 @@ void ReadView(FILE *file, char *filename)
 
       // 2D strings
       nb = v->NbT2 ? v->NbT2 * 4 : 0;
-      v->T2D = List_CreateFromFile(nb, 10, size, file, format, swap);
+      v->T2D = List_CreateFromFile(nb, 100, size, file, format, swap);
       if(version <= 1.2)
-	v->T2C = List_CreateFromFileOld(t2l, 10, sizeof(char), file, format, swap);
+	v->T2C = List_CreateFromFileOld(t2l, 100, sizeof(char), file, format, swap);
       else
-	v->T2C = List_CreateFromFile(t2l, 10, sizeof(char), file, format, swap);
+	v->T2C = List_CreateFromFile(t2l, 100, sizeof(char), file, format, swap);
 
       // 3D strings
       nb = v->NbT3 ? v->NbT3 * 5 : 0;
-      v->T3D = List_CreateFromFile(nb, 10, size, file, format, swap);
+      v->T3D = List_CreateFromFile(nb, 100, size, file, format, swap);
       if(version <= 1.2)
-	v->T3C = List_CreateFromFileOld(t3l, 10, sizeof(char), file, format, swap);
+	v->T3C = List_CreateFromFileOld(t3l, 100, sizeof(char), file, format, swap);
       else
-	v->T3C = List_CreateFromFile(t3l, 10, sizeof(char), file, format, swap);
+	v->T3C = List_CreateFromFile(t3l, 100, sizeof(char), file, format, swap);
 
       Msg(DEBUG,
           "Read View '%s' (%d TimeSteps): "
diff --git a/DataStr/List.cpp b/DataStr/List.cpp
index e5d63faafcdd4b0f998c05fc0791c39fc4a0ac91..d588dfd265fbefd8b6b36f20fc38dce561134d57 100644
--- a/DataStr/List.cpp
+++ b/DataStr/List.cpp
@@ -1,4 +1,4 @@
-// $Id: List.cpp,v 1.34 2005-01-01 19:35:27 geuzaine Exp $
+// $Id: List.cpp,v 1.35 2005-04-05 05:56:48 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -428,7 +428,7 @@ List_T *List_CreateFromFile(int n, int incr, int size, FILE * file, int format,
   List_T *liste;
 
   if(!n){
-    liste = List_Create(incr, incr, size);
+    liste = List_Create(1, incr, size);
     return liste;
   }
 
@@ -508,7 +508,7 @@ List_T *List_CreateFromFileOld(int n, int incr, int size, FILE * file, int forma
   List_T *liste;
 
   if(!n){
-    liste = List_Create(incr, incr, size);
+    liste = List_Create(1, incr, size);
     return liste;
   }
 
diff --git a/Fltk/Opengl_Window.cpp b/Fltk/Opengl_Window.cpp
index a4ae8aa352819fa1772e4fa69020879602ef03e6..ffd4d90e755602955d0f70951d2946eafd42a660 100644
--- a/Fltk/Opengl_Window.cpp
+++ b/Fltk/Opengl_Window.cpp
@@ -1,4 +1,4 @@
-// $Id: Opengl_Window.cpp,v 1.47 2005-03-11 08:56:38 geuzaine Exp $
+// $Id: Opengl_Window.cpp,v 1.48 2005-04-05 05:56:48 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -292,14 +292,14 @@ int Opengl_Window::handle(int event)
     return 1;
 
   case FL_MOVE:
-    xmov = Fl::event_x() - xpos;
-    ymov = Fl::event_y() - ypos;
-    
+    xpos = Fl::event_x();
+    ypos = Fl::event_y();
+
     if(AddPointMode && !Fl::event_state(FL_SHIFT)){
       WID->g_opengl_window->cursor(FL_CURSOR_CROSS, FL_BLACK, FL_WHITE);
       // find line in real space corresponding to current cursor position
       double p[3],d[3];
-      unproject(Fl::event_x(), Fl::event_y(), p, d);
+      unproject(xpos, ypos, p, d);
       // fin closest point to the center of gravity
       double r[3] = {CTX.cg[0]-p[0], CTX.cg[1]-p[1], CTX.cg[2]-p[2]};
       double t;
@@ -313,14 +313,13 @@ int Opengl_Window::handle(int event)
       sprintf(str, "%g", sol[2]);
       WID->context_geometry_input[4]->value(str);
     }
-
-    if(ZoomClick) {
+    else if(ZoomClick) {
       ZoomMode = true;
       redraw();
     }
     else {
       WID->make_opengl_current();
-      Process_SelectionBuffer(Fl::event_x(), Fl::event_y(), &hits, ii, jj);
+      Process_SelectionBuffer(xpos, ypos, &hits, ii, jj);
       ov = v;
       oc = c;
       os = s;
@@ -336,9 +335,6 @@ int Opengl_Window::handle(int event)
         HighlightEntity(v, c, s, 0);
       }
     }
-
-    xpos += xmov;
-    ypos += ymov;
     return 1;
 
   default: