diff --git a/NumLib/Fem/CoordinatesMapping/NaturalCoordinatesMapping-impl.h b/NumLib/Fem/CoordinatesMapping/NaturalCoordinatesMapping-impl.h
index 594c6ae9a37213b43e4db5f7ae54c3d5c181d2b9..308c4bc002b376bccfca52284b6467940c2d9e67 100644
--- a/NumLib/Fem/CoordinatesMapping/NaturalCoordinatesMapping-impl.h
+++ b/NumLib/Fem/CoordinatesMapping/NaturalCoordinatesMapping-impl.h
@@ -116,7 +116,7 @@ inline void computeMappingMatrices(
         const unsigned ele_dim(shapemat.dNdr.rows());
         assert(shapemat.dNdr.rows()==ele.getDimension());
         const unsigned global_dim(ele_local_coord.getGlobalCoordinateSystem().getDimension());
-        if (ele_local_coord.getGlobalCoordinateSystem().getDimension()==ele.getDimension()) {
+        if (global_dim==ele_dim) {
             shapemat.dNdx.topLeftCorner(ele_dim, nnodes) = shapemat.invJ * shapemat.dNdr;
         } else {
             auto const& matR = ele_local_coord.getRotationMatrixToGlobal(); // 3 x 3