diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp
index 80ed8ab29f502cd7b8b8efc2f3e2e0d6dc195de7..6d51dccccd6a44b05b41e4c4ad4327fb1d0eb9a6 100644
--- a/Geo/GFaceCompound.cpp
+++ b/Geo/GFaceCompound.cpp
@@ -180,7 +180,7 @@ static void computeCGKernelPolygon(std::map<MVertex*,SPoint3> &coordinates, std:
             c=(y4-y3)/(x4-x3);
             b=y1-a*x1;
             d=y3-c*x3;
-            if (std::abs(a-c) > 1.e-5 && x2!=x1 && x4 !=x3 && jnext != i){
+            if (fabs(a-c) > 1.e-5 && x2!=x1 && x4 !=x3 && jnext != i){
                 x=(d-b)/(a-c);
                 y=a*x+b;
                 bool exist= false;
diff --git a/Numeric/gmshLinearSystemCSR.h b/Numeric/gmshLinearSystemCSR.h
index 3bd449c8e530d8a4134dd10e17b561530ede63db..8bf38ed74d3acfb4fefaef236db7df75b747dece 100644
--- a/Numeric/gmshLinearSystemCSR.h
+++ b/Numeric/gmshLinearSystemCSR.h
@@ -149,6 +149,7 @@ class gmshLinearSystemCSRGmm : public gmshLinearSystemCSR<scalar> {
 #else
   {
     Msg::Error("Gmm++ is not available in this version of Gmsh");
+    return 0;
   }
 #endif
 
diff --git a/Numeric/gmshLinearSystemFull.h b/Numeric/gmshLinearSystemFull.h
index 0cdb0c59f3a0c9a79bf95b66ed2188ce2735073c..399739d14d4d0143439801712f8c668a0564fe01 100644
--- a/Numeric/gmshLinearSystemFull.h
+++ b/Numeric/gmshLinearSystemFull.h
@@ -90,18 +90,18 @@ class gmshLinearSystemFull : public gmshLinearSystem<scalar> {
 	  Ni.insert(j);
 	}
       }
-      if (std::abs(offDiag+diag) > 1.e-10 && std::abs(offDiag) > 1.e-10 ) convex= false;
+      if (fabs(offDiag+diag) > 1.e-10 && fabs(offDiag) > 1.e-10 ) convex= false;
      
       if (convex == false){
 	nbNonConvex+=1;
 	printf("*** WARNING NON CONVEX LINE !!!!!\n");
-	printf("*** i=%d : diag=%g offDiag=%g diff=%g convex=%s size Ni=%d\n", i , diag, offDiag,std::abs(offDiag+diag), (convex)?"true":"false", Ni.size());
+	printf("*** i=%d : diag=%g offDiag=%g diff=%g convex=%s size Ni=%d\n", i , diag, offDiag, fabs(offDiag+diag), (convex)?"true":"false", Ni.size());
 	for (std::set<int>::iterator it = Ni.begin(); it != Ni.end(); ++it)   (*_a)(i, *it) = -1.0;
 	(*_a)(i, i) = Ni.size();
       }
     }
 
-    printf("nonConvex=%d total=%d ratio=%g\n ",nbNonConvex, _b->size(), nbNonConvex/_b->size());
+    printf("nonConvex=%d total=%d ratio=%g\n ",nbNonConvex, _b->size(), nbNonConvex/(double)_b->size());
     //_a->print("myMatrix AFTER !!! ");
 
     return 1;