     .catch (err)=>
 
       # Reset current sessions if fails
-      @terminalSessions = []
+      if err.message is 'no sessions available'
+        @terminalSessions = if session then [session] else []
+      else
+        @terminalSessions = []
+
       @_fetchingSessions = no
+
+      @syncSessionsWithLocalStorage()
+
+
+
+  getLocalStorage = ->
+
+    return KD.singletons.localStorageController.storage 'Klient', '1.0'
+
+  setActiveSessions = (sessions)->
+
+    getLocalStorage().setValue 'activeSessions', sessions
+
+
+  getActiveSessions: ->
+
+    return (getLocalStorage().getValue 'activeSessions') ? []
+
+
+  syncSessionsWithLocalStorage: ->
+
+    setActiveSessions @getActiveSessions().filter (session)=>
+      session in @terminalSessions
+
+
+  addToActiveSessions: (session)->
+
+    activeSessions = @getActiveSessions()
+    activeSessions.push session  unless session in activeSessions
+
+    setActiveSessions activeSessions
+
+
+  removeFromActiveSessions: (session)->
+
+    activeSessions = @getActiveSessions().filter (old)-> session isnt old
+
+    setActiveSessions activeSessions


      .then (remote) =>

        if @terminalSessions.length is 0
          @fetchTerminalSessions()
        else
          unless remote.session in @terminalSessions
            @terminalSessions.push remote.session


      .then (state) =>

        @removeFromActiveSessions session

        @terminalSessions = @terminalSessions.filter (currentSession)->
          session isnt currentSession

        return state


  fetchTerminalSessions: (session)->

    return Promise.resolve()  if @_fetchingSessions

    @_fetchingSessions = yes

