diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index e1e33cdfe6bb16e700cc0bace0d37b0ba8bd712a..616201188abb6348483749535a31e8b1cc7ed2f0 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -578,16 +578,18 @@ static void Mesh3D(GModel *m)
   std::vector<std::vector<GRegion*> > connected;
   FindConnectedRegions(delaunay, connected);
 
-  /*
+  // remove quads elements for volumes that are recombined
   for(unsigned int i = 0; i < connected.size(); i++){
     for(unsigned j=0;j<connected[i].size();j++){
       GRegion *gr = connected[i][j];
-      std::list<GFace*> f = gr->faces();
-      for (std::list<GFace*>::iterator it = f.begin();
-	   it != f.end() ; ++it) quadsToTriangles (*it,1000000);
+      if(CTX::instance()->mesh.recombine3DAll || gr->meshAttributes.recombine3D){
+	std::list<GFace*> f = gr->faces();
+	for (std::list<GFace*>::iterator it = f.begin();
+	     it != f.end() ; ++it) quadsToTriangles (*it,1000000);
+      }
     }
   }
-  */
+  
   for(unsigned int i = 0; i < connected.size(); i++){    
     MeshDelaunayVolume(connected[i]);
 
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index 4f8e82092c1ec5204e66719241b3d5de7596b8e6..e06b660df5518a9644602f4465d214165f4a184b 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1885,7 +1885,7 @@ void deMeshGFace::operator() (GFace *gf)
 }
 
 // for debugging, change value from -1 to -100;
-int debugSurface = -100; //-1;
+int debugSurface = -1; //-1;
 
 void meshGFace::operator() (GFace *gf, bool print)
 {
diff --git a/benchmarks/hex/twoHoles.geo b/benchmarks/hex/twoHoles.geo
index f98e2ee4249125b27da4a8c284109ad88ffbf605..a30c0806b599a5cae58f3109b8990d76a69bee38 100644
--- a/benchmarks/hex/twoHoles.geo
+++ b/benchmarks/hex/twoHoles.geo
@@ -3,6 +3,8 @@
 Mesh.Algorithm = 9; //8 = delquad or 9= 2D R-tree
 Mesh.Algorithm3D = 9; // 3D R-tree
 Mesh.Recombine3DAll = 1; 
+Mesh.RecombineAll = 1; 
+//Mesh.RecombinationAlgorithm = 2;
 Mesh.Smoothing = 0;
 
 lc = 1;