diff --git a/src/org/openbravo/mobile/core/servercontroller/MobileMainServerCheck.java b/src/org/openbravo/mobile/core/servercontroller/MobileMainServerCheck.java
--- a/src/org/openbravo/mobile/core/servercontroller/MobileMainServerCheck.java
+++ b/src/org/openbravo/mobile/core/servercontroller/MobileMainServerCheck.java
@@ -119,9 +119,9 @@
             waitBeforeNextAttempt();
           }
         } else {
-          log.info("Not going offline, trying to go back online");
+          log.info("Not going offline, go back online");
           // all main and external servers are back online
-          transitionToOnlineIfNeeded(thisServerDef);
+          goBackToOnline(thisServerDef);
           keepTransitioningToOffline = false;
         }
       }
@@ -141,13 +141,14 @@
     OBDal.getInstance().commitAndClose();
   }
 
-  private void transitionToOnlineIfNeeded(MobileServerDefinition thisServerDef) {
+  private void goBackToOnline(MobileServerDefinition thisServerDef) {
     // already online
     if (MobileServerState.ONLINE.getValue().equals(thisServerDef.getStatus())) {
       log.debug("Server is back online already, returning");
     } else {
-      log.info("Transitioning to online");
-      MobileServerController.getInstance().transitionToOnline();
+      log.info("Going back online");
+      MobileServerController.getInstance().setMobileServerState(MobileServerState.ONLINE);
+      OBDal.getInstance().commitAndClose();
     }
   }
 
