anchor.diff:  	  iconv_cd_to_utf8,
   	  iconv_cd_from_utf8,
   	  use_utf8 = true,
  -	  sys_ops = 0,                 %% allowed operations, default=none !!
  +	  sys_ops = ?OPS_RESTRICTED,    %% allowed operations, default=none !!
   	  jail = true,                 %% do not allow '..' in RETR path
   	  event_mod                    %% call <event_mod>:event(Event) sometimes...
   	 }).
  
positive.code:     end,
      St.
  
  lst(Arg, Ctl, St) ->
      assert_valid(Ctl, St),
      auth_op(Ctl, ?OP_LST, St),
      DirR = rel_name(from_utf8(Arg,St), St#cstate.wd),
      authorize(?AUTH_READ, abs_name(DirR), Ctl, St),
      assert_exists(Ctl, St#cstate.rootwd, DirR, directory),
      Dir = jail(Ctl, filename:join(St#cstate.rootwd, DirR), St),
      {Data,St1} = open_data(Ctl, St),
      dir_list(Ctl, Data, Dir, DirR, St, list),
      gen_tcp:close(Data),
      St1.
  
      
  nlst(Arg,Ctl,St) ->
      assert_valid(Ctl, St),
  
negative.code: 	      fun(E) when Type == nlst ->
  		      gen_tcp:send(Data, to_utf8(E, St) ++ ?CRNL);
  		 (E) when Type == list ->
  		      %gen_tcp:send(Data, list_info(Dir1, E, St) ++ ?CRNL),
  			  A = list_info(Dir1, E, St),
  		      gen_tcp:send(Data, A ++ ?CRNL),
  			  io:format("listinfo: ~w~n", [A])
  	      end,
  	      List),
  	    rsend(Ctl, 226);
  