diff --git a/src/org/openbravo/mobile/core/servercontroller/SynchronizedServerProcessCaller.java b/src/org/openbravo/mobile/core/servercontroller/SynchronizedServerProcessCaller.java
--- a/src/org/openbravo/mobile/core/servercontroller/SynchronizedServerProcessCaller.java
+++ b/src/org/openbravo/mobile/core/servercontroller/SynchronizedServerProcessCaller.java
@@ -127,6 +127,7 @@
     while (tries < maxTries) {
       try {
         final JSONArray data = json.getJSONArray("data");
+        boolean dataChecked = false;
         for (int i = 0; i < data.length(); i++) {
           final JSONObject content = data.getJSONObject(i);
           final String serviceName = content.getString("_serviceName");
@@ -149,6 +150,7 @@
                     // we are done
                     return;
                   }
+                  dataChecked = true;
                   // only try one of the datas
                   break;
                 }
@@ -161,11 +163,15 @@
             Thread.sleep(waitPerTry);
           } catch (Exception ignore) {
           }
-          tries++;
+        }
+        // there was no data to check, go away
+        if (!dataChecked) {
+          return;
         }
       } catch (Exception logIt) {
         log.error(logIt.getMessage(), logIt);
       }
+      tries++;
     }
     log.warn("Results have not been received on store after " + maxTries
         + ", returning to WebPOS anyway " + json);
