diff --git a/CHANGELOG b/CHANGELOG
index e7624beee301b56bc7909a34adfdab09659ad208..58d54e527fc797c24725c9c207ad8cddf143068c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,8 @@ minerva (13.1.1) stable; urgency=medium
     inside compartment (#856)
   * Bug fix: searching for some drugs in chembl didn't provide any results even 
     though that data exists, for instance 'DORLIMOMAB ARITOX' (#842)
+  * Bug fix: user wasn't logged out in all tabs when the log out event appeard 
+    in only one of them (#847)
 
  -- Piotr Gawron <piotr.gawron@uni.lu>  Fri, 28 Jun 2019 17:00:00 +0200
 
diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 85501f0bf4eacf00f650ee92f6cb9d8c27cdcad6..6ee653204b71ede288aa1fd7791abb19bde56ec8 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -99,6 +99,30 @@ ServerConnector.getMinOverlayColorInt = function () {
   });
 };
 
+ServerConnector.checkIfUserLogoutFromDifferentTab = function () {
+  var self = this;
+  var sessionLogin = self.getSessionData(null).getLogin();
+  var tabLogin = self._currentTabLogin;
+  if (tabLogin === undefined) {
+    self._currentTabLogin = ServerConnector.getSessionData(null).getLogin();
+    tabLogin = self._currentTabLogin;
+  }
+  if (tabLogin !== sessionLogin) {
+    setTimeout(function () {
+      var sessionLogin = self.getSessionData(null).getLogin();
+      var tabLogin = self._currentTabLogin;
+      if (tabLogin !== sessionLogin) {
+        logger.warn("User was log out in different tab. Reloading page");
+        window.location.reload(false);
+      }
+    }, 100);
+  }
+};
+
+setInterval(function () {
+  ServerConnector.checkIfUserLogoutFromDifferentTab();
+}, 1000);
+
 ServerConnector.returnUserOrSystemColor = function (userColor, systemPromisedColor) {
   return systemPromisedColor.then(function (systemColor) {
     var color = userColor;
@@ -1884,9 +1908,10 @@ ServerConnector.login = function (login, password) {
     if (data["login"] !== undefined) {
       params.login = data["login"];
     }
+    self._currentTabLogin = params.login;
     self.getSessionData().setLogin(params.login);
     return Promise.resolve(self.getSessionData().getToken());
-  }, function (error) {
+  }).catch(function (error) {
     if (error instanceof NetworkError && error.statusCode === HttpStatus.FORBIDDEN) {
       throw new InvalidCredentialsError("Invalid credentials");
     } else {
@@ -2815,5 +2840,4 @@ ServerConnector.submitErrorToMinervaNet = function (report, callback) {
   }, callback);
 };
 
-
 module.exports = ServerConnector;
diff --git a/frontend-js/src/test/js/ServerConnector-mock.js b/frontend-js/src/test/js/ServerConnector-mock.js
index ca183829e0a588a06cb1ad42f32c3767b56cae63..2690d77827111f9bf99555320e49902950161c57 100644
--- a/frontend-js/src/test/js/ServerConnector-mock.js
+++ b/frontend-js/src/test/js/ServerConnector-mock.js
@@ -43,6 +43,10 @@ function encodeParams(params) {
   return result;
 }
 
+ServerConnectorMock.checkIfUserLogoutFromDifferentTab = function () {
+  logger.debug("checkIfUserLogoutFromDifferentTab is ignored");
+};
+
 ServerConnectorMock._sendRequest = function (params) {
   var self = this;
   var url = params.url;