diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 963157e2f0cd93f8a5bc444ef9321fd25134ea51..f8fba464184597ee7b58e22821fe676f440f37bc 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -437,7 +437,6 @@ static void Mesh2D(GModel *m)
   // and curve meshes) is global as it depends on a smooth normal
   // field generated from the surface mesh of the source surfaces
   if(!Mesh2DWithBoundaryLayers(m)){
-
     std::set<GFace*> cf, f;
     for(GModel::fiter it = m->firstFace(); it != m->lastFace(); ++it)
       if ((*it)->geomType() == GEntity::CompoundSurface)
diff --git a/Mesh/HighOrder.cpp b/Mesh/HighOrder.cpp
index a11aa2ebe55a009558e4432b995c8f34cab0751f..788dbf0fef12843487d019b2e79c1770c1d7842f 100644
--- a/Mesh/HighOrder.cpp
+++ b/Mesh/HighOrder.cpp
@@ -899,6 +899,8 @@ static void removeHighOrderVertices(GEntity *e)
 
 void SetOrder1(GModel *m)
 {
+  Msg::StatusBar(2, true, "Meshing order 1...");
+
   m->destroyMeshCaches();
 
   // replace all elements with first order elements
@@ -923,6 +925,8 @@ void SetOrder1(GModel *m)
     removeHighOrderVertices(*it);
   for(GModel::riter it = m->firstRegion(); it != m->lastRegion(); ++it)
     removeHighOrderVertices(*it);
+
+  Msg::StatusBar(2, true, "Done meshing order 1");
 }
 
 void checkHighOrderTriangles(const char* cc, GModel *m, 
diff --git a/Mesh/meshGEdgeExtruded.cpp b/Mesh/meshGEdgeExtruded.cpp
index 32273b60e26d3b92ce1c8be06979fd505ffaf538..95a55f7e7ce87f64ea5c62f80b4c6ed0e2608e92 100644
--- a/Mesh/meshGEdgeExtruded.cpp
+++ b/Mesh/meshGEdgeExtruded.cpp
@@ -67,7 +67,8 @@ int MeshExtrudedCurve(GEdge *ge)
       Msg::Error("Unknown source curve %d for extrusion", ep->geo.Source);
       return 0;
     }
-    else if(from->meshStatistics.status != GEdge::DONE){
+    else if(from->geomType() != GEntity::DiscreteCurve &&
+            from->meshStatistics.status != GEdge::DONE){
       // cannot mesh this edge yet: will do it later
       return 1;
     }
diff --git a/Mesh/meshGFaceExtruded.cpp b/Mesh/meshGFaceExtruded.cpp
index 13dbc2dddf59468ec978078df3897acc101e8dc3..54c1c419b97e925637586ad281053166731c4aa0 100644
--- a/Mesh/meshGFaceExtruded.cpp
+++ b/Mesh/meshGFaceExtruded.cpp
@@ -231,8 +231,10 @@ int MeshExtrudedSurface(GFace *gf,
       Msg::Error("Unknown source surface %d for extrusion", ep->geo.Source);
       return 0;
     }
-    else if(from->meshStatistics.status != GFace::DONE){
-      // cannot mesh this face yet: will do it later
+    else if(from->geomType() != GEntity::DiscreteSurface &&
+            from->meshStatistics.status != GFace::DONE){
+      // cannot mesh the face yet (the source face is not meshed):
+      // will do it later
       return 1;
     }
     copyMesh(from, gf, pos);