diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp
index 91d4dd35d01d6ab9c7dfd12e220c9de1ba7508e1..c60735853b45a6975e58a0ea2ba3229d8e0c3fcf 100644
--- a/Geo/Print_Geo.cpp
+++ b/Geo/Print_Geo.cpp
@@ -1,4 +1,4 @@
-// $Id: Print_Geo.cpp,v 1.36 2005-02-20 07:11:04 geuzaine Exp $
+// $Id: Print_Geo.cpp,v 1.37 2005-03-14 18:12:29 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -335,6 +335,7 @@ void Print_Discrete_Surface(void *a, void *b)
     norms.add(q->V[0]->Pos.X, q->V[0]->Pos.Y, q->V[0]->Pos.Z, n[0], n[1], n[2]);
     norms.add(q->V[1]->Pos.X, q->V[1]->Pos.Y, q->V[1]->Pos.Z, n[0], n[1], n[2]);
     norms.add(q->V[2]->Pos.X, q->V[2]->Pos.Y, q->V[2]->Pos.Z, n[0], n[1], n[2]);
+    norms.add(q->V[3]->Pos.X, q->V[3]->Pos.Y, q->V[3]->Pos.Z, n[0], n[1], n[2]);
   }
 
   if(!List_Nbr(s->Generatrices))
diff --git a/Mesh/DiscreteSurface.cpp b/Mesh/DiscreteSurface.cpp
index 1f81659468cfa15516b4eceb44eec7f24dafbab6..3f510bc311f6781d22232f8b1999b961c56534ed 100644
--- a/Mesh/DiscreteSurface.cpp
+++ b/Mesh/DiscreteSurface.cpp
@@ -1,4 +1,4 @@
-// $Id: DiscreteSurface.cpp,v 1.5 2005-02-25 01:45:41 geuzaine Exp $
+// $Id: DiscreteSurface.cpp,v 1.6 2005-03-14 18:12:29 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -173,6 +173,17 @@ void POLY_rep_To_Mesh(POLY_rep *prep, Surface *s)
       simp->iEnt = s->Num;
       Tree_Add(s->Simplexes, &simp);
     }
+    else if (points[0] == 4){
+      Vertex *v1 = verts[(int)points[1]];
+      Vertex *v2 = verts[(int)points[2]];
+      Vertex *v3 = verts[(int)points[3]];
+      Vertex *v4 = verts[(int)points[4]];
+      SetLC(v1, v2, v3, CTX.mesh.lc_factor);
+      v4->lc = v1->lc;
+      Quadrangle *quad = Create_Quadrangle(v1, v2, v3, v4);
+      quad->iEnt = s->Num;
+      Tree_Add(s->Quadrangles, &quad);
+    }
   }
   
   Tree_Delete(VertexBound);
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index 520b4259afb0ac90f9ebbbb3b22e30bb2625890a..e91d432e2e9d8f899c08801887dc58067b91af11 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.177 2005-03-13 20:43:36 geuzaine Exp $
+@c $Id: gmsh.texi,v 1.178 2005-03-14 18:12:29 geuzaine Exp $
 @c
 @c Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 @c
@@ -1609,8 +1609,8 @@ Discrete Surface (1) = @{4, 2@}
 @end example
 
 The polygonal discretization is used for the graphical representation of the
-surface and can also be used as the actual two-dimensional mesh of the
-surface if all the polygons are triangles.
+surface and is also used as the actual two-dimensional mesh of the surface
+if all the polygons are triangles or quadrangles.
 
 @c todo:
 @c @item Trimmed Surface ( @var{expression} ) = @{ @var{expression}, @{ @var{expression-list} @} @};