diff --git a/Geo/MHexahedron.h b/Geo/MHexahedron.h
index ba94f9d3f9847ae6c42708e3f0b1e75f6272b6eb..8ea389e1919061586579efdeee1b9a4466894036 100644
--- a/Geo/MHexahedron.h
+++ b/Geo/MHexahedron.h
@@ -567,6 +567,9 @@ class MHexahedronN : public MHexahedron {
   virtual int getTypeForMSH() const
   {
     // (p+1)^3
+    if(_order == 1 && _vs.size() + 8 == 8)   return MSH_HEX_8;
+    if(_order == 2 && _vs.size() + 8 == 20)  return MSH_HEX_20;
+    if(_order == 2 && _vs.size() + 8 == 27)  return MSH_HEX_27;
     if(_order == 3 && _vs.size() + 8 == 64 ) return MSH_HEX_64;
     if(_order == 4 && _vs.size() + 8 == 125) return MSH_HEX_125;
     if(_order == 5 && _vs.size() + 8 == 216) return MSH_HEX_216;
diff --git a/Geo/MQuadrangle.h b/Geo/MQuadrangle.h
index 6959a9c656d1a17a656d33d5510ca0645a845ba0..c1b08a9fa64a910538928904ba00b073bb3d4214 100644
--- a/Geo/MQuadrangle.h
+++ b/Geo/MQuadrangle.h
@@ -385,6 +385,7 @@ class MQuadrangleN : public MQuadrangle {
   }
   virtual int getTypeForMSH() const
   {
+    if(_order==1 && _vs.size() + 4 == 4) return MSH_QUA_4;
     if(_order==2 && _vs.size() + 4 == 8) return MSH_QUA_8;
     if(_order==2 && _vs.size() + 4 == 9) return MSH_QUA_9;
     if(_order==3 && _vs.size() + 4 == 12) return MSH_QUA_12;
diff --git a/Geo/MTetrahedron.h b/Geo/MTetrahedron.h
index 747349fc5251fa009935b2c10604547b4efd123b..28ff1cd892fcf2e9fac3f5e51741f354259aebe6 100644
--- a/Geo/MTetrahedron.h
+++ b/Geo/MTetrahedron.h
@@ -367,6 +367,8 @@ class MTetrahedronN : public MTetrahedron {
   virtual int getTypeForMSH() const
   {
     // (p+1)*(p+2)*(p+3)/6
+    if(_order == 1 && _vs.size() + 4 == 4)  return MSH_TET_4;
+    if(_order == 2 && _vs.size() + 4 == 10) return MSH_TET_10;
     if(_order == 3 && _vs.size() + 4 == 20) return MSH_TET_20;
     if(_order == 4 && _vs.size() + 4 == 34) return MSH_TET_34;
     if(_order == 4 && _vs.size() + 4 == 35) return MSH_TET_35;
diff --git a/Geo/MTriangle.h b/Geo/MTriangle.h
index ac0c5195808fe09b1d5ee28fe983c97a7bd382e1..19a1130743e0cad4b28ec7f0e30767857bfbcac4 100644
--- a/Geo/MTriangle.h
+++ b/Geo/MTriangle.h
@@ -310,6 +310,7 @@ class MTriangleN : public MTriangle {
   }
   virtual int getTypeForMSH() const
   {
+    if(_order == 1 && _vs.size() == 0) return MSH_TRI_3;
     if(_order == 2 && _vs.size() == 3) return MSH_TRI_6;
     if(_order == 3 && _vs.size() == 6) return MSH_TRI_9;
     if(_order == 3 && _vs.size() == 7) return MSH_TRI_10;