diff --git a/Mesh/meshGFaceBamg.cpp b/Mesh/meshGFaceBamg.cpp
index ee16056ffb3656d5790d3542aa807ecea196cd2d..aee9b7f0437ebc1f4226e5d625813ff36a081505 100644
--- a/Mesh/meshGFaceBamg.cpp
+++ b/Mesh/meshGFaceBamg.cpp
@@ -67,8 +67,6 @@ static void computeMeshMetricsForBamg(GFace *gf, int numV,
 
 void meshGFaceBamg(GFace *gf){
 
- //printf("meshGFaceBamg face=%d \n",gf->tag());
- 
  //Replace edges by their compounds
   std::list<GEdge*> edges = gf->edges();
   std::set<GEdge*> mySet;
@@ -94,14 +92,16 @@ void meshGFaceBamg(GFace *gf){
     }
   }
 
+  //fill mesh data fo bamg (bamgVertices, bamgTriangles, bamgBoundary)
   std::set<MVertex*> all;
   std::map<int,MVertex*> recover;
   for (unsigned int i = 0; i < gf->triangles.size(); i++){
     for (unsigned int j = 0; j < 3; j++) 
       all.insert(gf->triangles[i]->getVertex(j));
   }
-  printf("all.size=%d \n", all.size());
-  Vertex2 *bamgVertices = new Vertex2[all.size()];
+
+  
+  Vertex2 *bamgVertices = new Vertex2[bcVertex.size()+all.size()]; //all.size()];
   int index = 0;
   //for(std::set<MVertex*>::iterator it = all.begin(); it!=all.end(); ++it){
   // if ((*it)->onWhat()->dim() <= 1){  
@@ -113,12 +113,12 @@ void meshGFaceBamg(GFace *gf){
       bamgVertices[index].lab = index;
       recover[index] = *it;
       (*it)->setIndex(index++);
-    }
-  //}
+    //}
+  }
 
-  int nbFixedVertices = index;
-  for(std::set<MVertex*>::iterator it = all.begin(); it!=all.end(); ++it){
-    // FIXME : SEAMS should have to be taken into account here !!!
+int nbFixedVertices = index;
+ for(std::set<MVertex*>::iterator it = all.begin(); it!=all.end(); ++it){
+   // FIXME : SEAMS should have to be taken into account here !!!
     if ((*it)->onWhat()->dim() >= 2){
       SPoint2 p;
       bool success = reparamMeshVertexOnFace(*it, gf, p);
@@ -127,7 +127,7 @@ void meshGFaceBamg(GFace *gf){
       recover[index] = *it;
       (*it)->setIndex(index++);
     }
-  }
+ }
 
   Triangle2 *bamgTriangles = new Triangle2[gf->triangles.size()];
   for (unsigned int i = 0; i < gf->triangles.size(); i++){    
@@ -148,7 +148,6 @@ void meshGFaceBamg(GFace *gf){
     }
     bamgTriangles[i].init(bamgVertices, nodes, gf->tag());
   }
-  //std::list<GEdge*> edges = gf->edges();
   int numEdges = 0;
   for (std::list<GEdge*>::iterator it = edges.begin(); it != edges.end(); ++it){
       numEdges += (*it)->lines.size();