diff --git a/Graphics/drawContext.cpp b/Graphics/drawContext.cpp
index 76a7cdbcd1aacf765d8716d1bd6bd982902438df..b477adf578ab944df721dfed8b9a7c718d5f84a0 100644
--- a/Graphics/drawContext.cpp
+++ b/Graphics/drawContext.cpp
@@ -655,7 +655,6 @@ void drawContext::initPosition()
 {
   glScaled(s[0], s[1], s[2]);
   glTranslated(t[0], t[1], t[2]);
-
   if(CTX::instance()->rotationCenterCg)
     glTranslated(CTX::instance()->cg[0],
                  CTX::instance()->cg[1],
diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp
index 223eb34515c706e83c79fe8ac06be43b76b2f804..b77032fbbda0be1773945456dbfe68d7d6a317fe 100644
--- a/Mesh/meshGFaceDelaunayInsertion.cpp
+++ b/Mesh/meshGFaceDelaunayInsertion.cpp
@@ -7,6 +7,7 @@
 #include <map>
 #include <algorithm>
 #include "GmshMessage.h"
+#include "OS.h"
 #include "robustPredicates.h"
 #include "BackgroundMesh.h"
 #include "meshGFaceDelaunayInsertion.h"
@@ -585,7 +586,7 @@ bool insertVertexB (std::list<edgeXface> &shell,
 		    MTri3 **oneNewTriangle)
 {
   if (shell.size() <= 3 || shell.size() != cavity.size() + 2) return false;
-  
+
   std::list<MTri3*> new_cavity;
 
   // check that volume is conserved
@@ -644,16 +645,16 @@ bool insertVertexB (std::list<edgeXface> &shell,
     newVolume += ss;
     ++it;
   }
-  
+
 
   if (fabs(oldVolume - newVolume) < 1.e-12 * oldVolume && !onePointIsTooClose){
     connectTris_vector(new_cavity.begin(), new_cavity.end());
     //    printf("%d %d\n",shell.size(),cavity.size());
-    clock_t t1 = clock();
+    double t1 = Cpu();
     // 30 % of the time is spent here !!!
     allTets.insert(newTris, newTris + shell.size());
-    //    clock_t t2 = clock();
-    __DT2 += (double)(clock()-t1)/CLOCKS_PER_SEC;
+    //    double t2 = Cpu();
+    __DT2 += Cpu()-t1;
     if (activeTets){
       for (std::list<MTri3*>::iterator i = new_cavity.begin(); i != new_cavity.end(); ++i){
         int active_edge;
@@ -686,8 +687,8 @@ bool insertVertexB (std::list<edgeXface> &shell,
     for (unsigned int i = 0; i < shell.size(); i++) delete newTris[i];
     delete [] newTris;
     //    throw;
-    //    clock_t t2 = clock();
-    //    DT_INSERT_VERTEX += (double)(t2-t1)/CLOCKS_PER_SEC;
+    //    double t2 = Cpu();
+    //    DT_INSERT_VERTEX += t2-t1;
     return false;
   }
 }
@@ -766,7 +767,7 @@ static MTri3* search4Triangle (MTri3 *t, double pt[2],
   }
 
   if (!force)return 0; // FIXME: removing this leads to horrible performance
-  
+
   N_GLOBAL_SEARCH ++ ;
   for(std::set<MTri3*,compareTri3Ptr>::iterator itx = AllTris.begin();
       itx != AllTris.end();++itx){
@@ -801,7 +802,7 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
     }
   }
   else worst = *it;
-  
+
   MTri3 *ptin = 0;
   std::list<edgeXface> shell;
   std::list<MTri3*> cavity;
@@ -810,9 +811,9 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
   // if the point is able to break the bad triangle "worst"
   if (1){
     if (inCircumCircleAniso(gf, worst->tri(), center, metric, Us, Vs)){
-      //      clock_t t1 = clock();
+      //      double t1 = Cpu();
       recurFindCavityAniso(gf, shell, cavity, metric, center, worst, Us, Vs);
-      //      __DT1 += (double) (clock() - t1)/CLOCKS_PER_SEC ;
+      //      __DT1 += Cpu() - t1 ;
       for (std::list<MTri3*>::iterator itc = cavity.begin(); itc != cavity.end(); ++itc){
 	if (invMapUV((*itc)->tri(), center, Us, Vs, uv, 1.e-8)) {
 	  ptin = *itc;
@@ -825,11 +826,11 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
       //      printf("cocuou\n");
       ptin = search4Triangle (worst, center, Us, Vs, AllTris,uv, oneNewTriangle ? true : false);
       if (ptin) {
-	recurFindCavityAniso(gf, shell, cavity, metric, center, ptin, Us, Vs);    
+	recurFindCavityAniso(gf, shell, cavity, metric, center, ptin, Us, Vs);
       }
     }
   }
- 
+
   //  ptin = search4Triangle (worst, center, Us, Vs, AllTris,uv, oneNewTriangle ? true : false);
 
   if (ptin) {
@@ -854,7 +855,7 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
     Vs.push_back(center[1]);
 
 
-    //    clock_t t1 = clock();
+    //    double t1 = Cpu();
 
     if(!p.succeeded() || !insertVertexB
        (shell, cavity,false, gf, v, center, ptin, AllTris,ActiveTris, vSizes, vSizesBGM,vMetricsBGM,
@@ -867,13 +868,13 @@ static bool insertAPoint(GFace *gf, std::set<MTri3*,compareTri3Ptr>::iterator it
       worst->forceRadius(-1);
       AllTris.insert(worst);
       delete v;
-      for (std::list<MTri3*>::iterator itc = cavity.begin(); itc != cavity.end(); ++itc)(*itc)->setDeleted(false);      
+      for (std::list<MTri3*>::iterator itc = cavity.begin(); itc != cavity.end(); ++itc)(*itc)->setDeleted(false);
       return false;
     }
     else {
       //      printf("done ! %d\n",AllTris.size());
-      //      clock_t t2 = clock();
-      //      DT_INSERT_VERTEX += (double)(t2-t1)/CLOCKS_PER_SEC;
+      //      double t2 = Cpu();
+      //      DT_INSERT_VERTEX += (t2-t1);
       gf->mesh_vertices.push_back(v);
       return true;
     }
@@ -926,19 +927,19 @@ void bowyerWatson(GFace *gf, int MAXPNT)
     //    }
     MTri3 *worst = *AllTris.begin();
     if (worst->isDeleted()){
-      //      clock_t t1 = clock();
+      //      double t1 = Cpu();
       delete worst->tri();
       delete worst;
       AllTris.erase(AllTris.begin());
       NBDELETED ++;
-      //      DT1 += (double) (clock() - t1)/CLOCKS_PER_SEC ;
+      //      DT1 += (Cpu() - t1);
     }
     else{
-      //      clock_t t2 = clock();
+      //      double t2 = Cpu();
       if(ITER++ % 5000 == 0){
         Msg::Debug("%7d points created -- Worst tri radius is %8.3f",
                    vSizes.size(), worst->getRadius());
-	printf("%d %d %d\n",vSizes.size(), AllTris.size(),NBDELETED);
+	//printf("%d %d %d\n",vSizes.size(), AllTris.size(),NBDELETED);
       }
       double center[2],metric[3],r2;
       if (worst->getRadius() < /*1.333333/(sqrt(3.0))*/0.5 * sqrt(2.0) ||
@@ -953,15 +954,15 @@ void bowyerWatson(GFace *gf, int MAXPNT)
                        Vs[base->getVertex(2)->getIndex()]) / 3.};
       buildMetric(gf, pa,  metric);
       circumCenterMetric(worst->tri(), metric, Us, Vs, center, r2);
-      //      DT2 += (double) (clock() - t2)/CLOCKS_PER_SEC ;
-      //      clock_t t3 = clock() ;
+      //      DT2 += (Cpu() - t2) ;
+      //      double t3 = Cpu() ;
       insertAPoint(gf, AllTris.begin(), center, metric, Us, Vs, vSizes,
                    vSizesBGM, vMetricsBGM, AllTris);
-      //      DT3 += (double) (clock() - t3)/CLOCKS_PER_SEC ;
+      //      DT3 += (Cpu() - t3) ;
     }
   }
   //  printf("%12.5E %12.5E %12.5E %12.5E %12.5E\n",DT1,DT2,DT3,__DT1,__DT2);
-  printf("%12.5E \n",__DT2);
+  //printf("%12.5E \n",__DT2);
 #if defined(HAVE_ANN)
   {
     FieldManager *fields = gf->model()->getFields();
@@ -1705,7 +1706,7 @@ void bowyerWatsonParallelograms(GFace *gf)
   N_GLOBAL_SEARCH = 0;
   N_SEARCH = 0;
   DT_INSERT_VERTEX = 0;
-  //clock_t t1 = clock();
+  // double t1 = Cpu();
   MTri3 *oneNewTriangle = 0;
   for (unsigned int i=0;i<packed.size();){
     MTri3 *worst = *AllTris.begin();
@@ -1746,9 +1747,9 @@ void bowyerWatsonParallelograms(GFace *gf)
 
 
   }
-  printf("%d vertices \n",packed.size());
-  //clock_t t2 = clock();
-  //double DT = (double)(t2-t1)/CLOCKS_PER_SEC;
+  printf("%d vertices \n", (int)packed.size());
+  // double t2 = Cpu();
+  //double DT = (t2-t1);
   //if (packed.size())printf("points inserted DT %12.5E points per minut : %12.5E %d global searchs %d seachs per insertion\n",DT,60.*packed.size()/DT,N_GLOBAL_SEARCH,N_SEARCH / packed.size());
   transferDataStructure(gf, AllTris, Us, Vs);
   backgroundMesh::unset();