anchor.diff:              lager:error("~p ~p handoff crashed ~p\n", [Index, Mod, Reason])
       end,
       continue(State#state{handoff_pid=undefined});
  +handle_info({'EXIT', Pid, Reason}, _StateName,
  +            State=#state{mod=Mod, index=Index, pool_pid=Pid}) ->
  +    case Reason of
  +        Reason when Reason == normal; Reason == shutdown ->
  +            ok;
  +        _ ->
  +            lager:error("~p ~p worker pool crashed ~p\n", [Index, Mod, Reason])
  +    end,
  +    continue(State#state{pool_pid=undefined});
   
   handle_info({'EXIT', Pid, Reason}, StateName, State=#state{mod=Mod,modstate=ModState}) ->
       %% A linked processes has died so use the
  
positive.code: finish_handoff(State=#state{mod=Mod, 
                              modstate=ModState,
                              index=Idx,
                              handoff_node=HN}) ->
      case riak_core_gossip:finish_handoff(Idx, node(), HN, Mod) of
          continue ->
              continue(State#state{handoff_node=none});
          Res when Res == forward; Res == shutdown ->
              %% Have to issue the delete now.  Once unregistered the
              %% vnode master will spin up a new vnode on demand.  
              {ok, NewModState} = Mod:delete(ModState),
              lager:debug("~p ~p vnode finished handoff and deleted.",
                          [Idx, Mod]),
  
negative.code: 
  terminate(Reason, _StateName, #state{mod=Mod, modstate=ModState,
          pool_pid=Pool}) ->
      %% Shutdown if the pool is still alive - there could be a race on
      %% delivery of the unregistered event and successfully shutting
      %% down the pool.
      case is_pid(Pool) andalso is_process_alive(Pool) of
          true ->
              riak_core_vnode_worker_pool:shutdown_pool(Pool, 60000);
          _ ->
  