diff --git a/plugins/addons/subscription/class_subscriptionInfo.inc b/plugins/addons/subscription/class_subscriptionInfo.inc
index 56c21ed8224d570ce570eeb3a86e2324d875fed5..46fd812e9e0f226c66b2d9fc10c5c5e2312cfbfb 100644
--- a/plugins/addons/subscription/class_subscriptionInfo.inc
+++ b/plugins/addons/subscription/class_subscriptionInfo.inc
@@ -30,6 +30,8 @@ class subscriptionInfo extends simplePlugin
     'fdSubscriptionEndDate'     => 'EndDate',
   ];
 
+  public static $sectionName = 'FusionDirectory Subscription';
+
   public static function plInfo (): array
   {
     return [
@@ -175,7 +177,7 @@ class subscriptionInfo extends simplePlugin
         htmlescape(_('No data. Did you forgot to upload a file?'))
       );
       $error->display();
-    } elseif (($data = parse_ini_string($data)) === FALSE) {
+    } elseif (($data = parse_ini_string($data, TRUE)) === FALSE) {
       /* Import of INI failed */
       $error = new SimplePluginError(
         $this->attributesAccess['import_file'],
@@ -183,12 +185,39 @@ class subscriptionInfo extends simplePlugin
       );
       $error->display();
     } else {
-      /* Import data and save it to the LDAP */
-      foreach (static::$subscriptionAttributes as $attr => $iniVar) {
-        $this->attributesAccess[$attr]->setValue($data[$iniVar] ?? '');
+      /* Check content of ini file */
+      $errorText = NULL;
+      if (!isset($data[static::$sectionName])) {
+        $errorText = sprintf(_('Missing section "%s" in imported file'), static::$sectionName);
+      } else {
+        $data = $data[static::$sectionName];
+        foreach (static::$subscriptionAttributes as $attr => $iniVar) {
+          if ($this->attributesAccess[$attr]->isRequired() && (!isset($data[$iniVar]) || ($data[$iniVar] === ''))) {
+            $errorText = sprintf(_('Missing attribute "%s" in imported file'), $iniVar);
+            break;
+          }
+        }
+      }
+      if ($errorText !== NULL) {
+        $error = new SimplePluginError(
+          $this->attributesAccess['import_file'],
+          htmlescape($errorText)
+        );
+        $error->display();
+      } else {
+        /* Import data and save it to the LDAP */
+        foreach (static::$subscriptionAttributes as $attr => $iniVar) {
+          $this->attributesAccess[$attr]->setValue($data[$iniVar] ?? '');
+        }
+        $errors = $this->parent->save();
+        if (count($errors) > 0) {
+          msg_dialog::displayChecks($errors);
+          /* Reset fields to LDAP value */
+          foreach (array_keys(static::$subscriptionAttributes) as $attr) {
+            $this->attributesAccess[$attr]->setValue($this->attributesAccess[$attr]->getInitialValue());
+          }
+        }
       }
-      $errors = $this->parent->save();
-      msg_dialog::displayChecks($errors);
     }
     /* Avoid double import */
     $this->import_file = '';