diff --git a/plugins/configuration/tasks/class_tasks.inc b/plugins/configuration/tasks/class_tasks.inc
index 02a4bdff06fbbda62c4216786bf79eae3018d16e..3c895854371350878e32a99e0c0963743c8bdc4b 100644
--- a/plugins/configuration/tasks/class_tasks.inc
+++ b/plugins/configuration/tasks/class_tasks.inc
@@ -148,7 +148,10 @@ class tasks extends simplePlugin
         if (!empty($subTasks)) {
           // Recuperate members DN from the ldap search.
           foreach ($subTasks as $subTask) {
-            $membersDN[] = $subTask['fdTasksGranularDN'][0];
+            // Case of a DN passed but being locked.
+            if (!empty($subTask['fdTasksGranularDN'][0])) {
+              $membersDN[] = $subTask['fdTasksGranularDN'][0];
+            }
           }
           // Verify the DN differences and only keep those.
           if (!empty($membersDN)) {
@@ -198,7 +201,7 @@ class tasks extends simplePlugin
           "fdTasksGranularSchedule" => $schedule,
         ];
         // Simply merged the common values and the custom ones depending on the attribute type passed.
-        $values['tasksGranular']      = array_merge($prepData['tasksGranular'], $defaultData['tasksGranular']);
+        $values['tasksGranular'] = array_merge($prepData['tasksGranular'], $defaultData['tasksGranular']);
 
         foreach ($values as $tab => $tabvalues) {
           if (!isset($tabObject->by_object[$tab])) {
@@ -253,10 +256,12 @@ class tasks extends simplePlugin
             foreach ($info['member'] as $memberDN) {
               $listMemberDN[] = $memberDN;
             }
-
-            // Add the member DN to the list of DN
-            $listMemberDN = array_unique($listMemberDN);
+            // case of member not within a group or dyngroup
+          } else {
+            $listMemberDN[] = $group; //Here group is indeed a sole user
           }
+          // Make sure no duplicate can happens, case of same member in an existing group.
+          $listMemberDN = array_unique($listMemberDN);
         }
       }