diff --git a/Numeric/nodalBasis.cpp b/Numeric/nodalBasis.cpp
index 827109bfce4324e63a855cc3a1269845fd1a137f..70cf2f0071984367abe19ef0bc105d48976c1b99 100644
--- a/Numeric/nodalBasis.cpp
+++ b/Numeric/nodalBasis.cpp
@@ -699,8 +699,8 @@ namespace ClosureGen {
       }
     }
     else {
-      Msg::Error("FaceClosureFull not implemented for prisms of order %d",
-                 order);
+      Msg::Warning("FaceClosureFull not implemented for prisms of order %d",
+                   order);
     }
   }
 
@@ -746,6 +746,13 @@ namespace ClosureGen {
     }
   }
 
+  void generateFaceClosurePyrFull(nodalBasis::clCont &closureFull,
+                                  std::vector<int> &closureRef, int order)
+  {
+    Msg::Warning("FaceClosureFull not implemented for pyramids of order %d",
+                 order);
+  }
+
   void generate2dEdgeClosure(nodalBasis::clCont &closure, int order,
                              int nNod = 3)
   {
@@ -859,6 +866,7 @@ nodalBasis::nodalBasis(int tag)
     numFaces = 5;
     points = gmshGeneratePointsPyramid(order, serendip);
     generateFaceClosurePyr(closures, order, serendip, points);
+    generateFaceClosurePyrFull(fullClosures, closureRef, order);
     break;
   }
 }
@@ -942,3 +950,17 @@ bool nodalBasis::forwardRenumbering(const fullMatrix<double> &nodes, int *renum,
 
   return renum;
 }
+
+inline int nodalBasis::getClosureId(int iFace, int iSign, int iRot) const
+{
+  return iFace + numFaces * (iSign == 1 ? 0 : 1) + 2 * numFaces * iRot;
+}
+
+inline void nodalBasis::breakClosureId(int i, int &iFace, int &iSign,
+                                       int &iRot) const
+{
+  iFace = i % numFaces;
+  i = (i - iFace) / numFaces;
+  iSign = i % 2;
+  iRot = (i - iSign) / 2;
+}
diff --git a/Numeric/nodalBasis.h b/Numeric/nodalBasis.h
index c4b1838aea62978b116e02132ba99886d02bbbbd..5ae73edc7ca40ccb07bf2601c46970a971dbc9cd 100644
--- a/Numeric/nodalBasis.h
+++ b/Numeric/nodalBasis.h
@@ -81,18 +81,4 @@ public:
   inline void breakClosureId(int i, int &iFace, int &iSign, int &iRot) const;
 };
 
-inline int nodalBasis::getClosureId(int iFace, int iSign, int iRot) const
-{
-  return iFace + numFaces * (iSign == 1 ? 0 : 1) + 2 * numFaces * iRot;
-}
-
-inline void nodalBasis::breakClosureId(int i, int &iFace, int &iSign,
-                                       int &iRot) const
-{
-  iFace = i % numFaces;
-  i = (i - iFace) / numFaces;
-  iSign = i % 2;
-  iRot = (i - iSign) / 2;
-}
-
 #endif