diff --git a/Common/Views.cpp b/Common/Views.cpp
index 8e6d45c3a2df4f6f74ce36abd94c0f7646f1e5cf..9a949c238cc8c5746d17b2ddfb3fc2e5d692cb5c 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.123 2004-06-01 06:29:13 geuzaine Exp $
+// $Id: Views.cpp,v 1.124 2004-06-16 17:57:07 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -831,9 +831,11 @@ void ReadView(FILE *file, char *filename)
       v->DataSize = size;
 
       // Time values
-      v->Time = List_CreateFromFile(v->NbTimeStep, size, file, format, swap);
+      v->Time = List_CreateFromFile(v->NbTimeStep, 10, size, file, format, swap);
 
-#define LL List_CreateFromFile(nb, size, file, format, swap)
+      // if nb==0, this still allocates a list (empty, but ready to be
+      // filled later, e.g. in a plugin)
+#define LL List_CreateFromFile(nb, 100, size, file, format, swap)
 
       // Points
       nb = v->NbSP ? v->NbSP * (v->NbTimeStep + 3) : 0;
@@ -903,12 +905,12 @@ void ReadView(FILE *file, char *filename)
 
       // Strings
       nb = v->NbT2 ? v->NbT2 * 4 : 0;
-      v->T2D = List_CreateFromFile(nb, size, file, format, swap);
-      v->T2C = List_CreateFromFile(t2l, sizeof(char), file, format, swap);
+      v->T2D = List_CreateFromFile(nb, 10, size, file, format, swap);
+      v->T2C = List_CreateFromFile(t2l, 10, sizeof(char), file, format, swap);
 
       nb = v->NbT3 ? v->NbT3 * 5 : 0;
-      v->T3D = List_CreateFromFile(nb, size, file, format, swap);
-      v->T3C = List_CreateFromFile(t3l, sizeof(char), file, format, swap);
+      v->T3D = List_CreateFromFile(nb, 10, size, file, format, swap);
+      v->T3C = List_CreateFromFile(t3l, 10, sizeof(char), file, format, swap);
 
 
       Msg(DEBUG,
diff --git a/DataStr/List.cpp b/DataStr/List.cpp
index c41069e7f1a61037c6a60e5c69fe44f6243490da..f2ec9170fec7fe5270bcedae73cbaa94cfba82ac 100644
--- a/DataStr/List.cpp
+++ b/DataStr/List.cpp
@@ -1,4 +1,4 @@
-// $Id: List.cpp,v 1.30 2004-05-18 20:51:31 geuzaine Exp $
+// $Id: List.cpp,v 1.31 2004-06-16 17:57:07 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -420,16 +420,18 @@ void swap_bytes(char *array, int size, int n)
   Free(x);
 }
 
-List_T *List_CreateFromFile(int n, int size, FILE * file, int format,
+List_T *List_CreateFromFile(int n, int incr, int size, FILE * file, int format,
                             int swap)
 {
   int i;
   List_T *liste;
 
-  if(!n)
-    return NULL;
+  if(!n){
+    liste = List_Create(incr, incr, size);
+    return liste;
+  }
 
-  liste = List_Create(n, 1, size);
+  liste = List_Create(n, incr, size);
   liste->n = n;
   switch (format) {
   case LIST_FORMAT_ASCII:
diff --git a/DataStr/List.h b/DataStr/List.h
index 1a872a160b1791ded537dbd197db91d17c70ed66..68d216b77d6b00930eb3788748c1520732dd32c3 100644
--- a/DataStr/List.h
+++ b/DataStr/List.h
@@ -69,7 +69,7 @@ void    List_Reset(List_T *liste);
 void    List_Action(List_T *liste, void (*action)(void *data, void *dummy));
 void    List_Action_Inverse(List_T *liste, void (*action)(void *data, void *dummy));
 void    List_Copy(List_T *a , List_T *b);
-List_T *List_CreateFromFile(int n, int size, FILE *file, int format, int swap);
+List_T *List_CreateFromFile(int n, int incr, int size, FILE *file, int format, int swap);
 void    List_WriteToFile(List_T *liste, FILE *file, int format);
 
 #endif