diff --git a/Mesh/Vertex.cpp b/Mesh/Vertex.cpp
index 05f526d520bd31e4e859ff3d3a083dde49194b5c..d5dbe01bccffd91a7cf94d8141f636c34c6497ab 100644
--- a/Mesh/Vertex.cpp
+++ b/Mesh/Vertex.cpp
@@ -1,4 +1,4 @@
-// $Id: Vertex.cpp,v 1.6 2001-01-24 16:15:31 geuzaine Exp $
+// $Id: Vertex.cpp,v 1.7 2001-05-29 13:32:02 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Vertex.h"
@@ -77,7 +77,13 @@ Vertex *Create_Vertex (int Num, double X, double Y, double Z, double lc, double
 void Free_Vertex (void *a, void *b){
   Vertex *pV = *(Vertex**)a;
 
-  if(pV)Free(pV);
+  if(pV){
+    List_Delete(pV->ListSurf);
+    List_Delete(pV->ListCurves);
+    List_Delete(pV->Extruded_Points);
+    Free(pV);
+    pV = NULL ;
+  }
 }
 
 int compareVertex (const void *a, const void *b){