diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp
index bc965d60e403cd1ee54d4126d128bd0c7af47895..39639edb15146f257a1ed512440a48e7e3c87c0f 100644
--- a/Geo/GFaceCompound.cpp
+++ b/Geo/GFaceCompound.cpp
@@ -942,12 +942,12 @@ bool GFaceCompound::parametrize() const
     oriented = checkOrientation(0);
     //printStuff(77);
     if (_type==SPECTRAL &&  (!oriented || overlap) ){
-      Msg::Warning("!!! parametrization switched to 'FE conformal' map");
+      Msg::Warning("Parametrization switched to 'FE conformal' map");
       overlap = parametrize_conformal(0, NULL, NULL);
       oriented = checkOrientation(0);
     }
     if (!oriented || overlap){
-      Msg::Warning("$$$ parametrization switched to 'convex' map");
+      Msg::Warning("Parametrization switched to 'convex' map");
       _type  = UNITCIRCLE;
       parametrize(ITERU,CONVEX);
       parametrize(ITERV,CONVEX);
@@ -2543,7 +2543,7 @@ bool GFaceCompound::checkTopology() const
   if (G != 0 || Nb < 1){
     correctTopo = false;
     nbSplit = std::max(G+2, 2);
-    Msg::Warning("Wrong topology: Genus=%d, Nb boundaries=%d, AR=%g", G, Nb, H/D);
+    Msg::Info("Wrong topology: Genus=%d, Nb boundaries=%d, AR=%g", G, Nb, H/D);
     if (_allowPartition){
       Msg::Info("-----------------------------------------------------------");
       Msg::Info("--- Split surface %d in %d parts with Multilevel Mesh partitioner",
@@ -2557,8 +2557,8 @@ bool GFaceCompound::checkTopology() const
   }
   else if (G == 0 && AR > AR_MAX){
     correctTopo = false;
-    Msg::Warning("Wrong topology: Aspect ratio is too high AR=%d (AR1=%d AR2=%d)",
-                 AR, AR1, AR2);
+    Msg::Info("Wrong topology: Aspect ratio is too high AR=%d (AR1=%d AR2=%d)",
+              AR, AR1, AR2);
     if (_allowPartition == 1){
       nbSplit = -2;
       Msg::Info("-----------------------------------------------------------");
diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 316631bcfe82ee96aa1c6e0d2058b7bf72e58dfc..c051fe1031982d71fb8c93766caea6ea68a04004 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -93,13 +93,23 @@ GModel::~GModel()
 {
   std::vector<GModel*>::iterator it = std::find(list.begin(), list.end(), this);
   if(it != list.end()) list.erase(it);
+
+  if(getVisibility()){
+    // if no other model is visible, make the last one visible
+    bool othervisible = false;
+    for(unsigned int i = 0; i < list.size(); i++){
+      if(list[i]->getVisibility()) othervisible = true;
+    }
+    if(!othervisible && list.size())
+      list.back()->setVisibility(1);
+  }
+
   destroy();
   _deleteGEOInternals();
   _deleteOCCInternals();
 #if defined(HAVE_MESH)
   delete _fields;
 #endif
-
   if(_factory)
     delete _factory;
 }