diff --git a/src-db/database/sourcedata/AD_REF_LIST.xml b/src-db/database/sourcedata/AD_REF_LIST.xml
--- a/src-db/database/sourcedata/AD_REF_LIST.xml
+++ b/src-db/database/sourcedata/AD_REF_LIST.xml
@@ -108,7 +108,7 @@
 <!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <VALUE><![CDATA[OBMOBC_Ping_Periodicity]]></VALUE>
-<!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <NAME><![CDATA[Mobile Server Status Ping Periodicity (s)]]></NAME>
+<!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <NAME><![CDATA[Mobile Server Status Ping Periodicity (seconds)]]></NAME>
 <!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <DESCRIPTION><![CDATA[How often the mobile server ping will be scheduled in seconds]]></DESCRIPTION>
 <!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <AD_REFERENCE_ID><![CDATA[A26BA480E2014707B47257024C3CBFF7]]></AD_REFERENCE_ID>
 <!--34D1FB5C44BF4FB482772830FC6C3DD0-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
diff --git a/src/org/openbravo/mobile/core/servercontroller/MobileServerController.java b/src/org/openbravo/mobile/core/servercontroller/MobileServerController.java
--- a/src/org/openbravo/mobile/core/servercontroller/MobileServerController.java
+++ b/src/org/openbravo/mobile/core/servercontroller/MobileServerController.java
@@ -463,7 +463,6 @@
     checkMultiServer();
 
     if (getThisMobileServerState().equals(MobileServerState.TRANSITION_TO_OFFLINE)) {
-      doTransitionToOffline();
       return;
     }
     if (!getThisMobileServerState().equals(MobileServerState.ONLINE)) {
diff --git a/src/org/openbravo/mobile/core/servercontroller/ServerStateBackground.java b/src/org/openbravo/mobile/core/servercontroller/ServerStateBackground.java
--- a/src/org/openbravo/mobile/core/servercontroller/ServerStateBackground.java
+++ b/src/org/openbravo/mobile/core/servercontroller/ServerStateBackground.java
@@ -13,6 +13,7 @@
 
 import org.apache.log4j.Logger;
 import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.base.exception.OBException;
 import org.openbravo.base.weld.WeldUtils;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
@@ -146,9 +147,8 @@
     switch (state) {
     case TRANSITION_TO_OFFLINE:
       // transition again, if the thread is already running nothing will happen
-      logAction = "Already transitioning to offline, just retry it";
-      log4j.debug("Transition to offline");
-      MobileServerController.getInstance().transitionToOffline();
+      logAction = "Already transitioning to offline, not retrying it";
+      log4j.debug("Already transition to offline");
       break;
     case ONLINE:
       logAction = "Transition to offline";
@@ -299,46 +299,27 @@
     return shouldGoOffline;
   }
 
-  private boolean pingWillBeDoneToServer(MobileServerDefinition server, Date dateThreashold) {
+  private boolean pingWillBeDoneToServer(MobileServerDefinition server, Date dateThreshold) {
     return !server.getStatus().equals(MobileServerState.ONLINE.getValue())
         || (server.getStatus().equals(MobileServerState.ONLINE.getValue()) && server.getUpdated()
-            .before(dateThreashold));
+            .before(dateThreshold));
   }
 
   private List<MobileServerDefinition> getServersToSendPing(MobileServerDefinition thisServerDef,
       ProcessContext obContext) {
-    // if this is a main server then check all servers, if this is a store server
-    // then check all the servers which are accessible from this organization/store.
-    // Note the process needs to be started using the credentials/org of the store in that case
-    boolean addOrgParam = false;
-    String queryPart = "";
-    if (MobileServerController.getInstance().isThisAStoreServer()) {
-      log4j.debug("Store server, filtering servers using org");
-      addOrgParam = true;
-      queryPart = " and (" + MobileServerDefinition.PROPERTY_ALLORGS + "=true or :org in elements("
-          + MobileServerDefinition.PROPERTY_OBMOBCSERVERORGSLIST + "))";
+    if (!MobileServerController.getInstance().isThisACentralServer()) {
+      throw new OBException("This method should only be called in the central server");
     }
-
-    final String filterByType;
-    if (MobileServerController.getInstance().isThisAStoreServer()) {
-      filterByType = " and " + MobileServerDefinition.PROPERTY_SERVERTYPE + "='"
-          + MobileServerUtils.MAIN_SERVER + "'";
-    } else {
-      filterByType = " and " + MobileServerDefinition.PROPERTY_SERVERTYPE + "='"
-          + MobileServerUtils.STORE_SERVER + "'";
-    }
-
     OBQuery<MobileServerDefinition> serversQry = OBDal.getInstance().createQuery(
         MobileServerDefinition.class,
         "client.id=:clientId and " + MobileServerDefinition.PROPERTY_MOBILESERVERKEY + "!='"
-            + thisServerDef.getMobileServerKey() + "' " + queryPart + " " + filterByType
+            + thisServerDef.getMobileServerKey() + "' and "
+            + MobileServerDefinition.PROPERTY_SERVERTYPE + "='"
+            + MobileServerUtils.STORE_SERVER + "'"
             + " order by " + MobileServerDefinition.PROPERTY_PRIORITY);
     serversQry.setFilterOnReadableClients(false);
     serversQry.setFilterOnReadableOrganization(false);
     serversQry.setNamedParameter("clientId", obContext.getClient());
-    if (addOrgParam) {
-      serversQry.setNamedParameter("org", obContext.getOrganization());
-    }
     return serversQry.list();
   }
 }
