diff --git a/Mesh/HighOrder.cpp b/Mesh/HighOrder.cpp
index e03cc759a8b8af6a8adb1470488edbb46b2bf064..6c8b2a09188b2332e71a5351f8d0b8b1e0392beb 100644
--- a/Mesh/HighOrder.cpp
+++ b/Mesh/HighOrder.cpp
@@ -1382,9 +1382,11 @@ void SetOrderN(GModel *m, int order, bool linear, bool incomplete)
   
   double t2 = Cpu();
 
-  highOrderTools hot (m);
-  hot.ensureMinimumDistorsion(0.1);
-  checkHighOrderTriangles("final mesh", m, bad, worst);
+  if (!linear){
+    highOrderTools hot (m);
+    hot.ensureMinimumDistorsion(0.1);
+    checkHighOrderTriangles("final mesh", m, bad, worst);
+  }
 
   Msg::StatusBar(2, true, "Done meshing order %d (%g s)", order, t2 - t1);
 }