diff --git a/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java b/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java
--- a/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java
+++ b/src/org/openbravo/mobile/core/process/DataSynchronizationProcess.java
@@ -165,6 +165,7 @@
   public JSONObject saveRecord(JSONArray jsonarray, boolean shouldFailWithError)
       throws JSONException {
     boolean error = false;
+    boolean obContextChanged = false;
     List<String> errorIds = new ArrayList<String>();
 
     OBContext cnx = OBContext.getOBContext();
@@ -185,6 +186,7 @@
         String orgId = jsonRecord.has("organization") ? jsonRecord.getString("organization")
             : currentOrg;
         if (!currentUser.equals(userId) || !currentOrg.equals(orgId)) {
+          obContextChanged = true;
           OBContext.setOBContext(userId, currentRole, OBContext.getOBContext().getCurrentClient()
               .getId(), orgId);
         }
@@ -234,6 +236,7 @@
               setImportEntryError(t);
             }
           } else {
+            // setImportEntryError is called in handleError
             handleError(t, this.getEntity(), result, jsonRecord);
           }
 
@@ -264,8 +267,10 @@
 
     } finally {
       OBContext.restorePreviousMode();
-      OBContext.setOBContext(originalUser, originalRole, OBContext.getOBContext()
-          .getCurrentClient().getId(), originalOrg);
+      if (obContextChanged) {
+        OBContext.setOBContext(originalUser, originalRole, OBContext.getOBContext()
+            .getCurrentClient().getId(), originalOrg);
+      }
       setImportEntryId(null);
     }
     JSONObject jsonResponse = new JSONObject();
diff --git a/src/org/openbravo/mobile/core/process/JSONProcessSimple.java b/src/org/openbravo/mobile/core/process/JSONProcessSimple.java
--- a/src/org/openbravo/mobile/core/process/JSONProcessSimple.java
+++ b/src/org/openbravo/mobile/core/process/JSONProcessSimple.java
@@ -37,15 +37,17 @@
         JSONObject response = new JSONObject(s);
         JSONObject contextInfo = getContextInformation();
         response.put("contextInfo", contextInfo);
-        OBContext.setAdminMode(false);
-        try {
-          final Map<String, Object> parameters = MobileCoreKernelUtils.getParameterMap(
-              RequestContext.getServletContext(), RequestContext.get().getRequest());
-          mobileStaticResourceComponent.setParameters(parameters);
-          response.put("sourceVersion",
-              mobileStaticResourceComponent.getGeneratedJavascriptFilename());
-        } finally {
-          OBContext.restorePreviousMode();
+        if (!(this instanceof DataSynchronizationImportProcess)) {
+          OBContext.setAdminMode(false);
+          try {
+            final Map<String, Object> parameters = MobileCoreKernelUtils.getParameterMap(
+                RequestContext.getServletContext(), RequestContext.get().getRequest());
+            mobileStaticResourceComponent.setParameters(parameters);
+            response.put("sourceVersion",
+                mobileStaticResourceComponent.getGeneratedJavascriptFilename());
+          } finally {
+            OBContext.restorePreviousMode();
+          }
         }
         String responseStr = response.toString();
         w.write(responseStr.substring(1, responseStr.length() - 1));
