diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 11f90e472c50ec1546a1029bba8f7fe809258671..1e9e2b3095601ae2b144e98d8e91eef687ea25e7 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -537,10 +537,12 @@ int GModel::adaptMesh(int technique, simpleFunction<double> *f, std::vector<doub
 
       opt_mesh_algo2d(0, GMSH_SET, 7.0); //bamg
       opt_mesh_algo3d(0, GMSH_SET, 7.0); //mmg3d
+      opt_mesh_lc_from_points(0, GMSH_SET, 0.0); //do not mesh lines with lc
       GenerateMesh(this, getDim());
       nbElems = getNumMeshElements();
 
-      if (fields) fields->deleteField(1);
+      //if (fields) fields->deleteField(1);
+      fields->reset();
       if (++ITER >= niter)  break;
       if (ITER > 5 && fabs((double)(nbElems - nbElemsOld)) < 0.005 * nbElemsOld) break;
 	
@@ -555,6 +557,7 @@ int GModel::adaptMesh(int technique, simpleFunction<double> *f, std::vector<doub
       nbElemsOld = nbElems;
       
     }
+    fields->reset();
   }
 
   else{
diff --git a/Mesh/meshMetric.cpp b/Mesh/meshMetric.cpp
index bd70e2c80b2e74d9941c0cfad1d731de5abc740f..1a8f0825806bd47e947609665ee5ea5adc20aaf3 100644
--- a/Mesh/meshMetric.cpp
+++ b/Mesh/meshMetric.cpp
@@ -62,7 +62,7 @@ meshMetric::meshMetric(GModel *gm, int technique, simpleFunction<double> *fct, s
 
 }
 meshMetric::~meshMetric(){
-  if (_octree) delete _octree;
+  //if (_octree) delete _octree;
 }
 
 void meshMetric::computeValues( v2t_cont adj){