diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index cf1e2072ba539d775750e4f4d9810b63f2374967..ad678591bbc191c81139d4c0b5a17ac8d7f14c7a 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -6,21 +6,22 @@
 #ifndef _GEDGE_H_
 #define _GEDGE_H_
 
+#include <list>
+#include <string>
+#include <vector>
+#include <set>
 #include <stdio.h>
 #include "GEntity.h"
 #include "GVertex.h"
 #include "SVector3.h"
 #include "SPoint3.h"
 #include "SPoint2.h"
-#include "MLine.h"
 
 class MElement;
 class MLine;
 class ExtrudeParams;
 class GEdgeCompound;
 
-#include <set>
-
 // A model edge.
 class GEdge : public GEntity {
  private:
diff --git a/Geo/GEdgeCompound.cpp b/Geo/GEdgeCompound.cpp
index a7130f6dda216f5891512a858711c68afc29daad..e2308abfa50b47c3a046a6ddc1b63a0ade0b167a 100644
--- a/Geo/GEdgeCompound.cpp
+++ b/Geo/GEdgeCompound.cpp
@@ -2,6 +2,10 @@
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
+//
+// Contributor(s):
+//   Emilie Marchandise
+//
 
 #include "GmshConfig.h"
 #include "GEdgeCompound.h"
diff --git a/Geo/GEdgeCompound.h b/Geo/GEdgeCompound.h
index c0444128d02dd887dc07e7728c40e6ba02f8b1c4..127d1dc7e57b772174ab38170d372a2e39d6a3fc 100644
--- a/Geo/GEdgeCompound.h
+++ b/Geo/GEdgeCompound.h
@@ -18,13 +18,11 @@ class GEdgeCompound : public GEdge {
   std::vector<GEdge*> _compound;
   std::vector<int> _orientation;
   std::vector<double> _pars;
-  void parametrize() ;
-  void orderEdges()  ;
+  void parametrize();
+  void orderEdges();
   
-public:
-  void getLocalParameter ( const double &t,
-			   int &iEdge,
-			   double & tLoc) const;
+ public:
+  void getLocalParameter(const double &t, int &iEdge, double & tLoc) const;
   GEdgeCompound(GModel *m, int tag, std::vector<GEdge*> &compound);
   virtual ~GEdgeCompound();
   Range<double> parBounds(int i) const;
diff --git a/Geo/GEntity.h b/Geo/GEntity.h
index dfa1a7112ccf18fe1ffe5e0397bfba7280f4c62d..59835925ecea85a7393533db2a524b001b07ca4f 100644
--- a/Geo/GEntity.h
+++ b/Geo/GEntity.h
@@ -7,9 +7,8 @@
 #define _GENTITY_H_
 
 #include <list>
-#include <vector>
 #include <string>
-#include <map>
+#include <vector>
 #include "Range.h"
 #include "SPoint3.h"
 #include "SBoundingBox3d.h"
diff --git a/Geo/GFace.h b/Geo/GFace.h
index 6ed4fea3753dbe629a3ecc96094bc4d9de654283..b1033498a254a1ab97b50b1cfb62f94c2f008624 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -6,6 +6,9 @@
 #ifndef _GFACE_H_
 #define _GFACE_H_
 
+#include <list>
+#include <string>
+#include <vector>
 #include "GEntity.h"
 #include "GPoint.h"
 #include "GEdgeLoop.h"
diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h
index 44b3fa873429d493cfd95137d89e169e3f5bf024..d4ce6647aaa219e0a9fdd41e4eab80d68c1b6a50 100644
--- a/Geo/GFaceCompound.h
+++ b/Geo/GFaceCompound.h
@@ -6,6 +6,8 @@
 #ifndef _GFACE_COMPOUND_H_
 #define _GFACE_COMPOUND_H_
 
+#include <list>
+#include <map>
 #include "GFace.h"
 #include "GEdge.h"
 #include "GEdgeCompound.h"
diff --git a/Geo/GModel.h b/Geo/GModel.h
index a5c4fb2cff93d0a20cf471a133f09329779df8d3..24d72df6b1c3664b7cfb76e82b1441dfde962add 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -7,8 +7,10 @@
 #define _GMODEL_H_
 
 #include <algorithm>
+#include <vector>
 #include <set>
 #include <map>
+#include <string>
 #include "GVertex.h"
 #include "GEdge.h"
 #include "GFace.h"
diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp
index fb4aa77443e6e384942fd68d7e3985211888641f..40f2c3256f13ed0ef607a7c3586a97f2125c22a4 100644
--- a/Geo/GModelIO_Geo.cpp
+++ b/Geo/GModelIO_Geo.cpp
@@ -42,8 +42,6 @@ int GModel::readGEO(const std::string &name)
 
 int GModel::importGEOInternals()
 {
-
-  //printf("Dans import GEO internals \n");
   if(Tree_Nbr(_geo_internals->Points)) {
     List_T *points = Tree2List(_geo_internals->Points);
     for(int i = 0; i < List_Nbr(points); i++){
@@ -183,15 +181,14 @@ int GModel::importGEOInternals()
   Msg::Debug("%d Faces", faces.size());
   Msg::Debug("%d Regions", regions.size());
 
-  for ( std::set<GVertex*, MVertexLessThanLexicographic>::iterator it  = vertices.begin(); it != vertices.end(); it++){
-    printf("WARNING:import GEO vert of Type: %s \n", (*it)->getTypeString().c_str());
-   }
-  for ( std::set<GEdge*, MVertexLessThanLexicographic>::iterator it  = edges.begin(); it != edges.end(); it++){
-    printf("WARNING:import GEO edge of Type: %s \n", (*it)->getTypeString().c_str());
-  }
-  for ( std::set<GFace*, MVertexLessThanLexicographic>::iterator it  = faces.begin(); it != faces.end(); it++){
-    printf("WARNING:import GEO face of Type:  %s \n", (*it)->getTypeString().c_str());
-  }
+  for(viter it = firstVertex(); it != lastVertex(); it++)
+    Msg::Debug("Imported GEO vert of Type: %s", (*it)->getTypeString().c_str());
+  for(eiter it = firstEdge(); it != lastEdge(); it++)
+    Msg::Debug("Imported GEO edge of Type: %s", (*it)->getTypeString().c_str());
+  for(fiter it = firstFace(); it != lastFace(); it++)
+    Msg::Debug("Imported GEO face of Type: %s", (*it)->getTypeString().c_str());
+  for(riter it = firstRegion(); it != lastRegion(); it++)
+    Msg::Debug("Imported GEO region of Type: %s", (*it)->getTypeString().c_str());
 
   return 1;
 }
diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp
index 6728d8fb545f63b37f5e330e427f6b487706a3b1..9513dd9dc36131b36961aa3d18b8c62fe32cc771 100644
--- a/Geo/GModelIO_Mesh.cpp
+++ b/Geo/GModelIO_Mesh.cpp
@@ -18,8 +18,6 @@
 #include "MPrism.h"
 #include "MPyramid.h"
 #include "SBoundingBox3d.h"
-#include "discreteRegion.h"
-#include "discreteFace.h"
 #include "StringUtils.h"
 #include "GmshMessage.h"
 #include "discreteVertex.h"
@@ -126,7 +124,8 @@ void GModel::createTopologyFromMSH(){
   std::vector<discreteFace*> faces;
   std::vector<discreteRegion*> regions;
 
-  for (std::vector<GEntity*>::iterator entity = entities.begin(); entity != entities.end(); entity++) {
+  for (std::vector<GEntity*>::iterator entity = entities.begin(); 
+       entity != entities.end(); entity++) {
     switch ((*entity)->dim()) {
     case 0:
       vertices.push_back((discreteVertex*) *entity);
@@ -148,18 +147,21 @@ void GModel::createTopologyFromMSH(){
   //printf("regions size =%d \n", regions.size());
 
   int tag = 100;
-  for (std::vector<discreteEdge*>::iterator edge = edges.begin(); edge != edges.end(); edge++){
+  for (std::vector<discreteEdge*>::iterator edge = edges.begin(); 
+       edge != edges.end(); edge++){
     if (tag < (*edge)->tag() ) tag = (*edge)->tag() + 1;
   }
 
  //For each discreteEdge, build a new GEdgeCompound
-  for (std::vector<discreteEdge*>::iterator edge = edges.begin(); edge != edges.end(); edge++){
+  for (std::vector<discreteEdge*>::iterator edge = edges.begin(); 
+       edge != edges.end(); edge++){
 
     //printf("createTopology: %d  EDGES, of size=%d\n",(*edge)->tag(), (*edge)->lines.size());
 
     //create a map with the tags of the mesh vertices
     std::map<int, GVertex*> myMap;
-    for (std::vector<MLine*>::const_iterator it = (*edge)->lines.begin() ; it != (*edge)->lines.end() ; ++it){  
+    for (std::vector<MLine*>::const_iterator it = (*edge)->lines.begin();
+         it != (*edge)->lines.end() ; ++it){  
       int tagB = (*it)->getVertex(0)->getNum();
       int tagE = (*it)->getVertex(1)->getNum();
 
@@ -186,7 +188,8 @@ void GModel::createTopologyFromMSH(){
     //create a vector composed of plenty of discreteEdges from the Mlines of the original discreteVertex
     std::vector<GEdge*> e_compound;
 
-   for (std::vector<MLine*>::const_iterator it = (*edge)->lines.begin() ; it != (*edge)->lines.end() ; ++it){  
+   for (std::vector<MLine*>::const_iterator it = (*edge)->lines.begin();
+        it != (*edge)->lines.end(); ++it){  
      //printf("MLine =%d %d \n", (*it)->getVertex(0)->getNum(), (*it)->getVertex(1)->getNum());
 
       int tagB = (*it)->getVertex(0)->getNum();
diff --git a/Geo/GRegion.h b/Geo/GRegion.h
index 9aeb4ccd38f46b6a665b73e7a3fdc68ac7fc3d64..f74cb92dffd17820b032e5d9c87d3fa9a855647d 100644
--- a/Geo/GRegion.h
+++ b/Geo/GRegion.h
@@ -6,6 +6,9 @@
 #ifndef _GREGION_H_
 #define _GREGION_H_
 
+#include <list>
+#include <string>
+#include <vector>
 #include <stdio.h>
 #include "GEntity.h"
 
diff --git a/Geo/GVertex.h b/Geo/GVertex.h
index 65cd4ddf679a7ad3bac5982c8f1de49c9f6512d3..c1b6cc76d378c7b5157cfca6b4770ebf59da2ab5 100644
--- a/Geo/GVertex.h
+++ b/Geo/GVertex.h
@@ -6,6 +6,9 @@
 #ifndef _GVERTEX_H_
 #define _GVERTEX_H_
 
+#include <list>
+#include <string>
+#include <vector>
 #include <stdio.h>
 #include "GEntity.h"
 #include "GPoint.h"
diff --git a/Geo/MVertex.h b/Geo/MVertex.h
index e73821e730a50459cf61d2ed26148d5777d57268..3873f65405abd2d6a0be50c271645584b597c26d 100644
--- a/Geo/MVertex.h
+++ b/Geo/MVertex.h
@@ -70,7 +70,8 @@ class MVertex{
   inline void setPolynomialOrder(char order){ _order = order; }
 
   // get/set the coordinates
-  inline double x() const { return _x; }  inline double y() const { return _y; }
+  inline double x() const { return _x; }
+  inline double y() const { return _y; }
   inline double z() const { return _z; }
   inline double & x() { return _x; }
   inline double & y() { return _y; }
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index bba8021fd6d75fb2cd8a0ebd7f1d28b0a40a1980..b0de7f0384c897fb01f530169d5df8aa97fd9daf 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -278,7 +278,7 @@ void meshGEdge::operator() (GEdge *ge)
   else if(ge->meshAttributes.Method == MESH_TRANSFINITE){
     a = Integration(ge, t_begin, t_end, F_Transfinite, Points, 1.e-8);
     N = ge->meshAttributes.nbPointsTransfinite;
-    printf("Mesh transfinite N=%d, a=%g \n", N, a);
+    Msg::Debug("Meshing transfinite N=%d, a=%g", N, a);
   }
   else{
     if(CTX::instance()->mesh.lcIntegrationPrecision > 1.e-8){
@@ -293,7 +293,6 @@ void meshGEdge::operator() (GEdge *ge)
 		      CTX::instance()->mesh.lcIntegrationPrecision);
     }
     N = std::max(ge->minimumMeshSegments() + 1, (int)(a + 1.));
-    //printf("Mesh NOT transfinite N=%d, a=%g \n", N, a);
   }
 
   // if the curve is periodic and if the begin vertex is identical to
@@ -305,7 +304,7 @@ void meshGEdge::operator() (GEdge *ge)
   if(ge->getBeginVertex() == ge->getEndVertex() && 
      ge->getBeginVertex()->edges().size() == 1){
     end_p = beg_p = ge->point(t_begin);
-    printf("Meshing periodic closed curve \n");
+    Msg::Debug("Meshing periodic closed curve");
   }
   else{
     MVertex *v0 = ge->getBeginVertex()->mesh_vertices[0];
@@ -346,10 +345,12 @@ void meshGEdge::operator() (GEdge *ge)
   }
 
   for(unsigned int i = 0; i < ge->mesh_vertices.size() + 1; i++){
-    MVertex *v0 = (i == 0) ?       ge->getBeginVertex()->mesh_vertices[0] : ge->mesh_vertices[i - 1];
-    MVertex *v1 = (i == ge->mesh_vertices.size()) ?       ge->getEndVertex()->mesh_vertices[0] : ge->mesh_vertices[i];
+    MVertex *v0 = (i == 0) ?
+      ge->getBeginVertex()->mesh_vertices[0] : ge->mesh_vertices[i - 1];
+    MVertex *v1 = (i == ge->mesh_vertices.size()) ?
+      ge->getEndVertex()->mesh_vertices[0] : ge->mesh_vertices[i];
     ge->lines.push_back(new MLine(v0, v1));
-    //printf("New Line v0=%g v1=%g \n", v0->y(), v1->y());
+    // printf("New Line v0=%g v1=%g \n", v0->y(), v1->y());
   }
 
   if(ge->getBeginVertex() == ge->getEndVertex() && 
@@ -369,6 +370,4 @@ void meshGEdge::operator() (GEdge *ge)
 //     ge->lines.erase(ge->lines.begin(), ge->lines.end()-(N-1));
 //   }
 
- 
-
 }
diff --git a/doc/CREDITS.txt b/doc/CREDITS.txt
index 9c5baf3fc6f1e865caaa0b62b4f27c32c906fee5..a7839f1d099097e7043c687a08f9ef6e2461b6be 100644
--- a/doc/CREDITS.txt
+++ b/doc/CREDITS.txt
@@ -22,7 +22,7 @@ list code; Matt Gundry for the Plot3d mesh format; Jozef Vesely for
 help with the Tetgen integration; Koen Hillewaert for high order
 element mappings and other improvements; Jacques Lechelle for the
 DIFFPACK mesh format; Ruth Sabariego for pyramids; Gaetan Bricteux for
-Gauss integration routines.
+Gauss integration routines; Emilie Marchandise for edge compounds. 
 
 The AVL tree code (Common/avl.*) and the YUV image code
 (Graphics/gl2yuv.*) are copyright (C) 1988-1993, 1995 The Regents of
@@ -118,8 +118,7 @@ Dardenne, Christophe Prud'homme, Sebastien Clerc, Jose Miguel Pasini,
 Philippe Lussou, Jacques Kools, Bayram Yenikaya, Peter Hornby, Krishna
 Mohan Gundu, Christopher Stott, Timmy Schumacher, Carl Osterwisch,
 Bruno Frackowiak, Philip Kelleners, Romuald Conty, Renaud Sizaire,
-Michel Benhamou, Emilie Marchandise, Tom De Vuyst, Kris Van den
-Abeele, Simon Vun, Simon Corbin, Thomas De-Soza, Marcus Drosson,
-Antoine Dechaume, Jose Paulo Moitinho de Almeida, Thomas Pinchard,
-Corrado Chisari, Axel Hackbarth, Peter Wainwright, Jiri Hnidek,
-Thierry Thomas.
+Michel Benhamou, Tom De Vuyst, Kris Van den Abeele, Simon Vun, Simon
+Corbin, Thomas De-Soza, Marcus Drosson, Antoine Dechaume, Jose Paulo
+Moitinho de Almeida, Thomas Pinchard, Corrado Chisari, Axel Hackbarth,
+Peter Wainwright, Jiri Hnidek, Thierry Thomas.
diff --git a/doc/TODO.txt b/doc/TODO.txt
index 387e38ac472fd7d45b24de348032ac0529bfd949..b753e1149e75fcb0061ab6f8e56dc70ce0495f00 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -1,4 +1,9 @@
-$Id: TODO.txt,v 1.26 2009-04-24 15:06:24 geuzaine Exp $
+$Id: TODO.txt,v 1.27 2009-05-01 06:37:04 geuzaine Exp $
+
+********************************************************************
+
+fichier .pos high order avec INTERPOLATION_SCHEME{{0,0,0,0,0}{ok}}
+bug GUI
 
 ********************************************************************