diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp
index 5eaace718e77dd314cf83f858686fe5a9c504306..4860ab90b5ef7fc7d1a58cf831369cc8438815de 100644
--- a/Post/PViewDataGModel.cpp
+++ b/Post/PViewDataGModel.cpp
@@ -144,12 +144,18 @@ bool PViewDataGModel::finalize(bool computeMinMax, const std::string &interpolat
           // the mesh is curved
           MElement *e = _getOneElementOfGivenType(model, it->first);
           if(e && e->getPolynomialOrder() > 1 && e->getFunctionSpace()){
-            const polynomialBasis *fs = (polynomialBasis*) e->getFunctionSpace();
-            setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]),
+            if (it->first == TYPE_PYR) { // KH 18/9/2014 very nasty fix since pyramids /= polynomial
+              const pyramidalBasis  *fs = (pyramidalBasis*) e->getFunctionSpace();
+              setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]),
                                      fs->coefficients, fs->monomials);
+            }
+            else {
+              const polynomialBasis *fs = (polynomialBasis*) e->getFunctionSpace();
+              setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]),
+                                       fs->coefficients, fs->monomials);
+            }
           }
-          else
-            setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]));
+          else setInterpolationMatrices(it->first, *(it->second[0]), *(it->second[1]));
         }
         else if(it->second.size() == 4){
           // use provided matrices for field and geometry