 
         @syncdb.save()
 
-    declare_editing: (message) =>
+    toggle_editing: (message, is_editing) =>
         if not @syncdb?
             # TODO: give an error or try again later?
             return
         author_id = @redux.getStore('account').get_account_id()
+
+        if is_editing
+            editing = message.get('editing').add(author_id)
+        else
+            editing = message.get('editing').remove(author_id)
+
+        console.log("TOGGLE EDITORS:", editing.toJS())
         @syncdb.update
             set :
-                editing : message.get('editing')?.merge({author_id : true}).toJS() ? {author_id : true}
+                editing : editing.toJS()
             where :
                 date: message.get('date')
             is_equal: (a, b) => (a - 0) == (b - 0)

                     is_prev_sender   = {is_prev_message_sender(i, sorted_dates, @props.messages)}
                     is_next_sender   = {is_next_message_sender(i, sorted_dates, @props.messages)}
                     show_avatar      = {not is_next_message_sender(i, sorted_dates, @props.messages)}
                     sender_name      = {sender_name}
                     editor_name      = {editor_name}
                     actions          = {@props.actions}
                    />
        return v

    render: ->

                #console.log('change', x.insert)
                # OPTIMIZATION: make into custom conversion to immutable
                x.insert.history = immutable.Stack(immutable.fromJS(x.insert.history))
                x.insert.editing = immutable.Set(x.insert.editing)
                messages = messages.set("#{x.insert.date - 0}", immutable.fromJS(x.insert))
            else if x.remove
                messages = messages.delete(x.remove.date - 0)
