diff --git a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
index 51a05488bdd52b8034ac437e7040c75a1c04ce06..87844e29c5fa959e16ccd47136b96e816c55bd95 100644
--- a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
+++ b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
@@ -799,6 +799,8 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p)
   par.patchDef = &patchDef;
   par.displayInterv = 30;
   par.verbose = 4;
+  par.logFileName = "";
+  par.nCurses = false;
 
   ObjContribScaledNodeDispSq<ObjContribFuncSimple> nodeDistFunc(p.weight,
                                                                 Patch::LS_MAXNODEDIST);
diff --git a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
index faf6a8452b5e21bdb1c9f625b390fcbde2ef4935..5ea5c00a9256b63521303d79bc0e45419cd6cbcd 100644
--- a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
+++ b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
@@ -132,7 +132,10 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p)
   par.patchDef = &patchDef;
   par.displayInterv = 20;
   par.verbose = 4;
+  par.nCurses = p.nCurses;
+  par.logFileName = p.logFileName;
 
+  
   ObjContribScaledNodeDispSq<ObjContribFuncSimple> nodeDistFunc(p.weight,
                                                                 Patch::LS_MINEDGELENGTH);
   ObjContribIdealJac<ObjContribFuncBarrierMovMin> minIdealJacBarFunc(1.);
diff --git a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h
index 006159c25db96cba59b9a974b130f5f7ca76b043..3959e04834c038376089dbeb5d1f3c606491603c 100644
--- a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h
+++ b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h
@@ -49,6 +49,8 @@ struct MeshQualOptParameters {
   int maxPatchAdapt;                                                  // Max. nb. of patch adaptation iterations (if adaptive)
   int maxLayersAdaptFact;                                             // Growth factor in number of layers for patch adaptation (if adaptive)
   double distanceAdaptFact;                                           // Growth factor in distance factor for patch adaptation (if adaptive)
+  int nCurses;                                                        // Enhanced text output
+  std::string logFileName;                                            // External log file
 
   int SUCCESS ; // 0 --> success , 1 --> Not converged
   double minIdealJac, maxIdealJac; // after optimization, range of jacobians
@@ -61,7 +63,7 @@ struct MeshQualOptParameters {
       minTargetIdealJac(0.1), minTargetInvCondNum(0.1), weight(1.),
       nbLayers (6) , dim(3) , maxOptIter(300), maxBarrierUpdates(50),
       onlyVisible(true), distanceFactor(12), fixBndNodes(false), strategy(0),
-      maxPatchAdapt(3), maxLayersAdaptFact(2), distanceAdaptFact(2.), CPU(0.),
+    maxPatchAdapt(3), maxLayersAdaptFact(2), distanceAdaptFact(2.), nCurses(1), logFileName(""), CPU(0.),
       minIdealJac(0.), maxIdealJac(0.), minInvCondNum(0.), maxInvCondNum(0.),
       SUCCESS(-1)
   {