anchor.diff:  	imapd_util:send(#imap_resp{tag = Tag, status = no},State),
   	State;
   command(#imap_cmd{tag = Tag, cmd = lsub = Command, data = {Reference,MailBoxName}},
  -		#imapd_fsm{state = authenticated, user = User} = State) ->
  +		#imapd_fsm{state = FSMState, user = User} = State) when FSMState =:= authenticated; FSMState =:= selected -> 
   	% @todo incorparete reference name. Simplier not to use at first
   	?D({Reference,MailBoxName}),
   	Store = gen_store:lookup(mailbox_store, State),
  
positive.code: 	imapd_util:send(#imap_resp{tag = Tag, status = no},State),
  	State;
  command(#imap_cmd{tag = Tag, cmd = status = Command, data = {MailBoxName,Flags}},
  		#imapd_fsm{state = authenticated, user = User} = State) -> 
  	imapd_util:out(Command,MailBoxName,State),
  	Store = gen_store:lookup(mailbox_store, State),
  	case Store:select({string:strip(MailBoxName),User#user.name}) of
  
negative.code: 	imapd_util:send(#imap_resp{tag = Tag, status = no, info = "Failure: not authenticated"},State),
  	State;
  command(#imap_cmd{tag = Tag, cmd = create = Command, data = Data},
  		#imapd_fsm{state = FSMState, user = User} = State) when FSMState =:= authenticated; FSMState =:= selected -> 
  	imapd_util:out(Command,Data,State),
  	Store = gen_store:lookup(mailbox_store, State),
  	case Store:select({Data,User#user.name}) of
  