anchor.diff:              ProceedFun(Success);
           {error, {insufficient_vnodes,_,need,_}} ->
               RetryFun(NumRetries + 2);
  -        {error, Why} when Why == notfound; Why == timeout;
  -                          Why == <<"{insufficient_vnodes,0,need,1}">> ->
  +        {error, Why} when Why == notfound;
  +                          Why == timeout;
  +                          Why == disconnected;
  +                          Why == <<"{insufficient_vnodes,0,need,1}">>;
  +                          Why == {insufficient_vnodes,0,need,1} ->
               handle_local_notfound(RiakcPid, FullBucket, FullKey, GetOptions2,
                                     ProceedFun, RetryFun, NumRetries, UseProxyGet,
                                     ProxyActive, ClusterID);
  -        {error, disconnected} ->
  -            _ = lager:error("do_get_block: socket disconnected"),
  -            RetryFun(NumRetries + 1);
           {error, Other} ->
               _ = lager:error("do_get_block: other error 1: ~p\n", [Other]),
               RetryFun(failure)
  
positive.code:     case get_block_local(RiakcPid, FullBucket, FullKey, GetOptions2, 60*1000) of
          {ok, _} = Success ->
              ProceedFun(Success);
          {error, Why} when Why == notfound; Why == timeout ->
              case UseProxyGet of
                  true when ProxyActive ->
                      case get_block_remote(RiakcPid, FullBucket, FullKey,
  
negative.code:                 false ->
                      RetryFun(failure)
              end;
          {error, Other} ->
              _ = lager:error("do_get_block: other error 2: ~p\n", [Other]),
              RetryFun(failure)
  