diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp
index 0457e827baa56d9a0528fe5612f44037b633576b..e17b9441aefe04dd3b23703d858455e5a8ab173d 100644
--- a/Geo/GModelIO_MED.cpp
+++ b/Geo/GModelIO_MED.cpp
@@ -374,7 +374,7 @@ int GModel::readMED(const std::string &name, int meshIndex)
       for(int k = 0; k < numNodPerEle; k++)
         v[k] = verts[conn[numNodPerEle * j + med2mshNodeIndex(type, k)] - 1];
       MElement *e = factory.create(mshType, v, eleTags.empty() ? 0 : eleTags[j]);
-      if(e) elements[std::abs(fam[j])].push_back(e);
+      if(e) elements[-fam[j]].push_back(e);
     }
     _storeElementsInEntities(elements);
   }
@@ -431,12 +431,12 @@ int GModel::readMED(const std::string &name, int meshIndex)
 #endif
     // family tags are unique (for all dimensions)
     GEntity *ge;
-    if((ge = getRegionByTag(std::abs(familyNum)))){}
-    else if((ge = getFaceByTag(std::abs(familyNum)))){}
-    else if((ge = getEdgeByTag(std::abs(familyNum)))){}
-    else ge = getVertexByTag(std::abs(familyNum));
+    if((ge = getRegionByTag(-familyNum))){}
+    else if((ge = getFaceByTag(-familyNum))){}
+    else if((ge = getEdgeByTag(-familyNum))){}
+    else ge = getVertexByTag(-familyNum);
     if(ge){
-      elementaryNames[std::pair<int, int>(ge->dim(), std::abs(familyNum))] = familyName;
+      elementaryNames[std::pair<int, int>(ge->dim(), -familyNum)] = familyName;
       if(numGroups > 0){
         for(int j = 0; j < numGroups; j++){
           char tmp[MED_TAILLE_LNOM + 1];
@@ -558,9 +558,8 @@ int GModel::writeMED(const std::string &name, bool saveAll, double scalingFactor
 #endif
       Msg::Error("Could not create MED family 0");
 
-    // create one family per elementary entity, with one group per physical
-    // entity and no attributes; we use negative family numbers, as intructed by
-    // Code_Aster devs.
+    // create one family per elementary entity, with one group per
+    // physical entity and no attributes
     for(unsigned int i = 0; i < entities.size(); i++){
       if(saveAll || entities[i]->physicals.size()){
         int num = - ((int)families.size() + 1);