anchor.diff:              %% Object exists, check if it should be deleted.
               case riak_kv_util:obj_not_deleted(RObj) of
                   undefined ->
  -                    %% object is a tombstone or all siblings are tombstones
  -                    riak_kv_mapred_cache:eject(BKey),
  -
  -                    %% Calculate the index specs to remove...
  -                    IndexSpecs = riak_object:diff_index_specs(undefined, RObj),
  -
  -                    %% Do the delete...
  -                    {Bucket, Key} = BKey,
  -                    case Mod:delete(Bucket, Key, IndexSpecs, ModState) of
  -                        {ok, UpdModState} ->
  -                            UpdState = State#state {modstate = UpdModState },
  +                    case DeleteMode of
  +                        keep ->
  +                            %% keep tombstones indefinitely
  +                            {reply, {fail, Idx, ReqId}, State};
  +                        immediate ->
  +                            UpdState = do_backend_delete(BKey, RObj, State),
                               {reply, {del, Idx, ReqId}, UpdState};
  -                        {error, _Reason, UpdModState} ->
  -                            UpdState = State#state {modstate = UpdModState },
  -                            {reply, {fail, Idx, ReqId}, UpdState}
  +                        Delay when is_integer(Delay) ->
  +                            erlang:send_after(Delay, self(), 
  +                                              {final_delete, BKey,
  +                                               delete_hash(RObj)}),
  +                            %% Nothing checks these messages - will just reply
  +                            %% del for now until we can refactor.
  +                            {reply, {del, Idx, ReqId}, State}
                       end;
                   _ ->
                       %% not a tombstone or not all siblings are tombstones
  
positive.code:                            mod=Mod,
                             modstate=ModState,
                             vnodeid=VId,
                             bucket_buf_size=BucketBufSize,
                             index_buf_size=IndexBufSize,
                             key_buf_size=KeyBufSize,
  
negative.code:     Mod = State#state.mod,
      ModState = State#state.modstate,
      Idx = State#state.idx,
      DeleteMode = State#state.delete_mode,
  
      %% Get the existing object.
      case do_get_term(BKey, Mod, ModState) of
  