diff --git a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java
index b892994452169e21e78426a8e90a6fa59bd997af..324f1a6dd529de0ddcc7b3af9cb3009cc7782ebe 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java
+++ b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java
@@ -30,14 +30,12 @@ import net.jami.jams.common.dao.StatementList;
 import net.jami.jams.common.objects.devices.Device;
 import net.jami.jams.common.objects.requests.DeviceRegistrationRequest;
 import net.jami.jams.common.objects.responses.DeviceRegistrationResponse;
-import net.jami.jams.common.objects.user.Group;
-import net.jami.jams.common.objects.user.Policy;
-import net.jami.jams.common.objects.user.PolicyData;
-import net.jami.jams.common.objects.user.User;
-import net.jami.jams.common.objects.user.UserProfile;
+import net.jami.jams.common.objects.user.*;
 import net.jami.jams.dht.DeviceReceiptGenerator;
 
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.List;
 
 import static net.jami.jams.server.Server.certificateAuthority;
 import static net.jami.jams.server.Server.dataStore;
@@ -52,7 +50,6 @@ public class RegisterDeviceFlow {
             StatementList statementList = new StatementList();
             statementList.addStatement(new StatementElement("username", "=", username, ""));
             User user = dataStore.getUserDao().getObjects(statementList).get(0);
-//            UserProfile userProfile = dataStore.getUserProfileDao().getObjects(statementList).get(0);
             UserProfile userProfile = userAuthenticationModule.getAuthSources()
                     .get(new AuthModuleKey(user.getRealm(),user.getUserType()))
                     .searchUserProfiles(username,"LOGON_NAME").get(0);
@@ -70,6 +67,24 @@ public class RegisterDeviceFlow {
                 return null;
             }
             dataStore.getDeviceDao().storeObject(device);
+
+            statementList = new StatementList();
+            statementList.addStatement(new StatementElement("username", "=", username, ""));
+            if (dataStore.getUserGroupMappingsDao().getObjects(statementList) != null) {
+                UserGroupMapping mapping = dataStore.getUserGroupMappingsDao().getObjects(statementList).get(0);
+                List<String> list = new ArrayList<>();
+                if (mapping.getUsername().equals(userProfile.getUsername())) {
+                    String[] splits = mapping.getGroups().split(",");
+
+                    for (int i = 0; i < splits.length; i++)
+                        list.add(splits[i]);
+                }
+                if (!list.isEmpty())
+                    userProfile.setGroupMemberships(list);
+            }
+
+
+
             //Now we build this response out.
             DeviceRegistrationResponse response = new DeviceRegistrationResponse();
             if(userProfile.getGroupMemberships() != null) {
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
index 81781d93a9a505f1220e2ce7a23f7066b140b297..a8e25006c5c0e1ab2e9983c848daca388c2ab35f 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java
@@ -96,25 +96,6 @@ public class SearchDirectoryServlet extends HttpServlet {
                 }
             });
         });
-
-        // update user group mappings table
-        userProfiles.forEach(profile -> {
-            List<UserGroupMapping> mappings = dataStore.getUserGroupMappingsDao().getObjects(null);
-            for(UserGroupMapping mapping: mappings) {
-                List<String> list = new ArrayList<>();
-                if (mapping.getUsername().equals(profile.getUsername())) {
-                    String[] splits = mapping.getGroups().split(",");
-
-                    for (int i = 0; i < splits.length; i++)
-                        list.add(splits[i]);
-
-                }
-
-                if (!list.isEmpty())
-                    profile.setGroupMemberships(list);
-            }
-            dataStore.updateUserProfile(profile);
-        });
         if (!userProfiles.isEmpty()) {
             resp.getOutputStream().write(JsonStream.serialize(userProfiles).getBytes());
             resp.setStatus(200);