diff --git a/Geo/GModelIO_GEO.cpp b/Geo/GModelIO_GEO.cpp
index c7a3bb403c79acf052ebe19f24e297c11bf23419..ba8485b3a77031fbc529891d27ebdc043858dba9 100644
--- a/Geo/GModelIO_GEO.cpp
+++ b/Geo/GModelIO_GEO.cpp
@@ -134,6 +134,9 @@ int GModel::importGEOInternals()
         v = new gmshVertex(this, p);
         add(v);
       }
+      else{
+        v->resetMeshAttributes();
+      }
       if(!p->Visible) v->setVisibility(0);
     }
     List_Delete(points);
@@ -170,6 +173,9 @@ int GModel::importGEOInternals()
           e = new gmshEdge(this, c, 0, 0);
           add(e);
         }
+        else{
+          e->resetMeshAttributes();
+        }
 
         if(!c->Visible) e->setVisibility(0);
         if(c->Color.type) e->setColor(c->Color.mesh);
@@ -297,8 +303,9 @@ int GModel::importGEOInternals()
         r = new gmshRegion(this, v);
         add(r);
       }
-      else
+      else{
         r->resetMeshAttributes();
+      }
       if(!v->Visible) r->setVisibility(0);
       if(v->Color.type) r->setColor(v->Color.mesh);
     }
@@ -326,27 +333,29 @@ int GModel::importGEOInternals()
   }
 
   // create periodic mesh relationships
-
-  for (std::map<int,int>::iterator it = _geo_internals->periodicEdges.begin();
-       it != _geo_internals->periodicEdges.end(); ++it){
+  for(std::map<int,int>::iterator it = _geo_internals->periodicEdges.begin();
+      it != _geo_internals->periodicEdges.end(); ++it){
     GEdge *ge = getEdgeByTag(abs(it->first));
     if (ge){
       int MASTER = it->second * (it->first > 0 ? 1 : -1);
       ge->setMeshMaster(MASTER);
     }
   }
-  for (std::map<int,int>::iterator it = _geo_internals->periodicFaces.begin();
+  for(std::map<int,int>::iterator it = _geo_internals->periodicFaces.begin();
        it != _geo_internals->periodicFaces.end(); ++it){
     GFace *gf = getFaceByTag(abs(it->first));
     if (gf)gf->setMeshMaster(it->second * (it->first > 0 ? 1 : -1));
   }
-
-  for (eiter it = firstEdge() ; it != lastEdge() ; ++it){
+  for(eiter it = firstEdge() ; it != lastEdge() ; ++it){
     int meshMaster = (*it)->meshMaster();
     if (meshMaster != (*it)->tag()){
       GEdge *ge_master = getEdgeByTag(abs(meshMaster));
-      if(ge_master)(*it)->getBeginVertex()->setMeshMaster ( (meshMaster > 0)  ? ge_master->getBeginVertex()->tag() : ge_master->getEndVertex()->tag());
-      if(ge_master)(*it)->getEndVertex()->setMeshMaster ( (meshMaster < 0)  ? ge_master->getBeginVertex()->tag() : ge_master->getEndVertex()->tag());
+      if(ge_master)
+        (*it)->getBeginVertex()->setMeshMaster((meshMaster > 0) ? ge_master->getBeginVertex()->tag() :
+                                               ge_master->getEndVertex()->tag());
+      if(ge_master)
+        (*it)->getEndVertex()->setMeshMaster((meshMaster < 0) ? ge_master->getBeginVertex()->tag() :
+                                             ge_master->getEndVertex()->tag());
     }
   }