diff --git a/Solver/multiscaleLaplace.cpp b/Solver/multiscaleLaplace.cpp
index 6e0e82342c1af7e57b6999431973a91d17f6751f..ece987d20fa267522602cf01c776fcb8afb79517 100644
--- a/Solver/multiscaleLaplace.cpp
+++ b/Solver/multiscaleLaplace.cpp
@@ -788,9 +788,15 @@ multiscaleLaplace::multiscaleLaplace (std::vector<MElement *> &elements,
   recur_compute_centers_ (1.0, M_PI, 0.0, root, nbElems);
 
   //Split the mesh in left and right
-  //or Cut the mesh in left and right
-  splitElems(elements);
-  //cutElems(elements);
+  //or Cut the mesh in left and right (of bamg)
+  if ( CTX::instance()->mesh.algo2d ==  ALGO_2D_BAMG){ 
+    printf("-------------> EXACT CUTTING \n");
+    cutElems(elements);
+  } 
+  else {
+    splitElems(elements);
+  }
+ 
 }
 
 void multiscaleLaplace::fillCoordinates (multiscaleLaplaceLevel & level,