diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp
index 075e8a09cecd348b52cacdf4d9676ed63a96851f..9a7fc22c88005b715d4293505313af150f8f2cd6 100644
--- a/Mesh/3D_Extrude_Old.cpp
+++ b/Mesh/3D_Extrude_Old.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude_Old.cpp,v 1.14 2001-10-29 08:52:20 geuzaine Exp $
+// $Id: 3D_Extrude_Old.cpp,v 1.15 2001-12-04 09:27:57 geuzaine Exp $
 
 // This is the old extrusion mesh generator -> only available through
 // the command line option -extrude (w/o -recombine). This mesh
@@ -316,7 +316,9 @@ static void Extrude_Simplex_Phase2 (void *data , void *dum){
       List_Read(s->V[1]->Extruded_Points,k+1,&v5);
       List_Read(s->V[2]->Extruded_Points,k+1,&v6);
       k++;
-      if(are_exist(v4,v2,Tree_Ares) && are_exist(v5,v3,Tree_Ares) && are_exist(v1,v6,Tree_Ares)){
+      if(are_exist(v4,v2,Tree_Ares) && 
+	 are_exist(v5,v3,Tree_Ares) && 
+	 are_exist(v1,v6,Tree_Ares)){
 	TEST_IS_ALL_OK++;
 	if(!are_exist(v4,v2,Tree_Swaps)){
 	  are_del(v4,v2,Tree_Ares);
@@ -337,7 +339,9 @@ static void Extrude_Simplex_Phase2 (void *data , void *dum){
 	  are_cree(v4,v3,Tree_Swaps);
 	}
       }
-      else if(are_exist(v1,v5,Tree_Ares) && are_exist(v2,v6,Tree_Ares) && are_exist(v4,v3,Tree_Ares)){
+      else if(are_exist(v1,v5,Tree_Ares) && 
+	      are_exist(v2,v6,Tree_Ares) && 
+	      are_exist(v4,v3,Tree_Ares)){
 	TEST_IS_ALL_OK++;
 	if(!are_exist(v1,v5,Tree_Swaps)){
 	  are_del(v1,v5,Tree_Ares);
@@ -374,6 +378,8 @@ static void Extrude_Vertex (void *data , void *dum){
   v->Extruded_Points = List_Create(NbLayer,1,sizeof(Vertex*));
   List_Add(v->Extruded_Points,&v);
   h = 0.0;
+
+  //printf("-extruding vertex %d %p\n", v->Num, v);
  
   for(i=0;i<NbLayer;i++){
 
@@ -446,6 +452,8 @@ static void Extrude_Seg(Vertex *V1, Vertex *V2){
   Vertex *v1,*v2,*v3,*v4;
   Simplex *s;
 
+  //printf("-curve vertex %d %p   %d %p\n", V1->Num, V1, V2->Num, V2);
+
   k = 0;
   for(i=0;i<NbLayer;i++){
     for(j=0;j<NbElmLayer[i];j++){
@@ -550,6 +558,12 @@ static void Extrude_Point (void *data , void *dum){
 
 }
 
+void FreeEP(void *a, void *b){
+  Vertex *v = *((Vertex**)a);
+  Free_ExtrudedPoints(v->Extruded_Points);
+  v->Extruded_Points = NULL;
+}
+
 void Extrude_Mesh_Old(Mesh *M){
   int j;
   Mesh MM;
@@ -560,6 +574,10 @@ void Extrude_Mesh_Old(Mesh *M){
   LOCAL = &MM;
   THEM  = M;
 
+  //clean up Extruded_Points stuff (in case another extrusion was
+  //performed before)
+  Tree_Action(THEM->Vertices,FreeEP);
+
   Create_BgMesh (WITHPOINTS, .2, LOCAL);
 
   Tree_Left(M->Volumes,&THEV);