diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index bdc5c5132e16a4f74b2dde6ae891676cc2072f64..d5a221c8bded06e48f71dad51392b01ed452a2f9 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -1508,6 +1508,7 @@ int MElement::OrderFromTag(int tag)
   case MSH_PRI_198 : return 7;
   case MSH_PRI_258 : return 8;
   case MSH_PRI_326 : return 9;
+  case MSH_HEX_1   : return 0;
   case MSH_HEX_8   : return 1;
   case MSH_HEX_27  : return 2;
   case MSH_HEX_64  : return 3;
diff --git a/Geo/MHexahedron.cpp b/Geo/MHexahedron.cpp
index b6dc0cedc3d76bfc0b92ae4607bd6b0dc47b4dcb..37158d41dacda09b9444f8518fea5ac2c229004c 100644
--- a/Geo/MHexahedron.cpp
+++ b/Geo/MHexahedron.cpp
@@ -213,6 +213,7 @@ const JacobianBasis* MHexahedron::getJacobianFuncSpace(int o) const
 
   if ((nv == 0) && (o == -1)) {
     switch (order) {
+    case 0: return JacobianBasis::find(MSH_HEX_1);
     case 1: return JacobianBasis::find(MSH_HEX_8);
     case 2: return JacobianBasis::find(MSH_HEX_20);
     case 3: return JacobianBasis::find(MSH_HEX_56);
@@ -227,6 +228,7 @@ const JacobianBasis* MHexahedron::getJacobianFuncSpace(int o) const
   }
   else {
     switch (order) {
+    case 0: return JacobianBasis::find(MSH_HEX_1);
     case 1: return JacobianBasis::find(MSH_HEX_8);
     case 2: return JacobianBasis::find(MSH_HEX_27);
     case 3: return JacobianBasis::find(MSH_HEX_64);
diff --git a/Numeric/nodalBasis.cpp b/Numeric/nodalBasis.cpp
index ada63ee20170611b20d7436f777ea512d14c4bd9..1065e813f2f1abfdc94f2155e0c03bcc12ce6547 100644
--- a/Numeric/nodalBasis.cpp
+++ b/Numeric/nodalBasis.cpp
@@ -1463,6 +1463,7 @@ nodalBasis::nodalBasis(int tag)
   case MSH_PRI_198 : parentType = TYPE_PRI; order = 7; serendip = true; break;
   case MSH_PRI_258 : parentType = TYPE_PRI; order = 8; serendip = true; break;
   case MSH_PRI_326 : parentType = TYPE_PRI; order = 9; serendip = true; break;
+  case MSH_HEX_1   : parentType = TYPE_HEX; order = 0; serendip = false; break;
   case MSH_HEX_8   : parentType = TYPE_HEX; order = 1; serendip = false; break;
   case MSH_HEX_27  : parentType = TYPE_HEX; order = 2; serendip = false; break;
   case MSH_HEX_64  : parentType = TYPE_HEX; order = 3; serendip = false; break;
diff --git a/Numeric/nodalBasis.h b/Numeric/nodalBasis.h
index 4584bba32e9d8f7565361f0fabd249b974635898..19b45a7ad8145d92081d6654120e55c08519d968 100644
--- a/Numeric/nodalBasis.h
+++ b/Numeric/nodalBasis.h
@@ -150,6 +150,7 @@ inline int nodalBasis::getTag(int parentTag, int order, bool serendip)
     break;
   case TYPE_HEX :
     switch(order) {
+    case 0 : return MSH_HEX_1;
     case 1 : return MSH_HEX_8;
     case 2 : return serendip ? MSH_HEX_20 : MSH_HEX_27;
     case 3 : return serendip ? MSH_HEX_56 : MSH_HEX_64;