diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index 9c7e895000ad278ebed4e3e3b537a096fd45f553..12b8bbd45391b694f0bfae9f7268a5851908f417 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -235,10 +235,19 @@ double MElement::maxDistToStraight() const
   return maxdx;
 }
 
-double MElement::minAnisotropyMeasure(bool knownValid)
+double MElement::minAnisotropyMeasure(bool knownValid, bool reversedOK)
 {
 #if defined(HAVE_MESH)
-  return jacobianBasedQuality::minAnisotropyMeasure(this, knownValid);
+  return jacobianBasedQuality::minAnisotropyMeasure(this, knownValid, reversedOK);
+#else
+  return 0.;
+#endif
+}
+
+double MElement::minScaledJacobian(bool knownValid, bool reversedOK)
+{
+#if defined(HAVE_MESH)
+  return jacobianBasedQuality::minScaledJacobian(this, knownValid, reversedOK);
 #else
   return 0.;
 #endif
@@ -249,10 +258,10 @@ double MElement::specialQuality()
 #if defined(HAVE_MESH)
   double minJ, maxJ;
   jacobianBasedQuality::minMaxJacobianDeterminant(this, minJ, maxJ);
-  if (minJ == 0.) return 0;
-  if (minJ < 0 && maxJ >= 0) return minJ/maxJ; // accept -inf as an answer
-  if (minJ < 0 && maxJ < 0) return -std::numeric_limits<double>::infinity();
-  return jacobianBasedQuality::minAnisotropyMeasure(this, true);
+  if (minJ <= 0.) return minJ;
+//  if (minJ < 0 && maxJ >= 0) return minJ/maxJ; // accept -inf as an answer
+//  if (minJ < 0 && maxJ < 0) return -std::numeric_limits<double>::infinity();
+  return jacobianBasedQuality::minIsotropyMeasure(this, true);
 #else
   return 0;
 #endif
@@ -263,9 +272,9 @@ double MElement::specialQuality2()
 #if defined(HAVE_MESH)
   double minJ, maxJ;
   jacobianBasedQuality::minMaxJacobianDeterminant(this, minJ, maxJ);
-  if (minJ == 0.) return 0;
-  if (minJ < 0 && maxJ >= 0) return minJ/maxJ; // accept -inf as an answer
-  if (minJ < 0 && maxJ < 0) return -std::numeric_limits<double>::infinity();
+  if (minJ <= 0.) return minJ;
+//  if (minJ < 0 && maxJ >= 0) return minJ/maxJ; // accept -inf as an answer
+//  if (minJ < 0 && maxJ < 0) return -std::numeric_limits<double>::infinity();
   return jacobianBasedQuality::minScaledJacobian(this, true);
 #else
   return 0;
diff --git a/Geo/MElement.h b/Geo/MElement.h
index 6ce208d477079ecfe45a36c7976c3fde85af27a0..cdf005092a8bade5fe920baef841b90fd308b672 100644
--- a/Geo/MElement.h
+++ b/Geo/MElement.h
@@ -216,7 +216,8 @@ class MElement
     signedInvCondNumRange(sICNMin, sICNMax);
     return sICNMin;
   }
-  double minAnisotropyMeasure(bool knownValid = false);
+  double minAnisotropyMeasure(bool knownValid = false, bool reversedOk = false);
+  double minScaledJacobian(bool knownValid = false, bool reversedOk = false);
   double specialQuality();
   double specialQuality2();
   virtual double angleShapeMeasure() { return 1.0; }