diff --git a/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp b/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp
index 53ced1d321922da4fc6860ba5279ca43fee75e65..f386ff6854c93b0f3e0657d92b063fae4ae2fc34 100644
--- a/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp
+++ b/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp
@@ -99,7 +99,7 @@ Mesh::Mesh(GEntity *ge, const std::set<MElement*> &els, std::set<MVertex*> &toFi
       _pc = new ParamCoordSurf(_ge);
       Msg::Debug("METHOD: Using surface parametric coordinates");
     }
-    Msg::Error("ERROR: Surface parametric coordinates only for 2D optimization");
+    else Msg::Error("ERROR: Surface parametric coordinates only for 2D optimization");
   }
   else {
     _pc = new ParamCoordParent;
diff --git a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
index 38df043683f3cc9417651798716edbdfd104ef33..38bbc7b922a45aae4d708886249ce80a46826c52 100644
--- a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
+++ b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
@@ -37,6 +37,8 @@ void OptHomMessage (const char *s, ...) {
       FlGui::instance()->highordertools->messages->show();
     }
   }
+  else 
+    fprintf(stdout,"%s\n",str);
 #else
   fprintf(stdout,"%s\n",str);
 #endif
@@ -386,6 +388,8 @@ void HighOrderMeshOptimizer (GModel *gm, OptHomParameters &p)
     method = Mesh::METHOD_PROJJAC;
   else if (p.method == 2)
     method = Mesh::METHOD_FIXBND | Mesh::METHOD_PHYSCOORD | Mesh::METHOD_PROJJAC;
+  else if(p.method < 0)
+    method = -p.method;
 
   //  printf("p.method = %d\n",p.method);
 
@@ -427,7 +431,7 @@ void HighOrderMeshOptimizer (GModel *gm, OptHomParameters &p)
           temp.getJacDist(minJac, maxJac, distMaxBND, distAvgBND);
           OptHomMessage("Optimizing a blob %i/%i composed of %4d elements  minJ %12.5E -- maxJ %12.5E", i+1, toOptimizeSplit.size(), toOptimizeSplit[i].size(), minJac, maxJac);
           p.SUCCESS = std::min(p.SUCCESS,temp.optimize(p.weightFixed, p.weightFree, p.BARRIER_MIN, p.BARRIER_MAX, samples, p.itMax));
-	  temp.mesh.updateGEntityPositions();
+          temp.mesh.updateGEntityPositions();
         }
       }
       else while (1){