diff --git a/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc b/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc
index 35bbdd21d090b06b853ae63f8408752f684c598c..a30ac1d26e800707a9d6f430f6d03392ce846204 100644
--- a/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc
+++ b/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc
@@ -358,7 +358,9 @@ class mailMethodRenaterPartage extends mailMethod
           $account[$partageField] = $mainTab->$fdField;
         }
       }
-      $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active');
+      if (!class_available('supannAccount')) {
+        $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active');
+      }
       $account['initials'] = mb_strtoupper(mb_substr($mainTab->givenName, 0, 1).mb_substr($mainTab->sn, 0, 1));
 
       /* Sync fields from SUPANN if tab is active */
@@ -369,6 +371,23 @@ class mailMethodRenaterPartage extends mailMethod
         $account['zimbraHideInGal'] = ($supannTab->supannListeRouge ? 'TRUE' : 'FALSE');
       }
 
+      /* Lock zimbra account if MAIL is inactive or suspended in supannRessourceEtatDate */
+      if (isset($this->parent->parent->by_object['supannAccountStatus']) && $this->parent->parent->by_object['supannAccountStatus']->is_account) {
+        $supannStatusTab = $this->parent->parent->by_object['supannAccountStatus'];
+
+        foreach ($supannStatusTab->supannRessourceEtatDate as $line) {
+          list ($label, $state, $substate, $start, $end) = $supannStatusTab->attributesAccess['supannRessourceEtatDate']->attribute->readValues($line);
+          if ($label === 'MAIL') {
+            if ($state !== 'A') {
+              $account['zimbraAccountStatus'] = 'locked';
+            } else{
+              $account['zimbraAccountStatus'] = 'active';
+            }
+            break;
+          }
+        }
+      }
+
       /* Sync fields from personal if tab is active */
       if (isset($this->parent->parent->by_object['personalInfo']) && $this->parent->parent->by_object['personalInfo']->is_account) {
         $personalTab    = $this->parent->parent->by_object['personalInfo'];
diff --git a/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc b/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc
index 83cf3ac5d524fc67347d546e8d9df5de69e44ac3..a5ef508f4d35dc9592d4d7eeefce4b6e47c3c904 100644
--- a/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc
+++ b/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc
@@ -349,7 +349,10 @@ class mailMethodZimbra extends mailMethod
           $account[$partageField] = $mainTab->$fdField;
         }
       }
-      $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active');
+      if (!class_available('supannAccount')) {
+        $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active');
+      }
+
       $account['initials'] = mb_strtoupper(mb_substr($mainTab->givenName, 0, 1).mb_substr($mainTab->sn, 0, 1));
 
       /* Sync fields from SUPANN if tab is active */
@@ -368,6 +371,8 @@ class mailMethodZimbra extends mailMethod
           if ($label === 'MAIL') {
             if ($state !== 'A') {
               $account['zimbraAccountStatus'] = 'locked';
+            } else {
+              $account['zimbraAccountStatus'] = 'active';
             }
             break;
           }