anchor.diff:  
   do_archive(Channel, CachedRows, N) ->
     Transaction = fun() ->
  -    [{ _, _, First }] = mnesia:read({ rows, { first, Channel, node() } }),
  -    [{ _, _, Last }] = mnesia:read({ rows, { last, Channel, node() } }),
  -
  -    if
  -      (Last - First) > CachedRows ->
  -        [{ _, _, { Now, User, Text } }] = mnesia:read({ rows, { node(), Channel, First } }),
  -        { archive_this, First, Now, User, Text }
  +    case mnesia:read({ rows, { first, Channel, node() } }) of
  +      [{ _, _, First }] ->
  +        [{ _, _, Last }] = mnesia:read({ rows, { last, Channel, node() } }),
  +
  +        if
  +          (Last - First) > CachedRows ->
  +            [{ _, _, { Now, User, Text } }] = mnesia:read({ rows, { node(), Channel, First } }),
  +            { archive_this, First, Now, User, Text }
  +            ;
  +          true ->
  +            []
  +        end
           ;
  -      true ->
  -        []
  +        [] ->
  +          []
       end
     end,
  +
     case mnesia:transaction(Transaction) of
       { aborted, Reason } ->
         error_logger:warning_msg("Error: Archiver error: ~p~n", [ Reason ])
  
positive.code: % atc872.erl
  %
  % Version: 0.4
  %
  % Server for the ATC872 online forum service.
  %
  
negative.code: 
  
  -module(atc872).
  -export([ start/1, add_row/5, add_row/6, fetch_rows/4, search_rows/3, archiver/1, full_archive/1, get_channel_list/0, channel_renderer/1, delete_channel/1 ]).
  
  
  
  