diff --git a/Geo/discreteDiskFace.h b/Geo/discreteDiskFace.h
index ee37d5959837b3b8d2042440df3409d68c03c622..1954890663b5ff8745b0f5f83b1a0de943af230d 100644
--- a/Geo/discreteDiskFace.h
+++ b/Geo/discreteDiskFace.h
@@ -30,9 +30,8 @@ class GRbf;
 
 class  discreteDiskFaceTriangle {
  public:
-  SPoint3* p; // vertices in (u;v)
-  SPoint2* gfp; // CAD model
-  SPoint3* v;// vertices in (x;y;z)
+  SPoint3 p[6]; // vertices in (u;v)
+  SPoint2 gfp[6]; // CAD model
   GFace *gf; // GFace tag
   MTriangle *tri; // mesh triangle in (x;y;z)
  discreteDiskFaceTriangle() : gf(0), tri(0) {}
@@ -49,7 +48,7 @@ class discreteDiskFace : public GFace {
   void putOnView();
   
  public:
-  discreteDiskFace(GFace *parent, std::vector<MTriangle*> &mesh, int p);// MTriangle -> MTriangle 6
+  discreteDiskFace(GFace *parent, std::vector<MTriangle*> &mesh, int p=1);// MTriangle -> MTriangle 6
   virtual ~discreteDiskFace() {triangles.clear();}
   void getTriangleUV(const double u,const double v,discreteDiskFaceTriangle **mt, double &_u, double &_v) const;
   GPoint point(double par1, double par2) const;
@@ -68,24 +67,21 @@ class discreteDiskFace : public GFace {
  protected:
   //------------------------------------------------
   // a copy of the mesh that should not be destroyed
-  std::vector<MTriangle*> discrete_triangles; // MTriangleN AND MTriangle6 are children of MTriangle
+  std::vector<MTriangle*> discrete_triangles; 
   std::vector<MVertex*> discrete_vertices;
   //------------------------------------------------
   int nodeLocalNum(MElement* e, MVertex* v) const{
-    for(unsigned int i=0; i<e->getNumVertices(); i++)
+    for(int i=0; i<e->getNumVertices(); i++)
       if (v == e->getVertex(i))
 	return i;
-  };
+    return -1;
+  }
   int edgeLocalNum(MElement* e, MEdge ed) const{
-    for(unsigned int i=0; i<e->getNumEdges(); i++)
+    for(int i=0; i<e->getNumEdges(); i++)
       if (ed == e->getEdge(i))
 	return i;
-  };
-  void init_ddft(discreteDiskFaceTriangle* ddft) const{
-    ddft->p = new SPoint3[_N];
-    ddft->gfp = new SPoint2[_N];
-    ddft->v = new SPoint3[_N];
-  };
+    return -1;
+  }
   //------------------------------------------------
   int _order;
   int _N;
@@ -97,14 +93,10 @@ class discreteDiskFace : public GFace {
   mutable std::map<SPoint3,SPoint3 > _coordPoints; // ?
   mutable v2t_cont adjv; // ? v2t_cont ? ?????
   mutable std::map<MVertex*, Pair<SVector3,SVector3> > firstDerivatives;
-  mutable std::map<MElement*, std::vector<Pair<SVector3,SVector3> > > firstElemDerivatives;//dXdU
   mutable discreteDiskFaceTriangle *_ddft;
-  mutable ANNkd_tree *uv_kdtree;
-  mutable ANNkd_tree *kdtree;
   mutable Octree *oct;
   mutable std::vector<double> _coords;
   const nodalBasis* mynodalbasis;
-  const bezierBasis* mybezierbasis;
 };
 
 #endif