anchor.diff:    %% log4erl:debug("EvictionSignal: ~p", [EvictionSignal]),
     %% log4erl:debug("Pushed into Queue: ~p", [TopicPack]),
     %% log4erl:debug("New EvictionQueue: ~p", [NextEvictionQueue]),
  +
  +  %% Update the oldest stored serial if we dropped something
  +  case EvictionSignal of
  +    normal ->
  +      NextOldestStoredSerial = CurrentOldestStoredSerial;
  +    {dropped, _} ->
  +      QueuePeek = bounded_queue:peek(NextEvictionQueue),
  +      {_Topics, OldestMessageSerial} = (if (QueuePeek == empty) -> {[], 0};
  +        true -> QueuePeek end),
  +      NextOldestStoredSerial = OldestMessageSerial
  +  end,
   
   
     %% The data we store in the message queue is constructed from this MessagePack
  
positive.code:       pid_to_topics = ets:new(list_to_atom(?TABLE_PREFIX ++ "pid_to_topics"), [bag]),
        topic_to_pids = ets:new(list_to_atom(?TABLE_PREFIX ++ "topic_to_pids"), [bag]),
        serial_number = 0,
        %% Bounded queue for keeping track of what we stick into the per_topic_message_queue
        %% This is used for bookeeping for evicting things from the per_topic_message_queue
        %% [{Topics[], Serial#}, ...]
  
negative.code:     pid_to_topics,
      topic_to_pids,
      serial_number,
      oldest_stored_serial,
      eviction_queue,
      per_topic_message_queue
      }).
  