diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index ea039c6b25d1f6df251d2bc389062817180d2887..8cece1f843f8f1042d6df1cf2e4f7aff4547b0b7 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -62,7 +62,7 @@ void Print_Usage(const char *name)
   Msg::Direct("  -bin                  Use binary format when available");  
   Msg::Direct("  -parametric           Save vertices with their parametric coordinates");  
   Msg::Direct("  -numsubedges          Set the number of subdivisions when displaying high order elements");  
-  Msg::Direct("  -algo string          Select mesh algorithm (de, del2d, frontal, iso, netgen, tetgen)");
+  Msg::Direct("  -algo string          Select mesh algorithm (iso, frontal, del2d, del3d, netgen)");
   Msg::Direct("  -smooth int           Set number of mesh smoothing steps");
   Msg::Direct("  -optimize[_netgen]    Optimize quality of tetrahedral elements");
   Msg::Direct("  -order int            Set mesh order (1, ..., 5)");
diff --git a/Geo/GFace.h b/Geo/GFace.h
index e0975d6454bc3d8056d3368335b6abc6c332196d..e82ffd58c18044fc115019cb3aba42d498fba6ed 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -79,6 +79,7 @@ class GFace : public GEntity
 
   // edges that bound the face
   virtual std::list<GEdge*> edges() const { return l_edges; }
+  virtual std::list<int> edgeOrientations() const { return l_dirs; }
 
   // edges that are embedded in the face
   virtual std::list<GEdge*> embeddedEdges() const { return embedded_edges; }
diff --git a/Geo/GRegion.h b/Geo/GRegion.h
index 3bdf4203c91e49d77cd7a068d4178304f456ac60..e97b5057fe58abf059562feb9ab3cbd6835f92ad 100644
--- a/Geo/GRegion.h
+++ b/Geo/GRegion.h
@@ -36,7 +36,8 @@ class GRegion : public GEntity {
 
   // get/set faces that bound the region
   virtual std::list<GFace*> faces() const{ return l_faces; }
-  void set(std::list<GFace*> &f) { l_faces= f; }
+  virtual std::list<int> faceOrientations() const{ return l_dirs; }
+  void set(std::list<GFace*> &f) { l_faces = f; }
 
   // edges that bound the region
   virtual std::list<GEdge*> edges() const;
diff --git a/doc/TODO.txt b/doc/TODO.txt
index e1e45f661f19862a7018496eb4dd93f032995a68..4da9d902917d7d70bece79956fc2b59aa809e0fa 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -1,8 +1,4 @@
-$Id: TODO.txt,v 1.15 2009-01-18 11:44:36 geuzaine Exp $
-
-********************************************************************
-
-cleanup API for orientation of edges/faces
+$Id: TODO.txt,v 1.16 2009-01-18 18:51:48 geuzaine Exp $
 
 ********************************************************************
 
diff --git a/doc/gmsh.1 b/doc/gmsh.1
index 095e07413018be08aa2872c089bdfba0a5931dcc..d8ba0f8fa09438053c3b0d51cf0fb7aba84ec217 100644
--- a/doc/gmsh.1
+++ b/doc/gmsh.1
@@ -1,5 +1,4 @@
-.\" $Id: gmsh.1,v 1.84 2008-12-17 21:14:48 geuzaine Exp $
-.TH Gmsh 1 "23 February 2008" "Gmsh 2.2" "Gmsh Manual Pages"
+.TH Gmsh 1 "18 january 2009" "Gmsh 2.3" "Gmsh Manual Pages"
 .UC 4
 .\" ********************************************************************
 .SH NAME
@@ -58,7 +57,7 @@ set output mesh format (msh, msh1, msh2, unv, vrml, stl, mesh, bdf, p3d, cgns, m
 use binary format when available.
 .TP 4
 .B \-algo string
-select mesh algorithm (iso, netgen, tetgen).
+select mesh algorithm (iso, frontal, del2d, del3d, netgen).
 .TP 4
 .B \-smooth int
 set number of mesh smoothing steps.
@@ -86,10 +85,6 @@ set random perturbation factor.
 .TP 4
 .B \-bgm file
 load the post-processing view in file as the current background mesh.
-.TP 4
-.B \-constrain
-constrain the background mesh with the characteristic lengths of the
-model.
 .\" ********************************************************************
 .SH POST-PROCESSING OPTIONS
 .TP 4
diff --git a/doc/texinfo/command_line.texi b/doc/texinfo/command_line.texi
index 48c274bcd80e1885b4c603467bb4404a9f9a85dc..fd891e73e239480b8eab95a412d3c599b7958c8e 100644
--- a/doc/texinfo/command_line.texi
+++ b/doc/texinfo/command_line.texi
@@ -25,7 +25,7 @@ Set output mesh format (msh, msh1, msh2, unv, vrml, stl, mesh, bdf, p3d, cgns, m
 @item -bin
 Use binary format when available
 @item -algo string
-Select mesh algorithm (iso, netgen, tetgen)
+Select mesh algorithm (iso, frontal, del2d, del3d, netgen)
 @item -smooth int
 Set number of mesh smoothing steps
 @item -optimize[_netgen]
@@ -44,8 +44,6 @@ Compute characteristic lengths from curvatures
 Set random perturbation factor
 @item -bgm file
 Load background mesh from file
-@item -constrain
-Constrain background mesh with characteristic lengths
 @end ftable
 
 @sp 1