                 opts.cb(false, @)
 
     _connect: (cb) =>
-        delete codemirror_sessions.by_path[@project_id + @path]
-        delete codemirror_sessions.by_uuid[@session_uuid]
-        delete @_sync_lock
+        # The downstream clients of this hub
+        @diffsync_clients = {}
         @local_hub.call
             mesg : message.codemirror_get_session(path:@path, project_id:@project_id, session_uuid:@session_uuid)
             cb   : (err, resp) =>

                else
                    @session_uuid = resp.session_uuid
                    @chat         = resp.chat
                    codemirror_sessions.by_uuid[@session_uuid] = @

                    # Reconnect to the upstream (local_hub) server
                    @diffsync_server = new diffsync.DiffSync(doc:resp.content)
                    @diffsync_server.connect(new CodeMirrorDiffSyncLocalHub(@))

                    #

        # The downstream clients of this hub
        @diffsync_clients = {}

        codemirror_sessions.by_path[@project_id + @path] = @
        @connect (err) =>
            if err
                opts.cb(err)
