anchor.diff:  get_search_results(Channel, RowsBack, SearchString) ->
     case mnesia:read({ rows, { last, Channel, node() } }) of
       [ { _, _, Last } ] ->
  -      { -1, lists:reverse(search_row(Channel, RowsBack, SearchString, Last, 0, [])) }
  +      Results = lists:reverse(search_row(Channel, RowsBack, SearchString, Last, 0, [])),
  +
  +      if
  +        length(Results) < RowsBack ->
  +          [ { _, _, Fst } ] = mnesia:read({ rows, { first, Channel, node() } }),
  +          [ { _, _, { First, _, _ } } ] = mnesia:read({ rows, { node(), Channel, Fst } }),
  +          [ { _, _, { Created, _ } } ] = mnesia:read({ rows, { created, Channel, node() } }),
  +          { Results, First, Created }
  +          ;
  +        true ->
  +          Results
  +      end
         ;
       [] ->
         no_such_channel
  
positive.code:       error_logger:warning_msg("Error: Search rows failed: ~p~n", [Reason]),
        error
        ;
      { atomic, Rval } ->
        Rval
    end.
  
  
  
negative.code: % atc872.erl
  %
  % Server for the ATC872 online forum service.
  %
  % Copyright (c) 2013, Chris Bristow
  % All rights reserved.
  % 
  