diff --git a/Geo/MVertex.cpp b/Geo/MVertex.cpp
index 57e89354bad5813a34ab8282c77bfe1fd3ccf2db..9302a3e2a5b911f0f596cfe91cb4f20b882cc612 100644
--- a/Geo/MVertex.cpp
+++ b/Geo/MVertex.cpp
@@ -1,4 +1,4 @@
-// $Id: MVertex.cpp,v 1.15 2007-09-04 13:47:01 remacle Exp $
+// $Id: MVertex.cpp,v 1.16 2007-09-21 16:22:51 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -118,6 +118,16 @@ static void double_to_char8(double val, char *str){
     sprintf(str, "%f", val);
   else
     sprintf(str, "%.1E", val);
+
+#if defined(WIN32)
+  // Windows uses 3 digits in the exponent (which apparently does not
+  // conform with ANSI C): remove the extra 0
+  if(strlen(str) == 9 && (str[4] == 'E' || str[5] == 'E')){
+    str[6] = str[7];
+    str[7] = str[8];
+  }
+#endif
+
   str[8] = '\0';
 }
 
@@ -157,28 +167,25 @@ MVertex::linearSearch(std::set<MVertex*, MVertexLessThanLexicographic> &pos)
   return pos.end();
 }
 
-void parametricCoordinates ( const MVertex*ver, const GFace *gf, double &u, double &v)
+void parametricCoordinates(const MVertex *ver, const GFace *gf, double &u, double &v)
 {
   GEntity *ge = ver->onWhat();
-  if (ge->dim() == 2)
-    {
-      ver->getParameter ( 0,u);
-      ver->getParameter ( 1,v);	  
-    }
-  else if (ge->dim() == 1)
-    {
-      double t;
-      ver->getParameter ( 0,t);
-      GEdge *ged = dynamic_cast<GEdge*> (ge);
-      SPoint2 p = ged->reparamOnFace ( (GFace*)gf , t , 1);
-      u =p.x(); 
-      v =p.y(); 
-    }
-  else
-    {
-      GVertex *gver = dynamic_cast<GVertex*> (ge);
-      SPoint2 p = gver->reparamOnFace ( (GFace*)gf , 1);
-      u =p.x(); 
-      v =p.y(); 
-    }      
+  if(ge->dim() == 2){
+    ver->getParameter(0, u);
+    ver->getParameter(1, v);	  
+  }
+  else if(ge->dim() == 1){
+    double t;
+    ver->getParameter(0, t);
+    GEdge *ged = dynamic_cast<GEdge*>(ge);
+    SPoint2 p = ged->reparamOnFace((GFace*)gf, t, 1);
+    u = p.x();
+    v = p.y();
+  }
+  else{
+    GVertex *gver = dynamic_cast<GVertex*>(ge);
+    SPoint2 p = gver->reparamOnFace((GFace*)gf, 1);
+    u = p.x();
+    v = p.y();
+  }      
 }
diff --git a/Geo/MVertex.h b/Geo/MVertex.h
index 8fd9a5b5f92b0a025d6204c0ea8c703473ea3f1f..67311529f71e99fd61844524c5a88e5772e9820b 100644
--- a/Geo/MVertex.h
+++ b/Geo/MVertex.h
@@ -141,6 +141,6 @@ class MFaceVertex : public MVertex{
   virtual bool setParameter(int i, double par){ if(!i) _u = par; else _v = par; return true; }
 };
 
-void parametricCoordinates ( const MVertex*ver, const GFace *gf, double &u, double &v);
+void parametricCoordinates(const MVertex *ver, const GFace *gf, double &u, double &v);
 
 #endif