diff --git a/Geo/MTriangle.cpp b/Geo/MTriangle.cpp
index e7530ab2cd35a056df98377bdf5ae722f4bb899e..a15d74f8ef7611f7f4b96ca7b9193aabe09ccc66 100644
--- a/Geo/MTriangle.cpp
+++ b/Geo/MTriangle.cpp
@@ -99,14 +99,22 @@ double MTriangle::gammaShapeMeasure()
    const double d2[3] = {_v[2]->x() - O[0], _v[2]->y() - O[1], _v[2]->z() - O[2]};
    const double Jxy = d1[0] * d2[1] - d1[1] * d2[0];
    const double Jxz = d1[0] * d2[2] - d1[2] * d2[0];
-   if (fabs(Jxy) > fabs(Jxz)) {
+   const double Jyz = d1[1] * d2[2] - d1[2] * d2[1];
+   if ((fabs(Jxy) > fabs(Jxz)) && (fabs(Jxy) > fabs(Jyz)))
+   {
      uvw[0] = (d[0] * d2[1] - d[1] * d2[0]) / Jxy;
      uvw[1] = (d[1] * d1[0] - d[0] * d1[1]) / Jxy;
    } 
-   else {
+   else if (fabs(Jxz) > fabs(Jyz))
+   {
      uvw[0] = (d[0] * d2[2] - d[2] * d2[0]) / Jxz;
      uvw[1] = (d[2] * d1[0] - d[0] * d1[2]) / Jxz;
    }
+   else
+   {
+     uvw[0] = (d[1] * d2[2] - d[2] * d2[1]) / Jyz;
+     uvw[1] = (d[2] * d1[1] - d[1] * d1[2]) / Jyz;
+   }
    uvw[2] = 0.;
 }