diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 544f4b702f7c964794c4f4a4a8892ebdbe17c8b1..9a5f5b50fe03bf80cfb18ce2a1934391deb42344 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -2313,6 +2313,7 @@ void GModel::save(std::string fileName)
   CreateOutputFile(fileName, guess);
   GModel::setCurrent(temp);
 }
+
 GEdge* GModel::addCompoundEdge(std::vector<GEdge*> edges, int num){
 
   if (num ==-1) num =  getMaxElementaryNumber(1) + 1;
diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp
index 82cc29ab004a05f258b9c01c5cc20ff449c74c9e..1f77c05b10a327e14ff0d38177b7711a30363eac 100644
--- a/Geo/GModelIO_MED.cpp
+++ b/Geo/GModelIO_MED.cpp
@@ -213,9 +213,8 @@ int GModel::readMED(const std::string &name)
   for(unsigned int i = 0; i < meshNames.size(); i++){
     GModel *m = findByName(meshNames[i]);
     if(!m){
-      for(unsigned int j = 0; j < GModel::list.size(); j++)
-        GModel::list[j]->setVisibility(0);
       m = new GModel(meshNames[i]);
+      GModel::setCurrent(m);
     }
     ret = m->readMED(name, i);
     if(!ret) return 0;