diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index 0ca129f65bab80b86dd5548e8361424c263aeaf8..0f28352192c71ea70ea267f9fef8a628fd4c39de 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -78,6 +78,7 @@ MElement *const *GFace::getStartElementType(int type) const
   case 1:
     return reinterpret_cast<MElement *const *>(&quadrangles[0]);
   }
+  return 0;
 }
 
 MElement *GFace::getMeshElement(unsigned int index)
diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp
index cfe39c7161b70ea2d96de56c9f0124a05ca6443b..b4d6dd4061f2446b9ca8e3e9988c6764c61b21ac 100644
--- a/Geo/GRegion.cpp
+++ b/Geo/GRegion.cpp
@@ -68,6 +68,7 @@ MElement *const *GRegion::getStartElementType(int type) const
   case 3:
     return reinterpret_cast<MElement *const *>(&pyramids[0]);
   }
+  return 0;
 }
 
 MElement *GRegion::getMeshElement(unsigned int index)
diff --git a/Geo/MElement.h b/Geo/MElement.h
index 63cf9e5eda31a63b3ec686ff0b84c69259f1d782..4ddd476894bcbe0cb4cc907fc474c9d41b28e427 100644
--- a/Geo/MElement.h
+++ b/Geo/MElement.h
@@ -455,9 +455,10 @@ class MLineN : public MLine {
   {
     v.resize(2 + _vs.size());
     MLine::_getEdgeVertices(v);
-    for(int i = 0; i != _vs.size(); ++i) v[i+2] = _vs[i];
+    for(unsigned int i = 0; i != _vs.size(); ++i) v[i+2] = _vs[i];
   }
-  virtual int getTypeForMSH(){ 
+  virtual int getTypeForMSH()
+  { 
     if(_vs.size() == 2) return MSH_LIN_4; 
     if(_vs.size() == 3) return MSH_LIN_5; 
     if(_vs.size() == 4) return MSH_LIN_6; 
@@ -776,7 +777,7 @@ class MTriangleN : public MTriangle {
     v.resize(2 + getNumEdgeVertices());
     MTriangle::_getEdgeVertices(num, v);
     int j = 2;
-    const int ie = (num+1)*getNumEdgeVertices();
+    const int ie = (num + 1) * getNumEdgeVertices();
     for(int i = num*getNumEdgeVertices(); i != ie; ++i) v[j++] = _vs[i];
   }
   virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n);
@@ -784,7 +785,7 @@ class MTriangleN : public MTriangle {
   {
     v.resize(3 + _vs.size());
     MTriangle::_getFaceVertices(v);
-    for(int i = 0; i != _vs.size(); ++i) v[i+3] = _vs[i];
+    for(unsigned int i = 0; i != _vs.size(); ++i) v[i + 3] = _vs[i];
   }
   virtual int getTypeForMSH()
   {
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index c6f57cc143c8754fd24621474384b208144adc68..4c95465005b2cb6c061ed61884ff47c539bb9a74 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -65,7 +65,7 @@ static void buildInterpLc(const std::vector<IntPoint> &lcPoints)
 {
   IntPoint p;
   interpLc.clear();
-  for(int i = 0; i < lcPoints.size(); i++){
+  for(unsigned int i = 0; i < lcPoints.size(); i++){
     p = lcPoints[i];
     interpLc.push_back(xi2lc(p.t, p.lc));
   }
diff --git a/Mesh/meshGFaceQuadrilateralize.cpp b/Mesh/meshGFaceQuadrilateralize.cpp
index 1f84aad9a58234edd5880b8bb5fc977763def6a5..c4920b4ff0696d27e91af74bf34c7fb888f04ec7 100644
--- a/Mesh/meshGFaceQuadrilateralize.cpp
+++ b/Mesh/meshGFaceQuadrilateralize.cpp
@@ -350,13 +350,13 @@ bool gmshEdgeFront::formQuad (BDS_Edge *e,
   toUpdate.push_back(pleft);
   toUpdate.push_back(pright);
 
-  for (int i=0;i<toUpdate.size();i++){
+  for (unsigned int i=0;i<toUpdate.size();i++){
     toUpdate[i]->config_modified = true;
     bool done = m->smooth_point_parametric(toUpdate[i], gf);
     //    printf("smooth done %d (g %d)\n",done,toUpdate[i]->g->classif_degree);
   }
 
-  for (int i=0;i<toUpdate.size();i++){
+  for (unsigned int i=0;i<toUpdate.size();i++){
     BDS_Point *p = toUpdate[i];
     for (std::list<BDS_Edge*>::iterator itp = p->edges.begin(); itp != p->edges.end() ; ++ itp){
       if (inFront(*itp)){
@@ -538,8 +538,8 @@ static int numQuads ( BDS_Mesh *m)
   return N;
 }
 
-int gmshQMorph (GFace *gf) {
-
+int gmshQMorph (GFace *gf)
+{
   // assert first that there exist a triangulation of
   // the face  
   if (!gf->triangles.size()){
@@ -586,6 +586,6 @@ int gmshQMorph (GFace *gf) {
   }
   // delete the BDS
   delete pm;
-
+  return 1;
 }