diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index d883232e76966863b75e5f090e70140b3e0e85d6..77b6dd2b0eabc48dfb3ced2007d4b2e48c8e18be 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -2934,6 +2934,10 @@ graphicWindow::~graphicWindow()
   _tile->clear();
   _win->clear();
   Fl::delete_widget(_win);
+  if(_menuwin){
+    _menuwin->clear();
+    Fl::delete_widget(_menuwin);
+  }
 }
 
 void graphicWindow::setTitle(std::string str)
diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp
index b1208cdcfcddc6544275169c24a00a7d8ccdb2f5..b9e6bd3e0caed23b645000d08545af1a712da2af 100644
--- a/Mesh/meshGFaceDelaunayInsertion.cpp
+++ b/Mesh/meshGFaceDelaunayInsertion.cpp
@@ -40,7 +40,7 @@ static bool isBoundary(MTri3 *t, double limit_, int &active)
 }
 */
 template <class ITERATOR>
-void _printTris(char *name, ITERATOR it,  ITERATOR end, 
+void _printTris(char *name, ITERATOR it,  ITERATOR end,
                 std::vector<double> &Us, std::vector<double> &Vs, bool param=true)
 {
   FILE *ff = fopen (name,"w");
@@ -700,7 +700,9 @@ static MTri3* search4Triangle (MTri3 *t, double pt[2],
     if (inside) return t;
     if (ITER++ > (int)AllTris.size()) break;
   }
-  //  return 0;
+
+  return 0; // FIXME: removing this leads to horrible performance
+
   for(std::set<MTri3*,compareTri3Ptr>::iterator itx = AllTris.begin();
       itx != AllTris.end();++itx){
     if (!(*itx)->isDeleted()){
@@ -768,12 +770,10 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
     if(!p.succeeded() || !insertVertex
        (false, gf, v, center, ptin, AllTris,ActiveTris, vSizes, vSizesBGM,vMetricsBGM,
         Us, Vs, metric) ) {
-
       //      Msg::Debug("Point %g %g cannot be inserted because %d",
       //                       center[0], center[1], p.succeeded() );
       //      printf("Point %g %g cannot be inserted because %d",
       //	     center[0], center[1], p.succeeded() );
-
       AllTris.erase(it);
       worst->forceRadius(-1);
       AllTris.insert(worst);
@@ -782,24 +782,20 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
     }
     else {
       //      printf("done ! %d\n",AllTris.size());
-
       gf->mesh_vertices.push_back(v);
       return true;
     }
   }
   else {
-    printf("NOT INSIDE\n");
-    /*
     MTriangle *base = worst->tri();
-    Msg::Info("Point %g %g is outside (%g %g , %g %g , %g %g)",
-	      center[0], center[1],
-	      Us[base->getVertex(0)->getIndex()],
-	      Vs[base->getVertex(0)->getIndex()],
-	      Us[base->getVertex(1)->getIndex()],
-	      Vs[base->getVertex(1)->getIndex()],
-	      Us[base->getVertex(2)->getIndex()],
-	      Vs[base->getVertex(2)->getIndex()]);
-    */
+    Msg::Debug("Point %g %g is outside (%g %g , %g %g , %g %g)",
+               center[0], center[1],
+               Us[base->getVertex(0)->getIndex()],
+               Vs[base->getVertex(0)->getIndex()],
+               Us[base->getVertex(1)->getIndex()],
+               Vs[base->getVertex(1)->getIndex()],
+               Us[base->getVertex(2)->getIndex()],
+               Vs[base->getVertex(2)->getIndex()]);
     AllTris.erase(it);
     worst->forceRadius(0);
     AllTris.insert(worst);
@@ -1005,14 +1001,14 @@ double optimalPointFrontal (GFace *gf,
   const double d = rhoM_hat * sqrt(3.)*0.5;
 
   // d is corrected in a way that the mesh size is computed at point newPoint
-  
+
 
   //  printf("%12.5E %12.5E\n",d,RATIO);
 
   //  const double L = d ;
   // avoid to go toooooo far
   const double L = d > q ? q : d;
-  
+
 
   newPoint[0] = midpoint[0] + L * dir[0]/RATIO;
   newPoint[1] = midpoint[1] + L * dir[1]/RATIO;
@@ -1595,7 +1591,7 @@ void bowyerWatsonParallelograms(GFace *gf)
 
   //  printf("CARNAVAL !!!\n");
 
-  //  std::sort(packed.begin(), packed.end(), lexicographicSort()); 
+  //  std::sort(packed.begin(), packed.end(), lexicographicSort());
 
   for (unsigned int i=0;i<packed.size();){
     MTri3 *worst = *AllTris.begin();
@@ -1605,7 +1601,7 @@ void bowyerWatsonParallelograms(GFace *gf)
       AllTris.erase(AllTris.begin());
     }
     else{
-      double newPoint[2] ; 
+      double newPoint[2] ;
       packed[i]->getParameter(0,newPoint[0]);
       packed[i]->getParameter(1,newPoint[1]);
       delete packed[i];
@@ -1613,7 +1609,7 @@ void bowyerWatsonParallelograms(GFace *gf)
       buildMetric(gf, newPoint, metric);
       bool success = insertAPoint(gf, AllTris.begin(), newPoint, metric, Us, Vs, vSizes,
 				  vSizesBGM, vMetricsBGM, AllTris, 0, worst);
-      if (!success)printf("success %d %d\n",success,AllTris.size());
+      if (!success) printf("success %d %d\n", success, (int)AllTris.size());
       i++;
     }
   }