diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 67490a5c96b0fde2de8df8a783776ba96427b02e..07f2ed20a91e9b7b6d428f5109a3587a1b3041ab 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -1839,12 +1839,12 @@ static void _associateEntityWithElementVertices(GEntity *ge,
 
 void GModel::createGeometryOfDiscreteEntities()
 {
-  Msg::StatusBar(true, "Creating geometry of discrete entities...");
-  double t1 = Cpu();
-
   createTopologyFromMeshNew();
   exportDiscreteGEOInternals();
 
+  Msg::StatusBar(true, "Creating geometry of discrete entities...");
+  double t1 = Cpu();
+
   Msg::Info(" - Creating the geometry of discrete surfaces");
   for(fiter it = firstFace(); it != lastFace(); ++it) {
     if((*it)->geomType() == GEntity::DiscreteSurface)
diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp
index c58e7e0de1447219fcb39ef06e612f1342f96518..462d84ba25bc4ba5d38ecc2583098e966d209783 100644
--- a/Geo/discreteFace.cpp
+++ b/Geo/discreteFace.cpp
@@ -504,8 +504,9 @@ void discreteFace::mesh(bool verbose)
   std::vector<GEdge *> const tmp = l_edges;
   int _tagtemp = tag();
 
-  Msg::Info("Meshing discrete surface %d: the atlas contains %d map(s)",
-            tag(), _parametrizations.size());
+  Msg::Info("Meshing discrete surface %d: the atlas contains %d map%s",
+            tag(), _parametrizations.size(),
+            (_parametrizations.size() > 1) ? "s" : "");
 
   for(size_t i = 0; i < _parametrizations.size(); i++) {
     //    setTag(i);
@@ -978,7 +979,8 @@ HXTStatus discreteFace::reparametrize_through_hxt()
 				    c2v, boundaries))
     Msg::Warning("Impossible to compute the topology of the %d partitions", nc);
 
-  Msg::Info("Surface %d split in %d part(s)", tag(), _parametrizations.size());
+  Msg::Info("Surface %d split in %d part%s", tag(), _parametrizations.size(),
+            (_parametrizations.size() > 1) ? "s" : "");
 
   for(size_t i = 0; i < _parametrizations.size(); i++) {
     Less_Edge le;
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index 69e4a07a36059d2f4955cb36e085b4064f452b2e..fa0b0d60a8e6cb2f5311793b82657e7ad1c55882 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1489,7 +1489,8 @@ bool meshGenerator(GFace *gf, int RECUR_ITER, bool repairSelfIntersecting1dMesh,
   }
 
   if(RECUR_ITER > 0)
-    Msg::Info(":-) All edges recovered after %d iteration(s)", RECUR_ITER);
+    Msg::Info(":-) All edges recovered after %d iteration%s", RECUR_ITER,
+              (RECUR_ITER > 1) ? "s" : "");
 
   Msg::Debug("Boundary edges recovered for surface %d", gf->tag());
 
@@ -2530,7 +2531,8 @@ static bool meshGeneratorPeriodic(GFace *gf, int RECUR_ITER,
   }
 
   if(RECUR_ITER > 0)
-    Msg::Info(":-) All edges recovered after %d iteration(s)", RECUR_ITER);
+    Msg::Info(":-) All edges recovered after %d iteration%s", RECUR_ITER,
+              (RECUR_ITER > 1) ? "s" : "");
 
   // look for a triangle that has a negative node and recursively tag all
   // exterior triangles