diff --git a/Common/onelab.h b/Common/onelab.h
index e0950bef6497e149c2667cf46f1639cf847bd020..a92413ae92c7aae474e5b8a614a0c4b2410181ee 100644
--- a/Common/onelab.h
+++ b/Common/onelab.h
@@ -1277,7 +1277,10 @@ namespace onelab{
     void runNonBlockingSubClient(const std::string &name, const std::string &command)
     {
       if(!_gmshClient){
-        system(command.c_str());
+        int res=system(command.c_str());
+        if (res)
+        {// error
+        }
         return;
       }
       std::string msg = name + parameter::charSep() + command;
diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index a9fac7ffd4a463357740a6c97ed792ec3172a401..9e8aaaadebbf6a37c4e497b1d4a2576d9de6b081 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -370,7 +370,7 @@ FlGui::FlGui(int argc, char **argv)
   // nothing to do here
 #else
   fl_open_display();
-  static char *gmsh32x32 =
+  static const char *gmsh32x32 =
     "\x00\x00\x00\x00\x00\x80\x01\x00\x00\x40\x03\x00\
     \x00\x40\x03\x00\x00\x20\x07\x00\x00\x20\x07\x00\
     \x00\x10\x0f\x00\x00\x10\x0f\x00\x00\x08\x1f\x00\
diff --git a/Fltk/drawContextFltkStringTexture.cpp b/Fltk/drawContextFltkStringTexture.cpp
index 81b90ca173f723868d0d72b779dd6cdd082d65a6..432a5cbaa581feef897013c19c14fac8c384d121 100644
--- a/Fltk/drawContextFltkStringTexture.cpp
+++ b/Fltk/drawContextFltkStringTexture.cpp
@@ -145,7 +145,7 @@ void drawContextFltkStringTexture::drawString(const char *str)
   glGetFloatv(GL_CURRENT_RASTER_POSITION, pos);
   glGetFloatv(GL_CURRENT_COLOR, color);
   queueString::element elem = {str, pos[0], pos[1], pos[2], color[0], color[1], color[2], color[3],
-    _currentFontSize, _currentFontId, getStringWidth(str) + 1, getStringHeight()};
+    _currentFontSize, _currentFontId, (int)getStringWidth(str) + 1, getStringHeight()};
   _queue->append(elem);
 }
 
diff --git a/Geo/discreteDiskFace.cpp b/Geo/discreteDiskFace.cpp
index ba646261cfb3aa596d10cf53431230921bf1e4f8..6ee019066ea149f01d55a5eebb0e5d2d8af61719 100644
--- a/Geo/discreteDiskFace.cpp
+++ b/Geo/discreteDiskFace.cpp
@@ -651,7 +651,7 @@ void discreteDiskFace::putOnView(bool Xu, bool Ux)
 
   char mybuffer [64];
   
-  FILE *view_u, *view_v, *UVx, *UVy, *UVz;
+  FILE *view_u=NULL, *view_v=NULL, *UVx=NULL, *UVy=NULL, *UVz=NULL;
 
   
 
diff --git a/Graphics/drawGlyph.cpp b/Graphics/drawGlyph.cpp
index a748158b2994dfddf06c7255dff4fc647e5659f7..20647370e552943bc5c99377f974f5184283f0ad 100644
--- a/Graphics/drawGlyph.cpp
+++ b/Graphics/drawGlyph.cpp
@@ -264,7 +264,7 @@ void drawContext::drawEllipse(double x, double y, double z, float v0[3], float v
     v0[0], v0[1], v0[2], .0f,
     v1[0], v1[1], v1[2], .0f,
     v0[1]*v1[2]-v0[2]*v1[1], v0[2]*v1[0]-v0[0]*v1[2], v0[0]*v1[1]-v0[1]*v1[0], .0f,
-    x, y, z, 1.f
+    (GLfloat)x, (GLfloat)y, (GLfloat)z, 1.f
   };
   glMultMatrixf(m);
   glCallList(_displayLists + 2);
@@ -281,7 +281,7 @@ void drawContext::drawEllipsoid(double x, double y, double z, float v0[3], float
     v0[0], v0[1], v0[2], .0f,
     v1[0], v1[1], v1[2], .0f,
     v2[0], v2[1], v2[2], .0f,
-    x, y, z, 1.f
+    (GLfloat)x, (GLfloat)y, (GLfloat)z, 1.f
   };
   glMultMatrixf(m);
   glCallList(_displayLists + 0);
diff --git a/Graphics/gl2ps.cpp b/Graphics/gl2ps.cpp
index c6c6d41141d25e9663df04c552c26498c45701c1..b23e4491340418514929fd077ca4ab6cc6479fa3 100644
--- a/Graphics/gl2ps.cpp
+++ b/Graphics/gl2ps.cpp
@@ -2244,7 +2244,7 @@ static void gl2psParseFeedbackBuffer(GLint used)
   GLushort pattern = 0;
   GLboolean boundary;
   GLint i, sizeoffloat, count, v, vtot, offset = 0, factor = 0, auxindex = 0;
-  GLfloat lwidth = 1.0F, psize = 1.0F, ofactor, ounits;
+  GLfloat lwidth = 1.0F, psize = 1.0F, ofactor=1.0F, ounits=1.0F;
   GLfloat *current;
   GL2PSvertex vertices[3];
   GL2PSprimitive *prim;
diff --git a/Mesh/tetgenBR.cxx b/Mesh/tetgenBR.cxx
index be00762e7634ef9b8feb11bfb025019e541be61c..e8eecc4aa6854d011de2a585ea5a2f3c37dbb432 100644
--- a/Mesh/tetgenBR.cxx
+++ b/Mesh/tetgenBR.cxx
@@ -12476,7 +12476,7 @@ int tetgenmesh::add_steinerpt_in_segment(face* misseg, int searchlevel)
   enum interresult dir;
   REAL P[3], Q[3], tp, tq;
   REAL len, smlen = 0, split = 0, split_q = 0;
-  int success;
+  int success=0;
   int i;
 
   startpt = sorg(*misseg);
@@ -12625,7 +12625,10 @@ int tetgenmesh::add_steinerpt_in_segment(face* misseg, int searchlevel)
     st_volref_count++;
   }
   if (steinerleft > 0) steinerleft--;
-
+  if (!success){
+    // error
+  }
+    
   return 1;
 }
 
diff --git a/Mesh/yamakawa.cpp b/Mesh/yamakawa.cpp
index 6eabdaf276c65b69d48e02fa676d251e43da6143..fc7e695bce8ee98bfdb0761c540e6822f6b5da87 100644
--- a/Mesh/yamakawa.cpp
+++ b/Mesh/yamakawa.cpp
@@ -1456,7 +1456,7 @@ void Recombinator::pattern1(GRegion* gr){
 
 void Recombinator::pattern2(GRegion* gr){
   size_t i;
-  int index1,index2,index3,index4;
+  int index1=0,index2=0,index3=0,index4=0;
   double quality;
   MElement* element;
   MVertex *a,*b,*c,*d;
@@ -1510,7 +1510,7 @@ void Recombinator::pattern2(GRegion* gr){
 
 void Recombinator::pattern3(GRegion* gr){
   size_t i;
-  int index1,index2,index3,index4;
+  int index1=0,index2=0,index3=0,index4=0;
   bool c1,c2,c3,c4,c5;
   bool c6,c7,c8,c9,c10;
   double quality;
@@ -6937,7 +6937,7 @@ void Recombinator_Graph::pattern1(GRegion* gr){
 void Recombinator_Graph::pattern2(GRegion* gr){
   int size_init = hex_to_tet.size();
   size_t i;
-  int index1,index2,index3,index4;
+  int index1=0,index2=0,index3=0,index4=0;
   double quality;
   MElement* element;
   MVertex *a,*b,*c,*d;
@@ -6989,7 +6989,7 @@ void Recombinator_Graph::pattern2(GRegion* gr){
 void Recombinator_Graph::pattern3(GRegion* gr){
   int size_init = hex_to_tet.size();
   size_t i;
-  int index1,index2,index3,index4;
+  int index1=0,index2=0,index3=0,index4=0;
   bool c1,c2,c3,c4,c5;
   bool c6,c7,c8,c9,c10;
   double quality;
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index f53a180bb3bcf9ab8c8f8aba554f817fd2a35cb7..e132ded53fd71aee19703557f71e99c0d814feb9 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -3253,7 +3253,7 @@ YY_BUFFER_STATE gmsh_yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
-	int i;
+	yy_size_t i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = _yybytes_len + 2;