diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp
index 41f7bb7cb2e3096b9f35b41e318102a73c699a45..3e49dfa02fc7ea8bc9f8112cfbd38dd6ed744928 100644
--- a/Geo/GEdge.cpp
+++ b/Geo/GEdge.cpp
@@ -1,4 +1,4 @@
-// $Id: GEdge.cpp,v 1.26 2007-05-04 08:56:17 remacle Exp $
+// $Id: GEdge.cpp,v 1.27 2007-05-07 11:40:02 remacle Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -158,7 +158,6 @@ double GEdge::curvature(double par) const
   return norm(d);
 }
 
-bool GEdge::is_mesh_degenereted() const
-{
+bool GEdge::is_mesh_degenerated() const {
   return (v0==v1 && mesh_vertices.size()<2);
 }
diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index 8d5df444da2a7620ea2029a2af390a8e41c929d6..6118dfdd276afe143af5d1fb36fec46aee3a1a9f 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -45,7 +45,7 @@ class GEdge : public GEntity {
   void addFace(GFace *f);
   void delFace(GFace *f);
   /* start==end and no more than 2 segments */
-  bool is_mesh_degenereted() const;
+  bool is_mesh_degenerated() const;
 
   virtual int dim() const {return 1;}
   virtual bool periodic(int dim=0) const = 0;
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index c2ae292e8433eb26f38dbddd64e420682f5147e7..aa3fb16571286ef8003ae96bc59fb4dd4b8f316d 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGFace.cpp,v 1.77 2007-05-05 08:15:55 geuzaine Exp $
+// $Id: meshGFace.cpp,v 1.78 2007-05-07 11:40:02 remacle Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -626,10 +626,11 @@ bool gmsh2DMeshGenerator ( GFace *gf , bool debug = true)
   while(it != edges.end())
     {
       if ((*it)->isSeam(gf))return false;
-
-      all_vertices.insert ( (*it)->mesh_vertices.begin() , (*it)->mesh_vertices.end() );
-      all_vertices.insert ( (*it)->getBeginVertex()->mesh_vertices.begin() , (*it)->getBeginVertex()->mesh_vertices.end() );
-      all_vertices.insert ( (*it)->getEndVertex()->mesh_vertices.begin() , (*it)->getEndVertex()->mesh_vertices.end() );
+      if(!(*it)->is_mesh_degenerated()){
+        all_vertices.insert ( (*it)->mesh_vertices.begin() , (*it)->mesh_vertices.end() );
+        all_vertices.insert ( (*it)->getBeginVertex()->mesh_vertices.begin() , (*it)->getBeginVertex()->mesh_vertices.end() );
+        all_vertices.insert ( (*it)->getEndVertex()->mesh_vertices.begin() , (*it)->getEndVertex()->mesh_vertices.end() );
+      }
       ++it;
     }
 
@@ -814,11 +815,13 @@ bool gmsh2DMeshGenerator ( GFace *gf , bool debug = true)
   it = edges.begin();
   while(it != edges.end())
     {
+    if(!(*it)->is_mesh_degenerated()){
       if (!recover_medge ( m, *it))
 	{
 	  Msg(GERROR,"Face not meshed");
 	  return false;
 	}
+    }
       ++it;
     }
   //  Msg(INFO,"Boundary Edges recovered for surface %d",gf->tag());