diff --git a/Fltk/solverWindow.cpp b/Fltk/solverWindow.cpp
index e919f787cee8b20176cac7c395701e288b6136d0..22a79d7cbf1cd3fee8e91cf7d31c44f355a204a1 100644
--- a/Fltk/solverWindow.cpp
+++ b/Fltk/solverWindow.cpp
@@ -399,7 +399,7 @@ static void solver_command_cb(Fl_Widget *w, void *data)
     optionIndex += numPercentS(ConnectionManager::get(num)->buttonSwitch[i]);
 
   int optionChoice = 0;
-  if(optionIndex >= 0 && optionIndex < FlGui::instance()->solver[num]->choice.size())
+  if(optionIndex >= 0 && optionIndex < (int)FlGui::instance()->solver[num]->choice.size())
     optionChoice = FlGui::instance()->solver[num]->choice[optionIndex]->value();
 
   ConnectionManager::get(num)->runCommand(idx, optionIndex, optionChoice);
diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index 46c21a244fb48cdc82614050a0c5cdfef761e9a3..fc8400c91ee46959532708463aa390409726c85b 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -936,6 +936,7 @@ bool GFace::fillVertexArray(bool force)
     va_geom_triangles->add(x, y, z, n, col);
   }
   va_geom_triangles->finalize();
+  return true;
 }
 
 // by default we assume that straight lines are geodesics
diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 545b24549e8f32df10e0209187e43493a708f5dc..f15e7842acefc47bb335b9c5e5cd5db20d88be6a 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -1104,7 +1104,7 @@ void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces)
     for (std::vector<discreteEdge*>::iterator itE = discEdges.begin(); itE != discEdges.end(); itE++){
 
       bool candidate = true;
-      for (int i=0; i < (*itE)->getNumMeshElements(); i++){
+      for (unsigned int i = 0; i < (*itE)->getNumMeshElements(); i++){
 	MEdge me = (*itE)->getMeshElement(i)->getEdge(0);
 	if (std::find(myEdges.begin(), myEdges.end(), me) ==  myEdges.end()){
 	  candidate = false;
@@ -1117,7 +1117,7 @@ void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces)
 	std::vector<int> tagEdges;
 	tagEdges.push_back((*itE)->tag());
 	//printf("push back edge %d\n", (*itE)->tag());
-	for (int i=0; i < (*itE)->getNumMeshElements(); i++){
+	for (unsigned int i = 0; i < (*itE)->getNumMeshElements(); i++){
 	  MEdge me = (*itE)->getMeshElement(i)->getEdge(0);
 	  std::vector<MEdge>::iterator itME = std::find(myEdges.begin(), myEdges.end(), me);
 	  myEdges.erase(itME);
diff --git a/Geo/GeomMeshMatcher.cpp b/Geo/GeomMeshMatcher.cpp
index 1ffbce151d2658d02230144a9568f0e784636bf5..21382cb11bf1a627db60c54db13656a809722dba 100644
--- a/Geo/GeomMeshMatcher.cpp
+++ b/Geo/GeomMeshMatcher.cpp
@@ -230,7 +230,7 @@ GeomMeshMatcher::matchEdges(GModel* m1, GModel* m2,
       }
 
 
-      for (int i = 0; i < choice->getNumMeshElements(); i++) {
+      for (unsigned int i = 0; i < choice->getNumMeshElements(); i++) {
         for (int j = 0; j < choice->getMeshElement(i)->getNumVertices(); j++) {
 	  MVertex* v = choice->getMeshElement(i)->getVertex(j);
           double param = ((GEdge*) *entity1)->parFromPoint(v->point());
@@ -315,7 +315,7 @@ GeomMeshMatcher:: matchFaces(GModel* m1, GModel* m2,
     choice->setTag(((GFace*) *entity1)->tag());
     num_matched_faces++;
     
-    for (int i = 0; i < choice->getNumMeshElements(); i++) {
+    for (unsigned int i = 0; i < choice->getNumMeshElements(); i++) {
       MVertex* v1 = choice->getMeshElement(i)->getVertex(0);
       MVertex* v2 = choice->getMeshElement(i)->getVertex(1);
       SPoint2 param1 = ((GFace*) *entity1)->parFromPoint(v1->point());
diff --git a/Graphics/gl2ps.cpp b/Graphics/gl2ps.cpp
index cb66c91b1127d4a5dd4fe139af4d7ce829365138..8d3554d8b70ffef74122be9258172915eab53281 100644
--- a/Graphics/gl2ps.cpp
+++ b/Graphics/gl2ps.cpp
@@ -3403,7 +3403,7 @@ static void gl2psPutPDFText(GL2PSstring *text, int cnt, GLfloat x, GLfloat y)
        cnt, text->fontsize, x, y, text->str);
   }
   else{
-    rad = M_PI * text->angle / 180.0F;
+    rad = (GLfloat)M_PI * text->angle / 180.0F;
     srad = (GLfloat)sin(rad);
     crad = (GLfloat)cos(rad);
     gl2ps->streamlength += gl2psPrintf
diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp
index bcff7a120fcc4d73c62dc95a7baa569cf5cc2668..3f110c426f955324b1557134b23fcde4a789d1a8 100644
--- a/Numeric/Numeric.cpp
+++ b/Numeric/Numeric.cpp
@@ -640,8 +640,8 @@ void gmshLineSearch(double (*func)(fullVector<double> &, void *), void* data,
   }
 }
 
-double minimize_grad_fd (double (*func)(fullVector<double> &, void *),
-                       fullVector<double> &x, void *data)
+double minimize_grad_fd(double (*func)(fullVector<double> &, void *),
+                        fullVector<double> &x, void *data)
 {
   const int MAXIT = 3;
   const double EPS = 1.e-4;
@@ -708,69 +708,69 @@ distance to segment
 
 */
 
-void signedDistancesPointsTriangle (std::vector<double>&distances,
-				    const std::vector<SPoint3> &pts,
-				    const SPoint3 &p1,
-				    const SPoint3 &p2,
-				    const SPoint3 &p3){
-  SVector3 t1 = p2-p1;
-  SVector3 t2 = p3-p1;
-  SVector3 t3 = p3-p2;
-  SVector3 n = crossprod(t1,t2);
+void signedDistancesPointsTriangle(std::vector<double>&distances,
+                                   const std::vector<SPoint3> &pts,
+                                   const SPoint3 &p1,
+                                   const SPoint3 &p2,
+                                   const SPoint3 &p3)
+{
+  SVector3 t1 = p2 - p1;
+  SVector3 t2 = p3 - p1;
+  SVector3 t3 = p3 - p2;
+  SVector3 n = crossprod(t1, t2);
   n.normalize();
 
-  double mat[3][3] = {{t1.x(),t2.x(),-n.x()},
-		      {t1.y(),t2.y(),-n.y()},
-		      {t1.z(),t2.z(),-n.z()}};
+  double mat[3][3] = {{t1.x(), t2.x(), -n.x()},
+		      {t1.y(), t2.y(), -n.y()},
+		      {t1.z(), t2.z(), -n.z()}};
   double inv[3][3];
-  double det = inv3x3(mat,inv);
+  double det = inv3x3(mat, inv);
   
   distances.clear();
   distances.resize(pts.size());
 
-  for (int i=0; i<pts.size();i++)
+  for (unsigned int i = 0; i < pts.size(); i++)
     distances[i] = 1.e22;
 
-  if (det = 0.0)return;
-
-  const double n2t1 = dot(t1,t1);
-  const double n2t2 = dot(t2,t3);
-  const double n2t3 = dot(t3,t3);
+  if (det = 0.0) return;
 
+  const double n2t1 = dot(t1, t1);
+  const double n2t2 = dot(t2, t3);
+  const double n2t3 = dot(t3, t3);
 
-  double u,v,d;
-  for (int i=0; i<pts.size();i++){
-    const SPoint3 & p = pts[i];
-    SVector3 pp1 = p-p1;
+  double u, v, d;
+  for (unsigned int i = 0; i < pts.size();i++){
+    const SPoint3 &p = pts[i];
+    SVector3 pp1 = p - p1;
     u = (inv[0][0] * pp1.x() + inv[0][1] * pp1.y() + inv[0][2] * pp1.z());
     v = (inv[1][0] * pp1.x() + inv[1][1] * pp1.y() + inv[1][2] * pp1.z());
     d = (inv[2][0] * pp1.x() + inv[2][1] * pp1.y() + inv[2][2] * pp1.z());
-    double sign = (d>0) ? 1.0 : -1.0;
+    double sign = (d > 0) ? 1. : -1.;
     if (d == 0) sign = 1.e10;
-    
-    if (u >= 0 && v >=0 && 1.-u-v >= 0.0){
+    if (u >= 0 && v >= 0 && 1.-u-v >= 0.0){
       distances[i] = d;
     }
     else {
-      const double t12 = dot(pp1,t1) / n2t1;
-      const double t13 = dot(pp1,t2) / n2t2;
+      const double t12 = dot(pp1, t1) / n2t1;
+      const double t13 = dot(pp1, t2) / n2t2;
       SVector3 pp2 = p - p2;
-      const double t23 = dot(pp2,t3) / n2t3;
+      const double t23 = dot(pp2, t3) / n2t3;
       d = 1.e10;
       bool found = false;
-      if (t12 >=0 && t12 <= 1.0){
-	d = sign * std::min(fabs(d),p.distance(p1+(p2-p1)*t12));            
+      if (t12 >= 0 && t12 <= 1.){
+	d = sign * std::min(fabs(d), p.distance(p1 + (p2 - p1) * t12));            
 	found = true;
       }
-      if (t13 >=0 && t13 <= 1.0){
-	d = sign * std::min(fabs(d),p.distance(p1+(p3-p1)*t13));      
+      if (t13 >= 0 && t13 <= 1.){
+	d = sign * std::min(fabs(d), p.distance(p1 + (p3 - p1) * t13));      
 	found = true;
       }      
-      if (t23 >=0 && t23 <= 1.0){
-	d = sign * std::min(fabs(d),p.distance(p2+(p3-p2)*t23));      
+      if (t23 >= 0 && t23 <= 1.){
+	d = sign * std::min(fabs(d), p.distance(p2 + (p3 - p2) * t23));      
 	found = true;
       }
-      d = sign * std::min(fabs(d),std::min(std::min(p.distance(p1),p.distance(p2)),p.distance(p3)));
+      d = sign * std::min(fabs(d), std::min(std::min(p.distance(p1), p.distance(p2)),
+                                            p.distance(p3)));
       distances[i] = d;
     }
   }					   
diff --git a/Numeric/functionSpace.cpp b/Numeric/functionSpace.cpp
index c535a49c53fe6ea4e2e22486eb1f5357b714738a..e2259ec1378fbd174b0ef021ae00761cda9395e6 100644
--- a/Numeric/functionSpace.cpp
+++ b/Numeric/functionSpace.cpp
@@ -630,7 +630,8 @@ static fullMatrix<double> gmshGeneratePointsQuad(int order, bool serendip)
         point.copy(inner, 0, nbPoints - index, 0, 2, index, 0);
       }
     }
-  } else {
+  } 
+  else {
     point(0, 0) = 0;
     point(0, 1) = 0;
   }
@@ -662,86 +663,93 @@ static fullMatrix<double> generateLagrangeMonomialCoefficients
   return coefficient;
 }
 
-
-// -----------------------------------------------------------------------------
-static void getFaceClosure(int iFace, int iSign, int iRotate , std::vector<int> & closure, int order) {
+static void getFaceClosure(int iFace, int iSign, int iRotate, std::vector<int> &closure,
+                           int order)
+{
   closure.clear();
-  closure.reserve((order+1)*(order+2)/2);  
+  closure.reserve((order + 1) * (order + 2) / 2);  
   switch (order){
   case 0:
-    closure[0]=0;
+    closure[0] = 0;
     break;
   default:
-    int face[4][3] = {{0, 1, 2},{0, 4, -3},{1, 5, -4},{-2, 5, -3}};
-    int order1node[4][3] = {{0,1,2},{0,1,3},{1,2,3},{0,2,3}};
-    // int facedofstmp[200];  
-    //face 0 | 0 1 2
-    //face 1 | 0 4 -3
-    //face 2 | 1 5 -4
-    //face 3 | -2 5 -3
+    int face[4][3] = {{0, 1, 2}, {0, 4, -3}, {1, 5, -4}, {-2, 5, -3}};
+    int order1node[4][3] = {{0, 1, 2}, {0, 1, 3}, {1, 2, 3}, {0, 2, 3}};
+    // int facedofstmp[200];
+    // face 0 | 0 1 2
+    // face 1 | 0 4 -3
+    // face 2 | 1 5 -4
+    // face 3 | -2 5 -3
     // edge 0   |  4 -> 4+order-2
     // edge 1   |  4+order-1 -> 4 + 2*(order-1)-1
     // edge 2   |  4+2*(order-1)-> 4+ 3*(order-1)-1
     // edge k   |  4+k*(order-1) -> 4+(k+1)*(order-1)-1
-    for (int i =0;i<3;++i){
-      int k=(3+(iSign*i)+iRotate)%3;
-      closure[i]=order1node[iFace][k];
+    for (int i = 0; i < 3; ++i){
+      int k = (3 + (iSign * i) + iRotate) % 3;
+      closure[i] = order1node[iFace][k];
     }
-    for (int i =0;i < 3;++i){
-      int edgenumber = iSign*face[iFace][(6+i*iSign+(-1+iSign)/2+iRotate)%3];
-      for (size_t k =0; k< (order-1); k++){
-	if (edgenumber > 0 || ((edgenumber == 0) && (iSign >0) ))
-	  closure [3+i*(order-1)+k] = 4 + edgenumber*(order-1)+k;
+    for (int i = 0;i < 3; ++i){
+      int edgenumber = iSign * 
+        face[iFace][(6 + i * iSign + (-1 + iSign) / 2 + iRotate) % 3];
+      for (int k = 0; k < (order - 1); k++){
+	if (edgenumber > 0 || ((edgenumber == 0) && (iSign > 0)))
+	  closure[3 + i * (order - 1) + k] =
+            4 + edgenumber * (order - 1) + k;
 	else
-	  closure [3+i*(order-1)+k] = 4 +(1- edgenumber)*(order-1)-1-k; 
+	  closure[3 + i * (order - 1) + k] =
+            4 + (1 - edgenumber) * (order - 1) - 1 - k; 
       }
     }
-    int fi = 3+3*(order-1);
-    int ti = 4+6*(order-1);
-    int ndofff = (order-3+2)*(order-3+1)/2;
-    ti = ti +iFace * ndofff;
-    for (size_t k=0; k<order/3;k++){
-      int orderint = order - 3 - k*3;
-      if (orderint>0){
-	for (int ci =0; ci <3 ; ci++){
-	  int  shift = (3+iSign*ci+iRotate)%3;
-	  closure[fi+ci] = ti+shift;
+    int fi = 3 + 3 * (order - 1);
+    int ti = 4 + 6 * (order - 1);
+    int ndofff = (order - 3 + 2) * (order - 3 + 1) / 2;
+    ti = ti + iFace * ndofff;
+    for (int k = 0; k < order / 3; k++){
+      int orderint = order - 3 - k * 3;
+      if (orderint > 0){
+	for (int ci = 0; ci < 3 ; ci++){
+	  int  shift = (3 + iSign * ci + iRotate) % 3;
+	  closure[fi + ci] = ti + shift;
 	}
-	fi= fi+3; ti= ti+3;
-	for (int l=0; l< orderint-1; l++){
-	  for (int ei =0; ei<3; ei++)
-	    {
-	      int edgenumber = (6+ei*iSign+(-1+iSign)/2+iRotate)%3;
-	      if (iSign > 0) closure[fi+ei*(orderint-1)+l] = ti + edgenumber*(orderint-1)+l;
-	      else          closure[fi+ei*(orderint-1)+l] = ti + (1+edgenumber)*(orderint-1)-1-l; 
-	    }
+	fi = fi + 3; ti = ti + 3;
+	for (int l = 0; l < orderint - 1; l++){
+	  for (int ei = 0; ei < 3; ei++){
+            int edgenumber = (6 + ei * iSign + (-1 + iSign) / 2 + iRotate) % 3;
+            if (iSign > 0) 
+              closure[fi + ei * (orderint - 1) + l] = 
+                ti + edgenumber * (orderint - 1) + l;
+            else
+              closure[fi + ei * (orderint - 1) + l] =
+                ti + (1 + edgenumber) * (orderint - 1) - 1 - l; 
+          }
 	}
-	fi=fi+3*(orderint-1); ti = ti+3*(orderint -1);        
+	fi = fi + 3 * (orderint - 1); ti = ti + 3 * (orderint - 1);        
       }
       else {
-	closure[fi] = ti ; 
+	closure[fi] = ti;
 	ti++; 
 	fi++;
       } 
     }
     break;
   }
-  return;   
 } 
 
-static void generate3dFaceClosure (  functionSpace::clCont & closure , int order) {
-  for (int iRotate=0;iRotate<3;iRotate++){
-    for (int iSign=1;iSign>=-1;iSign-=2){
-      for (int iFace=0;iFace<4;iFace++){
+static void generate3dFaceClosure(functionSpace::clCont &closure, int order)
+{
+  for (int iRotate = 0; iRotate < 3; iRotate++){
+    for (int iSign = 1; iSign >= -1; iSign -= 2){
+      for (int iFace = 0; iFace < 4; iFace++){
 	std::vector<int> closure_face;
-	getFaceClosure(iFace,iSign,iRotate,closure_face,order);
+	getFaceClosure(iFace, iSign, iRotate, closure_face, order);
 	closure.push_back(closure_face);
       }
     }
   }
 }
 
-static void generate2dEdgeClosure (  functionSpace::clCont & closure , int order) {
+static void generate2dEdgeClosure(functionSpace::clCont &closure, int order)
+{
   closure.clear();
   // first give edge nodes of the three edges in direct order
   int index = 3;
@@ -752,10 +760,10 @@ static void generate2dEdgeClosure (  functionSpace::clCont & closure , int order
   closure.push_back(c0);closure.push_back(c1);closure.push_back(c2);
   // then give edge nodes in reverse order
   std::vector<int> c3,c4,c5;
-  for (int i=c0.size()-1;i>=0;i--)c3.push_back(c0[i]);
-  for (int i=c1.size()-1;i>=0;i--)c4.push_back(c1[i]);
-  for (int i=c2.size()-1;i>=0;i--)c5.push_back(c2[i]);
-  closure.push_back(c3);closure.push_back(c4);closure.push_back(c5);
+  for (int i = c0.size() - 1; i >= 0; i--) c3.push_back(c0[i]);
+  for (int i = c1.size() - 1; i >= 0; i--) c4.push_back(c1[i]);
+  for (int i = c2.size() - 1; i >= 0; i--) c5.push_back(c2[i]);
+  closure.push_back(c3); closure.push_back(c4); closure.push_back(c5);
 }
 
 std::map<int, functionSpace> functionSpaces::fs;
diff --git a/Solver/dofManager.h b/Solver/dofManager.h
index 20f7aa5a5ef59b38fc5146135632cb35a8f864d4..9ff945e0ff3bcec912af9da80f0d5b56fe6b63e7 100644
--- a/Solver/dofManager.h
+++ b/Solver/dofManager.h
@@ -141,23 +141,23 @@ class dofManager{
   {
     if (!_current->isAllocated()) _current->allocate(unknown.size());
 
-    std::vector<int>    NR(R.size()), NC(C.size());
+    std::vector<int> NR(R.size()), NC(C.size());
 
-    for (int i=0; i<R.size(); i++){
+    for (unsigned int i = 0; i < R.size(); i++){
       std::map<Dof, int>::iterator itR = unknown.find(R[i]);
       if (itR != unknown.end()) NR[i] = itR->second;
       else NR[i] = -1;
     }
-    for (int i=0; i< C.size(); i++){
+    for (unsigned int i = 0; i < C.size(); i++){
       std::map<Dof, int>::iterator itC = unknown.find(C[i]);
       if (itC != unknown.end()) NC[i] = itC->second;
       else NC[i] = -1;
     }
-    for (int i=0; i<R.size(); i++){
+    for (unsigned int i = 0; i < R.size(); i++){
       if (NR[i] != -1){
-	for (int j=0; j<C.size(); j++){
+	for (unsigned int j = 0; j < C.size(); j++){
 	  if (NC[j] != -1){
-	    _current->addToMatrix(NR[i], NC[j], m(i,j));
+	    _current->addToMatrix(NR[i], NC[j], m(i, j));
 	  }
 	  else{
 	    typename std::map<Dof,  dataVec>::iterator itFixed = fixed.find(C[j]);
@@ -175,22 +175,22 @@ class dofManager{
 
     std::vector<int> NR(R.size());
 
-    for (int i=0; i<R.size(); i++){
+    for (unsigned int i = 0; i < R.size(); i++){
       std::map<Dof, int>::iterator itR = unknown.find(R[i]);
       if (itR != unknown.end()) NR[i] = itR->second;
       else NR[i] = -1;
     }
 
-    for (int i=0; i<R.size(); i++){
+    for (unsigned int i = 0; i < R.size(); i++){
       if (NR[i] != -1){
-	for (int j=0; j<R.size(); j++){
+	for (unsigned int j = 0; j < R.size(); j++){
 	  if (NR[j] != -1){
-	    _current->addToMatrix(NR[i], NR[j], m(i,j));
+	    _current->addToMatrix(NR[i], NR[j], m(i, j));
 	  }
 	  else{
 	    typename std::map<Dof,  dataVec>::iterator itFixed = fixed.find(R[j]);
 	    if (itFixed != fixed.end()){
-	      _current->addToRightHandSide(NR[i], -m(i,j) * itFixed->second);
+	      _current->addToRightHandSide(NR[i], -m(i, j) * itFixed->second);
 	    }
 	  }
 	}
diff --git a/Solver/elasticitySolver.cpp b/Solver/elasticitySolver.cpp
index 0301f64de8887557ccd7f4f13e2db18c95026dc4..558fdf6a99e71ad41ed68117af9bb4493937c96d 100644
--- a/Solver/elasticitySolver.cpp
+++ b/Solver/elasticitySolver.cpp
@@ -21,7 +21,7 @@
 PView* elasticitySolver::buildDisplacementView (const std::string &postFileName){
   std::map<int, std::vector<double> > data;
   std::set<MVertex*> v;
-  for (int i = 0; i < elasticFields.size(); ++i){
+  for (unsigned int i = 0; i < elasticFields.size(); ++i){
     groupOfElements::elementContainer::const_iterator it = elasticFields[i].g->begin();
     for ( ; it != elasticFields[i].g->end(); ++it){
       SElement se(*it);
@@ -35,7 +35,7 @@ PView* elasticitySolver::buildDisplacementView (const std::string &postFileName)
   for ( ; it != v.end(); ++it){
     std::vector<double> d;
     d.push_back(0); d.push_back(0); d.push_back(0);
-    for (int i = 0; i < elasticFields.size(); ++i){
+    for (unsigned int i = 0; i < elasticFields.size(); ++i){
       const double E = (elasticFields[i]._enrichment) ?
                        (*elasticFields[i]._enrichment)((*it)->x(), (*it)->y(), (*it)->z()) : 1.0;	
       //      printf("%g %d \n",pAssembler->getDofValue(*it,0,elasticFields[i]._tag),elasticFields[i]._tag);
@@ -232,7 +232,7 @@ void elasticitySolver::solve()
 
   // we number the nodes : when a node is numbered, it cannot be numbered
   // again with another number. so we loop over elements
-  for (int i = 0; i < elasticFields.size(); ++i){
+  for (unsigned int i = 0; i < elasticFields.size(); ++i){
     groupOfElements::elementContainer::const_iterator it = elasticFields[i].g->begin();
     for ( ; it != elasticFields[i].g->end(); ++it){
       SElement se(*it);
@@ -301,9 +301,9 @@ void elasticitySolver::solve()
   }
 
   // assembling the stifness matrix
-  for (int i = 0; i < elasticFields.size(); i++){
+  for (unsigned int i = 0; i < elasticFields.size(); i++){
     SElement::setShapeEnrichement(elasticFields[i]._enrichment);
-    for (int j = 0; j < elasticFields.size(); j++){
+    for (unsigned int j = 0; j < elasticFields.size(); j++){
       elasticityTerm El(0, elasticFields[i]._E, elasticFields[i]._nu,
                         elasticFields[i]._tag, elasticFields[j]._tag);
       SElement::setTestEnrichement(elasticFields[j]._enrichment);
diff --git a/Solver/groupOfElements.cpp b/Solver/groupOfElements.cpp
index e409dbc663d5c841fff0b052004d4275e3fc381a..74cd63e139bc4b6e24ee9e30618ae8b2920ae738 100644
--- a/Solver/groupOfElements.cpp
+++ b/Solver/groupOfElements.cpp
@@ -9,7 +9,7 @@ groupOfElements::groupOfElements(GFace*gf)
 }
 
 void groupOfElements::addElementary(GEntity *ge, const elementFilter &filter){
-  for (int j = 0; j < ge->getNumMeshElements(); j++){
+  for (unsigned int j = 0; j < ge->getNumMeshElements(); j++){
     MElement *e = ge->getMeshElement(j);
     if (filter(e)){
       insert(e);
@@ -22,7 +22,7 @@ void groupOfElements::addPhysical(int dim, int physical,
   std::map<int, std::vector<GEntity*> > groups[4];
   GModel::current()->getPhysicalGroups(groups);
   std::vector<GEntity*> ent = groups[dim][physical];
-  for (int i = 0; i < ent.size(); i++){
+  for (unsigned int i = 0; i < ent.size(); i++){
     addElementary(ent[i], filter);
   }
 }