diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index fb12da4020d4ca29e535b069c8f20fe148f4ed89..698bd803efce6327162f637ce6bdb845dc3b1f75 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -971,7 +971,7 @@ ServerConnector.getLoggedUser = function () {
   if (self._loggedUser !== undefined) {
     return Promise.resolve(self._loggedUser);
   } else {
-    return self.getUser(self.getSessionData().getLogin()).then(function (user) {
+    self._loggedUser = self.getUser(self.getSessionData().getLogin()).then(function (user) {
       if (user !== null) {
         self._loggedUser = user;
         return self._loggedUser;
@@ -979,6 +979,7 @@ ServerConnector.getLoggedUser = function () {
         return Promise.reject(new Error("User " + self.getSessionData().getLogin() + " doesn't exist"));
       }
     });
+    return self._loggedUser;
   }
 };
 
diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js
index cc30334eec20eadc55584dd4a33800a88119b184..8b8ed6a47fc4c6520402044d90a3c30bed8290ee 100644
--- a/frontend-js/src/test/js/ServerConnector-test.js
+++ b/frontend-js/src/test/js/ServerConnector-test.js
@@ -402,5 +402,22 @@ describe('ServerConnector', function () {
     });
   });
 
+  it('getLoggedUser called twice', function () {
+    var called = 0;
+    var orginalFunction = ServerConnector.getUser;
+    ServerConnector.getUser = function (login) {
+      called++;
+      return Promise.delay(20, orginalFunction.call(ServerConnector, login));
+    };
+
+    var promises = [ServerConnector.getLoggedUser(), ServerConnector.getLoggedUser()];
+    return Promise.all(promises).then(function (result) {
+      assert.ok(result[0] === result[1]);
+      assert.equal(1, called);
+    }).finally(function () {
+      ServerConnector.getUser = orginalFunction;
+    });
+  });
+
 
 });