diff --git a/Geo/MElementOctree.cpp b/Geo/MElementOctree.cpp
index b16d8aebbd4579abc33f9fc05825a1db06a262e2..5d71100df4e2c2372693ab4465372fa71738d9b7 100644
--- a/Geo/MElementOctree.cpp
+++ b/Geo/MElementOctree.cpp
@@ -70,7 +70,7 @@ Octree *buildMElementOctree(std::vector<MElement*> &v)
 {
   SBoundingBox3d bb;
   for (unsigned int i=0;i<v.size();i++){
-    for(unsigned int j=0;j<v[i]->getNumVertices();j++){
+    for(int j=0;j<v[i]->getNumVertices();j++){
       bb += SPoint3(v[i]->getVertex(j)->x(),
                     v[i]->getVertex(j)->y(),
                     v[i]->getVertex(j)->z());
diff --git a/Geo/MPrism.cpp b/Geo/MPrism.cpp
index 29de1872482827a7e120ed038081956818cfa0ae..36a2bf749ae12ba104ee664db35a1790f31dce07 100644
--- a/Geo/MPrism.cpp
+++ b/Geo/MPrism.cpp
@@ -56,7 +56,7 @@ const polynomialBasis* MPrism::getFunctionSpace(int o) const
 double MPrism::getInnerRadius()
 {
   double dist[3], k = 0.;
-  double triEdges[3] = {0,1,3};
+  int triEdges[3] = {0,1,3};
   for (int i = 0; i < 3; i++){
     MEdge e = getEdge(triEdges[i]);
     dist[i] = e.getVertex(0)->distance(e.getVertex(1));
diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp
index 07a866d73b57a979a58915e41074c30ac14ddb13..9deb77cb6bc77238fd811735a525e2a32737664c 100644
--- a/Mesh/BackgroundMesh.cpp
+++ b/Mesh/BackgroundMesh.cpp
@@ -300,7 +300,7 @@ backgroundMesh::backgroundMesh(GFace *_gf)
 backgroundMesh::~backgroundMesh()
 {
   for (unsigned int i = 0; i < _vertices.size(); i++) delete _vertices[i];
-  for (int i = 0; i < _triangles.size(); i++) delete _triangles[i];
+  for (unsigned int i = 0; i < _triangles.size(); i++) delete _triangles[i];
   delete _octree;
 }
 
@@ -501,7 +501,7 @@ void backgroundMesh::print (const std::string &filename, GFace *gf) const
 {
   FILE *f = fopen (filename.c_str(),"w");
   fprintf(f,"View \"Background Mesh\"{\n");
-  for(int i=0;i<_triangles.size();i++){
+  for(unsigned int i=0;i<_triangles.size();i++){
     MVertex *v1 = _triangles[i]->getVertex(0);
     MVertex *v2 = _triangles[i]->getVertex(1);
     MVertex *v3 = _triangles[i]->getVertex(2);
diff --git a/Mesh/qualityMeasures.cpp b/Mesh/qualityMeasures.cpp
index 54b150ecf14ecc813a703df959dc8cfdf6d5d7a7..f7559c0480c309c24011dff135a4c17eadc7ad92 100644
--- a/Mesh/qualityMeasures.cpp
+++ b/Mesh/qualityMeasures.cpp
@@ -398,7 +398,7 @@ double qmQuadrangleAngles (MQuadrangle *e) {
   rot[0][0]=-1; rot[0][1]=1; rot[0][2]=0;
   rot[1][0]=-1; rot[1][1]=0; rot[1][2]=0;
   rot[2][0]= 0; rot[2][1]=0; rot[2][2]=1;
-  double tmp[3][3];
+  //double tmp[3][3];
   
   const double u[9] = {-1,-1, 1, 1, 0,0,1,-1,0};
   const double v[9] = {-1, 1, 1,-1, -1,1,0,0,0};
diff --git a/Solver/function.cpp b/Solver/function.cpp
index 7771988a278ba1e9fbd47df0ae8ae874e1bc1ab0..2769248eea235d3feeb9f76477cac23dbd2f95b8 100644
--- a/Solver/function.cpp
+++ b/Solver/function.cpp
@@ -51,7 +51,7 @@ dataCacheDouble::dataCacheDouble(dataCacheMap *m, function *f):
   _function = f;
   _dependencies.resize ( _function->arguments.size());
   _depM.resize (_function->arguments.size());
-  for (int i=0;i<_function->arguments.size();i++)
+  for (unsigned int i=0;i<_function->arguments.size();i++)
     _dependencies[i] = &m[_function->arguments[i].first].get(_function->arguments[i].second,this);
 }
 
diff --git a/Solver/function.h b/Solver/function.h
index 1b9fadb8818429e83e61c010b0edd5c189526d83..54229be318bae278b4ed2e200ae5cd1ca0b3d18d 100644
--- a/Solver/function.h
+++ b/Solver/function.h
@@ -102,7 +102,7 @@ public :
   // still virtual because it is overrided by conservation law terms, as soon as conservation law terms will be regular functions, we will remove this
   virtual void _eval()
   {
-    for(int i=0;i<_dependencies.size(); i++)
+    for(unsigned int i=0;i<_dependencies.size(); i++)
       _depM[i] = &(*_dependencies[i])();
     _function->call(&_cacheMap, _value, _depM);
   }