anchor.diff:  
   init([TorrentID, RelPath, FullPath]) ->
       {ok, DirPid} = etorrent_io:await_directory(TorrentID),
  -    DirMonitor = etorrent:monitor(process, DirPid),
  +    DirMonitor = erlang:monitor(process, DirPid),
       _ = etorrent_io:register_file_server(TorrentID, RelPath),
       InitState = #state{
           torrent=TorrentID,
           handle=closed,
           relpath=RelPath,
           fullpath=FullPath,
  -        dir_monitor=DirMonitor},
  +        dir_monitor=DirMonitor,
  +        await_ref=none},
       {ok, InitState}.
   
   handle_call({read, _, _}, _, State) when State#state.handle == closed ->
  
positive.code: 
  -record(state, {
      torrent :: torrent_id(),
      handle=closed :: 'closed' | file:io_device(),
      relpath :: file_path(),
      fullpath :: file_path(),
      dir_monitor :: reference()}).
  
  
  -spec start_link(torrent_id(), file_path(), file_path()) -> {'ok', pid()}.
  
negative.code:     NewState = State#state{handle=Handle},
      {noreply, NewState};
  
  handle_cast(close, State) when State#state.dir_monitor =/= none ->
      #state{
          torrent=Torrent,
          handle=Handle,
  