diff --git a/src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java b/src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java
index 35951faf..b1d896c2 100644
--- a/src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java
+++ b/src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java
@@ -175,7 +175,19 @@ public class MobileCoreLoginUtilsServlet extends WebServiceAbstractServlet {
     Map<String, String> context = getContextData(request);
     for (LoginDataProvider dataProvider : dataProviders) {
       for (Entry<String, Object> entry : dataProvider.getData(context).entrySet()) {
-        result.put(entry.getKey(), entry.getValue());
+        if (result.has(entry.getKey()) && result.get(entry.getKey()) instanceof JSONObject
+            && entry.getValue() instanceof JSONObject) {
+          final JSONObject resultValue = result.getJSONObject(entry.getKey());
+          final JSONObject entryValue = (JSONObject) entry.getValue();
+          final JSONArray names = entryValue.names();
+          for (int i = 0; i < names.length(); i++) {
+            final String name = names.getString(i);
+            resultValue.put(name, entryValue.get(name));
+          }
+          result.put(entry.getKey(), resultValue);
+        } else {
+          result.put(entry.getKey(), entry.getValue());
+        }
       }
     }
   }
