diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index c68fee9f24f12ad9da0f15b9a06bdc9157402b59..88853f1a626c4fc05822a9f0e4fbb693f00df4f4 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// $Id: CommandLine.cpp,v 1.91 2007-01-17 08:14:22 geuzaine Exp $
+// $Id: CommandLine.cpp,v 1.92 2007-01-18 09:12:44 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -82,7 +82,7 @@ void Print_Usage(char *name){
   Msg(DIRECT, "  -saveall              Save all elements (discard physical group definitions)");
   Msg(DIRECT, "  -o file               Specify mesh output file name");
   Msg(DIRECT, "  -format string        Set output mesh format (msh, unv, bdf, mesh, stl, vrml)");
-  Msg(DIRECT, "  -algo string          Select mesh algorithm (iso, tri, netgen, tetgen)");
+  Msg(DIRECT, "  -algo string          Select mesh algorithm (iso, netgen, tetgen)");
   Msg(DIRECT, "  -smooth int           Set number of mesh smoothing steps");
   Msg(DIRECT, "  -optimize             Optimize quality of tetrahedral elements");
   Msg(DIRECT, "  -order int            Set mesh order (1, 2)");
@@ -398,16 +398,20 @@ void Get_Options(int argc, char *argv[])
       else if(!strcmp(argv[i] + 1, "algo")) {
         i++;
         if(argv[i] != NULL) {
-          if(!strncmp(argv[i], "bds", 3) || !strncmp(argv[i], "iso", 3))
-            CTX.mesh.algo2d = ALGO_2D_MESHADAPT;
-          else if(!strncmp(argv[i], "del", 3))
-            CTX.mesh.algo2d = ALGO_2D_DELAUNAY;
-          else if(!strncmp(argv[i], "tri", 3))
-            CTX.mesh.algo2d = ALGO_2D_TRIANGLE;
+          if(!strncmp(argv[i], "del3d", 5))
+            CTX.mesh.algo2d = ALGO_3D_DELAUNAY;
           else if(!strncmp(argv[i], "netgen", 6))
             CTX.mesh.algo3d = ALGO_3D_NETGEN;
           else if(!strncmp(argv[i], "tetgen", 6))
 	    CTX.mesh.algo3d = ALGO_3D_TETGEN;
+          else if(!strncmp(argv[i], "del2d", 5) ||
+		  !strncmp(argv[i], "del", 3))
+            CTX.mesh.algo2d = ALGO_2D_DELAUNAY;
+          else if(!strncmp(argv[i], "bds", 3) || 
+		  !strncmp(argv[i], "iso", 3))
+            CTX.mesh.algo2d = ALGO_2D_MESHADAPT;
+          else if(!strncmp(argv[i], "tri", 3))
+            CTX.mesh.algo2d = ALGO_2D_TRIANGLE;
           else {
             fprintf(stderr, ERROR_STR "Unknown mesh algorithm\n");
             exit(1);
diff --git a/Common/Context.h b/Common/Context.h
index c47b2d9bcfdbec3a467bacf90bdcd10d54efd078..ef1e961fd9ae528159e15d3cad48c883d10ee8fc 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -89,7 +89,7 @@ public :
   double lc;                  // characteristic length for the whole problem (never
                               // used in mesh generation ->only for geo/post) 
 
-  int db;                     // double buffer? 
+  int db, antialiasing;       // double buffer? antialiasing?
   int ortho;                  // orthogonal projection? 
   int draw_bbox, draw_rotation_center; // draw the bounding boxes and the rot center?
   int fast_redraw;            // draw simplified model during user interaction
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 18d02a0a6bfcf90c18631754ac6d4477870a254e..d22a6522c0bea83e3d1bc9b5d6dcc8e5afe47635 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -440,6 +440,8 @@ StringXString PrintOptions_String[] = {
 StringXNumber GeneralOptions_Number[] = {
   { F|O, "AlphaBlending" , opt_general_alpha_blending , 1. ,
     "Enable alpha blending (transparency) in post-processing views" },
+  { F|O, "Antialiasing" , opt_general_antialiasing , 0. ,
+    "Use multisample antialiasing (will slow down rendering)" },
   { F|O, "ArrowHeadRadius" , opt_general_arrow_head_radius , 0.12 ,
     "Relative radius of arrow head" },
   { F|O, "ArrowStemLength" , opt_general_arrow_stem_length , 0.56 ,
diff --git a/Common/License.cpp b/Common/License.cpp
index 7f609a5632c13c972830101328252a68c8dc4102..daa50343c849fc4dae94d15775dbc830b7a774e8 100644
--- a/Common/License.cpp
+++ b/Common/License.cpp
@@ -1,4 +1,4 @@
-// $Id: License.cpp,v 1.7 2006-11-27 22:22:07 geuzaine Exp $
+// $Id: License.cpp,v 1.8 2007-01-18 09:12:44 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -27,7 +27,7 @@ void print_license(void)
   Msg(DIRECT, "		       Version 2, June 1991");
   Msg(DIRECT, " ");
   Msg(DIRECT, " Copyright (C) 1989, 1991 Free Software Foundation, Inc.");
-  Msg(DIRECT, "                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA");
+  Msg(DIRECT, " 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA");
   Msg(DIRECT, " Everyone is permitted to copy and distribute verbatim copies");
   Msg(DIRECT, " of this license document, but changing it is not allowed.");
   Msg(DIRECT, " ");
diff --git a/Common/Options.cpp b/Common/Options.cpp
index fbc01826a7fd389f80e95350001977a5ca61bc6c..19cf2ff1dcf45700051184467d1ab421a5a88c79 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.327 2007-01-17 08:14:22 geuzaine Exp $
+// $Id: Options.cpp,v 1.328 2007-01-18 09:12:44 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -3008,14 +3008,9 @@ double opt_general_double_buffer(OPT_ARGS_NUM)
     CTX.db = (int)val;
 #if defined(HAVE_FLTK)
     if(WID) {
-      if(CTX.db) {
-        Msg(INFO, "Setting OpenGL visual to double buffered");
-        WID->g_opengl_window->mode(FL_RGB | FL_DEPTH | FL_DOUBLE);
-      }
-      else {
-        Msg(INFO, "Setting OpenGL visual to single buffered");
-        WID->g_opengl_window->mode(FL_RGB | FL_DEPTH | FL_SINGLE);
-      }
+      int mode = FL_RGB | FL_DEPTH | (CTX.db ? FL_DOUBLE : FL_SINGLE);
+      if(CTX.antialiasing) mode |= FL_MULTISAMPLE;
+      WID->g_opengl_window->mode(mode);
     }
 #endif
   }
@@ -3026,6 +3021,25 @@ double opt_general_double_buffer(OPT_ARGS_NUM)
   return CTX.db;
 }
 
+double opt_general_antialiasing(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET) {
+    CTX.antialiasing = (int)val;
+#if defined(HAVE_FLTK)
+    if(WID) {
+      int mode = FL_RGB | FL_DEPTH | (CTX.db ? FL_DOUBLE : FL_SINGLE);
+      if(CTX.antialiasing) mode |= FL_MULTISAMPLE;
+      WID->g_opengl_window->mode(mode);
+    }
+#endif
+  }
+#if defined(HAVE_FLTK)
+  if(WID && (action & GMSH_GUI))
+    WID->gen_butt[12]->value(CTX.antialiasing);
+#endif
+  return CTX.antialiasing;
+}
+
 double opt_general_alpha_blending(OPT_ARGS_NUM)
 {
   if(action & GMSH_SET)
diff --git a/Common/Options.h b/Common/Options.h
index f20e8a7641ad7e9271554285adb09d13ba4e94e4..850b6562d48c035f2ebae2ba5e11b3fa4421e4a7 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -308,6 +308,7 @@ double opt_general_small_axes_position1(OPT_ARGS_NUM);
 double opt_general_small_axes_size(OPT_ARGS_NUM);
 double opt_general_quadric_subdivisions(OPT_ARGS_NUM);
 double opt_general_double_buffer(OPT_ARGS_NUM);
+double opt_general_antialiasing(OPT_ARGS_NUM);
 double opt_general_alpha_blending(OPT_ARGS_NUM);
 double opt_general_vector_type(OPT_ARGS_NUM);
 double opt_general_arrow_head_radius(OPT_ARGS_NUM);
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index f997f9d3bfcb0ea375940d4811e49e63c8a29e44..d8222ccaca68c20bae2a5d11b8c057a5ed5197bf 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.504 2007-01-17 08:14:22 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.505 2007-01-18 09:12:44 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -898,6 +898,8 @@ void general_options_ok_cb(CALLBACK_ARGS)
   opt_general_fast_redraw(0, GMSH_SET, WID->gen_butt[2]->value());
   if(opt_general_double_buffer(0, GMSH_GET, 0) != WID->gen_butt[3]->value())
     opt_general_double_buffer(0, GMSH_SET, WID->gen_butt[3]->value());
+  if(opt_general_antialiasing(0, GMSH_GET, 0) != WID->gen_butt[12]->value())
+    opt_general_antialiasing(0, GMSH_SET, WID->gen_butt[12]->value());
   opt_general_trackball(0, GMSH_SET, WID->gen_butt[5]->value());
   opt_general_terminal(0, GMSH_SET, WID->gen_butt[7]->value());
   double sessionrc = opt_general_session_save(0, GMSH_GET, 0);
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index e0a4db9d2b1e4d5ba9cf4becfe6982999b5e0d74..24a7ab3fe7e92856c8f2f50ad59dac1ba3115fe0 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.591 2007-01-17 08:14:23 geuzaine Exp $
+// $Id: GUI.cpp,v 1.592 2007-01-18 09:12:45 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -1443,12 +1443,10 @@ void GUI::create_graphic_window()
   g_window->resizable(resize_box);
 
   // opengl window
-
   g_opengl_window = new Opengl_Window(0, 0, width, glheight);
-  if(!opt_general_double_buffer(0, GMSH_GET, 0)) {
-    Msg(INFO, "Setting OpenGL visual to single buffered");
-    g_opengl_window->mode(FL_RGB | FL_DEPTH | FL_SINGLE);
-  }
+  int mode = FL_RGB | FL_DEPTH | (CTX.db ? FL_DOUBLE : FL_SINGLE);
+  if(CTX.antialiasing) mode |= FL_MULTISAMPLE;
+  g_opengl_window->mode(mode);
   g_opengl_window->end();
 
   g_window->position(CTX.gl_position[0], CTX.gl_position[1]);
@@ -1739,22 +1737,26 @@ void GUI::create_option_window()
       gen_butt[3]->type(FL_TOGGLE_BUTTON);
       gen_butt[3]->callback(general_options_ok_cb);
 
-      gen_butt[5] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 6 * BH, BW, BH, "Use trackball rotation mode instead of Euler angles");
+      gen_butt[12] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 6 * BH, BW, BH, "Enable antialiasing");
+      gen_butt[12]->type(FL_TOGGLE_BUTTON);
+      gen_butt[12]->callback(general_options_ok_cb);
+
+      gen_butt[5] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 7 * BH, BW, BH, "Use trackball rotation mode instead of Euler angles");
       gen_butt[5]->type(FL_TOGGLE_BUTTON);
       gen_butt[5]->callback(general_options_ok_cb);
 
-      gen_butt[15] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 7 * BH, BW, BH, "Rotate around pseudo center of mass");
+      gen_butt[15] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 8 * BH, BW, BH, "Rotate around pseudo center of mass");
       gen_butt[15]->type(FL_TOGGLE_BUTTON);
       gen_butt[15]->callback(general_options_ok_cb, (void*)"rotation_center");
 
-      gen_push_butt[0] = new Fl_Button(L + 2 * IW - 2 * WB, 2 * WB + 8 * BH, BB, BH, "Select");
+      gen_push_butt[0] = new Fl_Button(L + 2 * IW - 2 * WB, 2 * WB + 9 * BH, BB, BH, "Select");
       gen_push_butt[0]->callback(general_options_rotation_center_select_cb);
 
-      gen_value[8] = new Fl_Value_Input(L + 2 * WB, 2 * WB + 8 * BH, IW / 3, BH);
+      gen_value[8] = new Fl_Value_Input(L + 2 * WB, 2 * WB + 9 * BH, IW / 3, BH);
       gen_value[8]->callback(general_options_ok_cb, (void*)"rotation_center_coord");
-      gen_value[9] = new Fl_Value_Input(L + 2 * WB + IW / 3, 2 * WB + 8 * BH, IW / 3, BH);
+      gen_value[9] = new Fl_Value_Input(L + 2 * WB + IW / 3, 2 * WB + 9 * BH, IW / 3, BH);
       gen_value[9]->callback(general_options_ok_cb, (void*)"rotation_center_coord");
-      gen_value[10] = new Fl_Value_Input(L + 2 * WB + 2 * IW / 3, 2 * WB + 8 * BH, IW / 3, BH, "Rotation center");
+      gen_value[10] = new Fl_Value_Input(L + 2 * WB + 2 * IW / 3, 2 * WB + 9 * BH, IW / 3, BH, "Rotation center");
       gen_value[10]->align(FL_ALIGN_RIGHT);
       gen_value[10]->callback(general_options_ok_cb, (void*)"rotation_center_coord");
 
diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index 2be7850984e17dcf37367e939e1072a41b2c5526..826be7b6165f948309bb6c8c510973ae5dff3b16 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -1,4 +1,4 @@
-// $Id: MElement.cpp,v 1.27 2007-01-16 11:31:41 geuzaine Exp $
+// $Id: MElement.cpp,v 1.28 2007-01-18 09:12:45 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -454,7 +454,7 @@ void MTriangle::circumcenterXY(double *res) const
 
   d = 2. * (double)(y1 * (x2 - x3) + y2 * (x3 - x1) + y3 * (x1 - x2));
   if(d == 0.0) {
-    Msg(WARNING, "Colinear points in circum circle computation");
+    Msg(GERROR, "Colinear points in circum circle computation");
     res[0] = res[1] = -99999.;
     return ;
   }
diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp
index 05bb23acdbcec165adf81b78546288a471b82f2b..186f80019eabebed332fcbbdfe1ead2b1bfe5a91 100644
--- a/Mesh/meshGRegionDelaunayInsertion.cpp
+++ b/Mesh/meshGRegionDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGRegionDelaunayInsertion.cpp,v 1.12 2007-01-17 21:44:49 remacle Exp $
+// $Id: meshGRegionDelaunayInsertion.cpp,v 1.13 2007-01-18 09:12:45 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -448,7 +448,7 @@ void insertVerticesInRegion (GRegion *gr)
       else
 	{
 	  if(ITER++%5000 ==0)
-	    Msg(DEBUG,"%d points created -- Worst tet radius is %g",vSizes.size(),worst->getRadius());
+	    Msg(INFO,"%d points created -- Worst tet radius is %g",vSizes.size(),worst->getRadius());
 	  if (worst->getRadius() < 1) break;
 	  double center[3];
 	  worst->tet()->circumcenter(center);
diff --git a/README b/README
index aff3eadc7b61632dda1c999b8da31a6e13857de3..13acc979b5bf23a80be2ec5ea7735d2d37d4b9dc 100644
--- a/README
+++ b/README
@@ -25,8 +25,9 @@ For a description of all other configuration options, type
 
 ./configure --help
 
-Gmsh is distributed under the terms of the GNU General Public
-License. See doc/LICENSE and doc/CREDITS for more information.
+Gmsh is distributed under the terms of the GNU General Public License,
+with an exception to allow for easier linking with external mesh
+generators. See doc/LICENSE and doc/CREDITS for more information.
 
 See the doc/ and tutorial/ directories for documentation. The
 reference manual is located in doc/texinfo/.
diff --git a/doc/CREDITS b/doc/CREDITS
index ede47a5913ffeac1f2e8cc249390ce12cad60506..a782b64205b5fb3c6c92411488d5835c21e5038e 100644
--- a/doc/CREDITS
+++ b/doc/CREDITS
@@ -1,9 +1,9 @@
-$Id: CREDITS,v 1.41 2006-12-03 17:57:43 geuzaine Exp $
+$Id: CREDITS,v 1.42 2007-01-18 09:12:45 geuzaine Exp $
 
              Gmsh is copyright (C) 1997-2007
 
                    Christophe Geuzaine
-             <christophe.geuzaine at case.edu>
+                 <cgeuzaine at ulg.ac.be>
 
                            and
 
diff --git a/doc/LICENSE b/doc/LICENSE
index 5b6e7c66c276e7610d4a73c70ec1a1f7c1003259..80a5c5b74f75e9e9937ab12792cbd3f6e7573c5b 100644
--- a/doc/LICENSE
+++ b/doc/LICENSE
@@ -1,8 +1,29 @@
+Gmsh is provided under the terms of the GNU General Public License
+(GPL) with the following exception:
+
+  The copyright holders of Gmsh give you permission to combine Gmsh
+  with with code included in the standard release of Triangle (written
+  by Jonathan Shewchuk) and TetGen (written by Hang Si) under their
+  respective licenses. You may copy and distribute such a system
+  following the terms of the GNU GPL for Gmsh and the licenses of the
+  other code concerned, provided that you include the source code of
+  that other code when and as the GNU GPL requires distribution of
+  source code.
+
+  Note that people who make modified versions of Gmsh are not
+  obligated to grant this special exception for their modified
+  versions; it is their choice whether to do so. The GNU General
+  Public License gives permission to release a modified version
+  without this exception; this exception also makes it possible to
+  release a modified version which carries forward this exception.
+
+End of exception.
+
 		    GNU GENERAL PUBLIC LICENSE
 		       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
diff --git a/doc/TODO b/doc/TODO
index b87b045d5e3328efb4781609267bee76e860da59..9e93ab9458ae1dd8c50056ddaa2afc9ff9d21057 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,4 +1,4 @@
-$Id: TODO,v 1.36 2007-01-17 08:14:24 geuzaine Exp $
+$Id: TODO,v 1.37 2007-01-18 09:12:45 geuzaine Exp $
 
 ********************************************************************
 
@@ -70,19 +70,6 @@ certain number of subdivisions)
 
 ********************************************************************
 
-pfgshield-freebsd@yahoo.com:
-
-On the FreeBSD port, unfortunately, the licensing issues prohibit us from
-redistributing gmsh with tetgen and triangle. Of course this is a problem
-derived from the license in both utilities and not really gmsh's fault. 
-One thing could be done to alleviate the problem though: Adding exceptions to
-the GPL for linking with these libraries as explained in the GPL FAQ would
-permit people to make distributions of the package and libraries, although
-without charging any fee with it.
-http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
-
-********************************************************************
-
 add option to cutmesh to cap the mesh instead of displaying "whole"
 elements
 
diff --git a/doc/gmsh.1 b/doc/gmsh.1
index e3709e38b4eb716c0f162285e849af76268f1ab5..025f32b435a3f6471e34e7b591088d1d27bb8e88 100644
--- a/doc/gmsh.1
+++ b/doc/gmsh.1
@@ -1,4 +1,4 @@
-.\" $Id: gmsh.1,v 1.75 2007-01-17 08:14:24 geuzaine Exp $
+.\" $Id: gmsh.1,v 1.76 2007-01-18 09:12:45 geuzaine Exp $
 .TH Gmsh 1 "09 March 2006" "Gmsh 2.0" "Gmsh Manual Pages"
 .UC 4
 .\" ********************************************************************
@@ -52,7 +52,7 @@ specify mesh output file name.
 set output mesh format (msh, unv, gref, stl, p3d).
 .TP 4
 .B \-algo string
-select mesh algorithm (iso, tri, netgen, tetgen).
+select mesh algorithm (iso, netgen, tetgen).
 .TP 4
 .B \-smooth int
 set number of mesh smoothing steps.
diff --git a/doc/gmsh.html b/doc/gmsh.html
index c3bbaa734200558fad324f03e4a12b7ec563f4bb..2f7980a480e6ce90d6ce7f29f8a97ff6260d51df 100644
--- a/doc/gmsh.html
+++ b/doc/gmsh.html
@@ -25,7 +25,7 @@ generator with built-in pre- and post-processing facilities</h1>
 <p>
 <h3 align="center">Christophe Geuzaine and Jean-François Remacle</h3>
 <p>
-<h3 align=center>Version 2.0, ? 2006</h3>
+<h3 align=center>Version 2.0, January XX 2006</h3>
 <p>
 <center>
   <a href="#Description">Description</a> |
@@ -122,7 +122,7 @@ archives.
 <ul>
 <li><a href="/gmsh/bin/Windows/gmsh-2.0.0-Windows.zip">Windows (95/98/NT/2000/XP)</a>
 <li><a href="/gmsh/bin/Linux/gmsh-2.0.0-Linux.tgz">Linux (i386, glibc 2.3 and above)</a> 
-<li><a href="/gmsh/bin/MacOSX/gmsh-2.0.0-MacOSX.tgz">Mac OS X (10.3.9 and above)</a>
+<li><a href="/gmsh/bin/MacOSX/gmsh-2.0.0-MacOSX.tgz">Mac OS X (Intel, 10.4.x)</a>
 <li><a href="/gmsh/src/gmsh-2.0.0-source.tgz">Source (all platforms)</a>
     <a href="#build-footnote" name="build-footmark"><sup>2</sup></a>
 </ul>
@@ -136,9 +136,9 @@ work (books, articles, reports, etc.).
 
 <h2><a name="Authors"></a>Authors and credits</h2>
 
-Gmsh is developed by Christophe Geuzaine (currently
-with <a href="http://www.case.edu/">Case Western Reserve
-University</a>) and Jean-François Remacle (currently with
+Gmsh is developed by Christophe Geuzaine (currently with
+the <a href="http://www.ulg.ac.be/">University of Li&egrave;ge</a>)
+and Jean-François Remacle (currently with
 the <a href="http://www.ucl.ac.be/">Catholic University of
 Louvain</a>).  The <a href="doc/CREDITS">CREDITS file</a> has more
 information.
@@ -251,23 +251,13 @@ thumbnail"></a>
 
 <h2><a name="Links"></a>Links</h2>
 
-Check out <a href="/getdp/">GetDP</a>, a scientific computation
-software for the numerical solution of integro-differential equations,
-using finite element and integral type methods.
-
-<!--
-<p>
-The mesh database that will be used by Gmsh in the future has its
-own webpage: take a look at <a href="http://www.scorec.rpi.edu/AOMD/">AOMD,
-the Algorithm Oriented Mesh Database</a>.
--->
-
-<p>
-Gmsh can use Jonathan Shewchuk's <a
-href="http://www-2.cs.cmu.edu/~quake/triangle.html">Triangle</a> as an
-alternative 2D mesh generator and Joachim Sch&ouml;berl's
-<a href="http://www.hpfem.jku.at/netgen/">Netgen</a> as an alternative
-3D mesh generator/optimizer.
+Gmsh can be linked
+with <a href="http://www.opencascade.org">OpenCascade</a> to provide
+support for STEP, IGES and BREP files. Gmsh can also be linked with several
+external mesh generators (currently 
+<!-- a href="http://www-2.cs.cmu.edu/~quake/triangle.html">Triangle</a> from Jonathan Shewchuk,--> 
+<a href="http://www.hpfem.jku.at/netgen/">Netgen</a> from Joachim Sch&ouml;berl and 
+<a href="http://tetgen.berlios.de/index.html">TetGen</a> from Hang Si).
 
 <p>
 Gmsh's high quality vector PostScript and PDF output is produced by <a
@@ -278,6 +268,12 @@ Gmsh's cross-platform graphical user interface is based on <a
 href="http://www.fltk.org/">FLTK</a> and <a
 href="http://www.opengl.org/">OpenGL</a>.
 
+<p>
+Make sure to also check out <a href="/getdp/">GetDP</a>, a rather
+general finite element code that can be used right from Gmsh's
+graphical user interface.
+
+
 <p>
 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
 <input type="hidden" name="cmd" value="_xclick">
diff --git a/doc/texinfo/command_line.texi b/doc/texinfo/command_line.texi
index afe17a5ca8cf7d36ce9c99d7d38c19f01ffd4caa..bdb95ef951f78c5662a65d45ef6e36d7b0324c3d 100644
--- a/doc/texinfo/command_line.texi
+++ b/doc/texinfo/command_line.texi
@@ -21,7 +21,7 @@ Specify mesh output file name
 @item -format string
 Set output mesh format (msh, unv, bdf, mesh, stl, vrml)
 @item -algo string
-Select mesh algorithm (iso, tri, netgen, tetgen)
+Select mesh algorithm (iso, netgen, tetgen)
 @item -smooth int
 Set number of mesh smoothing steps
 @item -optimize
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index f68fd42028336b1f02a714b967f66a6553ac4d4d..d921f4ae0978d0d6a007debf331ed7d5e3b0e28a 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -1,5 +1,5 @@
 \input texinfo.tex @c -*-texinfo-*-
-@c $Id: gmsh.texi,v 1.225 2007-01-12 08:10:32 geuzaine Exp $
+@c $Id: gmsh.texi,v 1.226 2007-01-18 09:12:45 geuzaine Exp $
 @c
 @c Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 @c
@@ -438,7 +438,8 @@ parameterize these geometries. Gmsh's scripting language enables all
 commands and command arguments to depend on previous calculations (see
 @ref{Expressions}, and @ref{Geometry commands});
 @item
-import complex models in industry-standard formats like STEP or IGES;
+import complex models in industry-standard formats like STEP or IGES
+(when Gmsh is built with OpenCascade support);
 @item
 generate 1D, 2D and 3D simplicial (i.e., using line segments, triangles and
 tetrahedra) finite element meshes. The performance of the 1D and 2D
@@ -499,7 +500,8 @@ complex models;
 @item
 there is no support for Nurbs and only very limited support for trimmed
 surfaces in Gmsh's scripting language (however you can import STEP or
-IGES models with such features);
+IGES models with such features when Gmsh is built with OpenCascade
+support);
 @item
 Gmsh is not primarily a structured mesh generator: no automatic
 quadrilateral or hexahedral meshing algorithm is provided. If you want