diff --git a/Adapt/Makefile b/Adapt/Makefile
index 89c99a95c4d8c501a61e755588c3d6820c2cd76b..940a300dc5e0ddbe15ec5cc17051ca9357c1ec5c 100644
--- a/Adapt/Makefile
+++ b/Adapt/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.9 2001-01-13 17:08:41 geuzaine Exp $
+# $Id: Makefile,v 1.10 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC        = c++
+AR        = ar ruvs
 RM        = rm
 RANLIB    = ranlib
 
@@ -36,7 +37,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ)
-	ar ruvs $(LIB) $(OBJ)
+	$(AR) $(LIB) $(OBJ)
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Box/Makefile b/Box/Makefile
index 26f0846761f13075ab0793a7a8e829826126911c..6b86da99033b5155fc362c9b0c3e036130cc98f3 100644
--- a/Box/Makefile
+++ b/Box/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.4 2001-01-08 08:05:40 geuzaine Exp $
+# $Id: Makefile,v 1.5 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for ".a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC       = c++
+AR       = ar ruvs
 RM       = rm
 RANLIB   = ranlib
 LIB      = ../lib/libBox.a
@@ -26,7 +27,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ) 
+	$(AR) $(LIB) $(OBJ) 
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Common/Makefile b/Common/Makefile
index 36ac9476f95079cf2d2c736e943f0adc6ab099f8..1fee7ed723cb94a2e68b4dd79b4b4e1f45121e36 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.10 2001-01-13 17:08:41 geuzaine Exp $
+# $Id: Makefile,v 1.11 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libCommon.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC      = c++
+AR      = ar ruvs
 RANLIB  = ranlib
 RM      = rm
 
@@ -36,7 +37,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ)
+	$(AR) $(LIB) $(OBJ)
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Common/Views.cpp b/Common/Views.cpp
index 81561df28cc319afb7965bfe236be61a41d415e3..637e070930b6fac2cb9c06c2d6bd44ad81b88605 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.27 2001-02-02 15:05:03 geuzaine Exp $
+// $Id: Views.cpp,v 1.28 2001-02-09 14:51:31 geuzaine Exp $
 
 #include <set>
 #include "Gmsh.h"
@@ -734,12 +734,12 @@ void smooth_list (List_T *SS ,
       for(j=0;j<nbvert;j++)
 	{
 	  for(k=0;k<NbTimeStep;k++)vals[k] = v[j+k*8];
-	  xyzv x(x[j],y[j],z[j]);
-	  iter it = connectivities.find(x);
+	  xyzv xyz(x[j],y[j],z[j]);
+	  iter it = connectivities.find(xyz);
 	  if(it == connectivities.end())
 	    {
-	      x.update(NbTimeStep,vals);
-	      connectivities.insert(x);
+	      xyz.update(NbTimeStep,vals);
+	      connectivities.insert(xyz);
 	    }
 	  else
 	    {
@@ -763,8 +763,6 @@ void smooth_list (List_T *SS ,
 	  iter it = connectivities.find(xyz);
 	  for(k=0;k<NbTimeStep;k++)v[j+k*8] = (*it).vals[k];
 	  //for(k=0;k<NbTimeStep;k++)v[j+k*8] = l;
-
-
 	}
     } 
   delete [] vals;
diff --git a/DataStr/Makefile b/DataStr/Makefile
index 8bcc52a90385c01fe65a07c0f7a2c102505a1727..0fbf31178e01f9511b816c142dc52ff7a52e0507 100644
--- a/DataStr/Makefile
+++ b/DataStr/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.4 2001-01-08 08:05:40 geuzaine Exp $
+# $Id: Makefile,v 1.5 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libDataStr.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC       = c++
+AR       = ar ruvs
 RM       = rm
 RANLIB   = ranlib
 LIB      = ../lib/libDataStr.a
@@ -29,7 +30,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ)
-	ar ruvs $(LIB) $(OBJ)
+	$(AR) $(LIB) $(OBJ)
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Fltk/Makefile b/Fltk/Makefile
index c5bce63787427eb08c4f674e55388739b3e7583f..27f54e8439e8591ebc415e5e2799b942cb02d329 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.6 2001-02-03 13:10:26 geuzaine Exp $
+# $Id: Makefile,v 1.7 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libFltk.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC       = c++
+AR       = ar ruvs
 RM       = rm
 RANLIB   = ranlib
 
@@ -39,7 +40,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ) 
+	$(AR) $(LIB) $(OBJ) 
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Geo/Makefile b/Geo/Makefile
index 604a32025f399bd477bc0e3108e55304f8fa79cf..47cde1010a98043dff9cab8630b00afb2d70e43c 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.10 2001-01-13 17:08:41 geuzaine Exp $
+# $Id: Makefile,v 1.11 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libGeo.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC      = c++
+AR      = ar ruvs
 RANLIB  = ranlib
 RM      = rm
 
@@ -35,7 +36,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ)
+	$(AR) $(LIB) $(OBJ)
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Graphics/Makefile b/Graphics/Makefile
index df5c9e6005a49bebcff608cca1b3ac403def9fb3..8b24a91f58b2103e68c0117dc839e78e8de0f530 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.16 2001-02-03 13:10:26 geuzaine Exp $
+# $Id: Makefile,v 1.17 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libGraphics.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC       = c++
+AR       = ar ruvs
 RANLIB   = ranlib
 RM       = rm
 LIB      = ../lib/libGraphics.a
@@ -48,7 +49,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ) 
+	$(AR) $(LIB) $(OBJ) 
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp
index 9fc7ffc351580be751ba1e2467258ec722bfb724..363a2210293940bc773fc0c7dfb7067a85c19fbe 100644
--- a/Graphics/Mesh.cpp
+++ b/Graphics/Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Mesh.cpp,v 1.19 2001-01-29 22:33:41 remacle Exp $
+// $Id: Mesh.cpp,v 1.20 2001-02-09 14:51:31 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -560,10 +560,10 @@ void Draw_Hexahedron_Volume (void *a, void *b){
   //glColor4ubv((GLubyte*)&CTX.color.mesh.hexahedron);
   ColorSwitch((*h)->iEnt+1);
 
-  for (int i=0 ; i<8 ; i++) {
-     X[i] = Xc + CTX.mesh.explode * 0.99 * ((*h)->V[i]->Pos.X - Xc);
-     Y[i] = Yc + CTX.mesh.explode * 0.99 * ((*h)->V[i]->Pos.Y - Yc);
-     Z[i] = Zc + CTX.mesh.explode * 0.99 * ((*h)->V[i]->Pos.Z - Zc);
+  for (i=0 ; i<8 ; i++) {
+    X[i] = Xc + CTX.mesh.explode * 0.99 * ((*h)->V[i]->Pos.X - Xc);
+    Y[i] = Yc + CTX.mesh.explode * 0.99 * ((*h)->V[i]->Pos.Y - Yc);
+    Z[i] = Zc + CTX.mesh.explode * 0.99 * ((*h)->V[i]->Pos.Z - Zc);
   }
 
   glBegin(GL_LINE_LOOP);
diff --git a/Graphics/gl2gif.cpp b/Graphics/gl2gif.cpp
index 695e086f4ebe9efad14d424603403d9c6da36eef..d1587a30c0f3f1cb29521f84989ca217f8b22599 100644
--- a/Graphics/gl2gif.cpp
+++ b/Graphics/gl2gif.cpp
@@ -1,4 +1,4 @@
-// $Id: gl2gif.cpp,v 1.9 2001-01-10 08:50:30 geuzaine Exp $
+// $Id: gl2gif.cpp,v 1.10 2001-02-09 14:51:31 geuzaine Exp $
 
 /* 
  * gl2gif: an OpenGL to GIF printing library
@@ -581,7 +581,6 @@ static code_int free_ent = 0;             /* first unused entry */
  */
 static int clear_flg = 0;
 
-static int offset;
 static long int in_count = 1;            /* length of input */
 static long int out_count = 0;           /* # of codes output (for debugging) */
 static int ClearCode;
@@ -858,7 +857,6 @@ static void compress( int init_bits, FILE* outfile, ifunptr ReadValue){
   /*
    * Set up the necessary values
    */
-  offset = 0;
   out_count = 0;
   clear_flg = 0;
   in_count = 1;
diff --git a/Makefile b/Makefile
index 1e8347e18a8dbff77c9a62bd7c2dcd11dc2db7cc..6eaa192f0d24ef972a21602a15a4a65512ac12ed 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.54 2001-02-09 07:59:50 geuzaine Exp $
+# $Id: Makefile,v 1.55 2001-02-09 14:51:31 geuzaine Exp $
 # ----------------------------------------------------------------------
 #  Makefile for Gmsh  
 # ----------------------------------------------------------------------
@@ -342,6 +342,16 @@ fltk_compile_little_endian:
            "GUI_INCLUDE=$(FLTK_INC)" \
         ); done
 
+fltk_compile_little_endian_2952:
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CC=$(HOME)/gcc-2.95.2/bin/g++" \
+           "C_FLAGS=-O3" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=$(OPENGL_INC)" \
+           "GUI_INCLUDE=$(FLTK_INC)" \
+        ); done
+
 fltk_compile_solaris_scorec :
 	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
            "CC=$(CC)" \
@@ -361,6 +371,18 @@ fltk_compile_linux_scorec :
            "GUI_INCLUDE=$(FLTK_INC_SCOREC)" \
         ); done
 
+fltk_compile_sgi:
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CC=CC" \
+           "C_FLAGS=-O2 -n32 -OPT:Olimit=0" \
+           "RANLIB=true"\
+           "AR=CC -n32 -ar -o"\
+           "OS_FLAGS=" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=$(OPENGL_INC)" \
+           "GUI_INCLUDE=$(FLTK_INC)" \
+        ); done
+
 fltk_link_solaris_scorec:
 	$(CC) -o $(GMSH_BIN_DIR)/gmsh-sun $(GMSH_FLTK_LIB) $(OPENGL_LIB) \
                  $(FLTK_LIB_SOLARIS_SCOREC) -lm
@@ -371,15 +393,9 @@ fltk_link_mesa:
 	$(CC) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB) $(MESA_LIB) \
                  $(FLTK_LIB) -lm
 
-fltk_compile_little_endian_2952:
-	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
-           "CC=$(HOME)/gcc-2.95.2/bin/g++" \
-           "C_FLAGS=-O3" \
-           "OS_FLAGS=-D_LITTLE_ENDIAN" \
-           "VERSION_FLAGS=-D_FLTK" \
-           "GL_INCLUDE=$(OPENGL_INC)" \
-           "GUI_INCLUDE=$(FLTK_INC)" \
-        ); done
+fltk_link_sgi:
+	CC -O2 -n32 -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB)\
+                  $(FLTK_LIB) $(OPENGL_LIB) -lm
 
 fltk_link_mesa_2952:
 	$(HOME)/gcc-2.95.2/bin/g++ -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB) $(MESA_LIB) \
@@ -391,8 +407,11 @@ fltk_linux: tag fltk_compile_little_endian fltk_link_mesa strip_bin compress_bin
 fltk_linux_2952: tag fltk_compile_little_endian_2952 fltk_link_mesa_2952 strip_bin compress_bin
 
 fltk_solaris_scorec : tag fltk_compile_solaris_scorec fltk_link_solaris_scorec strip_bin 
+
 fltk_linux_scorec : tag fltk_compile_linux_scorec fltk_link_linux_scorec strip_bin 
 
+fltk_sgi: tag fltk_compile_sgi fltk_link_sgi strip_bin compress_bin
+
 fltk_rpm: src
 	mv $(GMSH_SRCRPM).tar.gz /usr/src/redhat/SOURCES
 	rpm -bb utils/gmsh_fltk.spec
@@ -425,3 +444,4 @@ fltk_cygwin: tag
 	g++ -Wl,--subsystem,windows -o $(GMSH_BIN_DIR)/gmsh.exe $(GMSH_FLTK_LIB) \
                  $(HOME)/SOURCES/fltk/lib/libfltk.a -lglu32 -lopengl32 -lgdi32 -lwsock32 -lm
 	strip $(GMSH_BIN_DIR)/gmsh.exe
+
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 2fdc8dab30d9b88ac966d9f9538094d33575c67a..03aef93a4d40cc7ab7864d83b4973a62c3872ee5 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.12 2001-01-17 21:49:25 remacle Exp $
+# $Id: Makefile,v 1.13 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libMesh.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC      = c++
+AR      = ar ruvs
 RM      = rm
 RANLIB  = ranlib
 
@@ -66,7 +67,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar rvs $(LIB) $(OBJ) 
+	$(AR) $(LIB) $(OBJ) 
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Motif/Makefile b/Motif/Makefile
index 624d4751cc4bdef45718b968b5c48199cdc148e5..bad6bbd41c5362a1fa7fdadcbaf877e82e237c11 100644
--- a/Motif/Makefile
+++ b/Motif/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.5 2001-02-03 13:10:26 geuzaine Exp $
+# $Id: Makefile,v 1.6 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libMotif.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC       = c++
+AR       = ar ruvs
 RM       = rm
 RANLIB   = ranlib
 
@@ -49,7 +50,7 @@ OBJ = $(SRC:.cpp=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ) 
+	$(AR) $(LIB) $(OBJ) 
 	$(RANLIB) $(LIB)
 
 .cpp.o:
diff --git a/Parser/FunctionManager.cpp b/Parser/FunctionManager.cpp
index b9065b99eca6cdcf185b492fc6c6a4de6e156240..027ef6e36b7435a1ffe3273631ef53f89563f534 100644
--- a/Parser/FunctionManager.cpp
+++ b/Parser/FunctionManager.cpp
@@ -1,10 +1,12 @@
-// $Id: FunctionManager.cpp,v 1.7 2001-01-09 19:40:56 remacle Exp $
+// $Id: FunctionManager.cpp,v 1.8 2001-02-09 14:51:31 geuzaine Exp $
 
 #include <stdio.h>
 #include <stack>
 #include <map>
 #include "FunctionManager.h"
 
+using namespace std;
+
 struct ltstr
 {
   bool operator()(const char* s1, const char* s2) const
diff --git a/jpeg/Makefile b/jpeg/Makefile
index f7b9ed6722d1a54b7b9268646ba980211cdffe8e..dd91bc614d820654e326a5b71449d05027098f9f 100644
--- a/jpeg/Makefile
+++ b/jpeg/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.6 2001-02-09 07:55:32 geuzaine Exp $
+# $Id: Makefile,v 1.7 2001-02-09 14:51:31 geuzaine Exp $
 #
 # Makefile for "libJpeg.a"
 #
@@ -6,6 +6,7 @@
 .IGNORE:
 
 CC       = c++
+AR       = ar ruvs
 RM       = rm
 RANLIB   = ranlib
 
@@ -29,7 +30,7 @@ OBJ = $(SRC:.c=.o)
 .SUFFIXES: .o .cpp
 
 $(LIB): $(OBJ) 
-	ar ruvs $(LIB) $(OBJ) 
+	$(AR) $(LIB) $(OBJ) 
 	$(RANLIB) $(LIB)
 
 .cpp.o: