diff --git a/Mesh/2D_Links.cpp b/Mesh/2D_Links.cpp
index f3538a695d8b12360095427a1fa19858fe0e0259..f8ec68f5e8d04fb17c5aabdd251c37e97a6e85c6 100644
--- a/Mesh/2D_Links.cpp
+++ b/Mesh/2D_Links.cpp
@@ -1,4 +1,4 @@
-// $Id: 2D_Links.cpp,v 1.15 2003-03-21 00:52:40 geuzaine Exp $
+// $Id: 2D_Links.cpp,v 1.16 2003-03-30 22:26:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle
 //
@@ -158,9 +158,11 @@ int CreateLinks(List_T * ListDelaunay, int NumDelaunay,
   MPoint pt;
   Delaunay *del_Pi, *del_Pj;
 
-  ListEdges = (edge *) Malloc((3 * NumDelaunay + 2) * sizeof(edge));
+  ListEdges = (edge *) Malloc((3 * NumDelaunay + 1) * sizeof(edge));
 
-  ListEdges[3 * NumDelaunay + 1].num = 0;
+  ListEdges[3 * NumDelaunay].num = 0;
+  ListEdges[3 * NumDelaunay].from = 0;
+  ListEdges[3 * NumDelaunay].to = 0;
 
   for(i = 0; i < NumDelaunay; i++) {
 
@@ -210,11 +212,12 @@ int CreateLinks(List_T * ListDelaunay, int NumDelaunay,
 
   do {
 
-    if((ListEdges[i].from == ListEdges[i + 1].from) && (ListEdges[i].to == ListEdges[i + 1].to)) {      /* create link */
+    if((ListEdges[i].from == ListEdges[i + 1].from) &&
+       (ListEdges[i].to == ListEdges[i + 1].to)) { 
+      /* create link */
 
       del_Pi = *(Delaunay **) List_Pointer(ListDelaunay, ListEdges[i].num);
-      del_Pj =
-        *(Delaunay **) List_Pointer(ListDelaunay, ListEdges[i + 1].num);
+      del_Pj = *(Delaunay **) List_Pointer(ListDelaunay, ListEdges[i + 1].num);
 
       if((del_Pi->t.position != EXTERN) &&
          (del_Pj->t.position != EXTERN) &&
@@ -240,8 +243,9 @@ int CreateLinks(List_T * ListDelaunay, int NumDelaunay,
       }
       i += 2;
     }
-    else
+    else{
       i++;
+    }
   } while(i < 3 * NumDelaunay);
 
   Free(ListEdges);