anchor.diff:  		ok ->
               FTP2=FTP#ftp{data= <<>>,block=?STOP},
               wf:send(Sid,FTP2#ftp{status={event,stop},filename=RelPath}),
  -			spawn(fun() -> supervisor:delete_child(n2o,{file,{Sid,filename:basename(RelPath)}}) end),
  +			spawn(fun() -> n2o_async:stop(file,{Sid,filename:basename(FileName)}) end),
   			{stop,normal,FTP2,Async#handler{state=FTP2}} end;
   
   proc(#ftp{sid=Sid,data=Data,block=Block}=FTP,
  
positive.code: 
      wf:info(?MODULE,"Info Init: ~p Offset: ~p Block: ~p~n",[FilePath,FileSize,Block]),
  
      Name={Sid,filename:basename(RelPath)},
      Block2=case Block of 0 -> ?STOP; _ -> ?NEXT end,
      Offset2=case FileSize >= Offset of true -> FileSize; false -> 0 end,
      FTP2=FTP#ftp{block=Block2,offset=Offset2,filename=RelPath,data= <<>>},
  
negative.code:     wf:send(Sid,FTP#ftp{data= <<>>,status={event,init}}),
      {ok,Async};
  
  proc(#ftp{sid=Sid,data=Data,filename=FileName,status= <<"send">>,block=Block}=FTP,
       #handler{state=#ftp{data=State,size=TotalSize,offset=Offset,filename=RelPath}}=Async) when Offset+Block >= TotalSize ->
  	wf:info(?MODULE,"Proc Stop ~p, last piece size: ~p", [FTP#ftp{data= <<>>},byte_size(Data)]),
  	case file:write_file(filename:join(?ROOT,RelPath),<<Data/binary>>,[append,raw]) of
  