anchor.diff:                      try_reply(Error, NewStateData2)
               end
       end.
  +
  +-spec truncated(non_neg_integer(), {list(), ordsets:ordset()}) -> boolean().
  +truncated(NumKeysRequested, ObjectsAndPrefixes) ->
  +    NumKeysRequested < riak_cs_list_objects_utils:manifests_and_prefix_length(ObjectsAndPrefixes) andalso
  +    %% this is because (strangely) S3 returns `false' for
  +    %% `isTruncted' if `max-keys=0', even if there are more keys.
  +    %% The `Ceph' tests were nice to find this.
  +    NumKeysRequested =/= 0.
   
   enough_results(#state{req=?LOREQ{max_keys=UserMaxKeys},
                         reached_end_of_keyspace=EndOfKeyspace,
  
positive.code:     ObjectPrefixTuple2 =
      riak_cs_list_objects_utils:filter_prefix_keys(ObjectPrefixTuple, Request),
      ReachedEnd = ObjectBufferLength < NumKeysRequested,
      Truncated = UserMaxKeys < riak_cs_list_objects_utils:manifests_and_prefix_length(ObjectPrefixTuple2) andalso
                  %% this is because (strangely) S3 returns `false' for
                  %% `isTruncted' if `max-keys=0', even if there are more keys.
                  %% The `Ceph' tests were nice to find this.
                  UserMaxKeys =/= 0,
  
      SlicedTaggedItems =
      riak_cs_list_objects_utils:manifests_and_prefix_slice(ObjectPrefixTuple2,
                                                            UserMaxKeys),
  
negative.code:                                                common_prefixes=NewPrefixes,
                                                 reached_end_of_keyspace=ReachedEnd,
                                                 object_buffer=[]},
      respond(NewStateData, NewManis, NewPrefixes, Truncated).
  
  -spec update_profiling_and_last_request(state(), list(), integer()) ->
      state().
  update_profiling_and_last_request(State, ObjectBuffer, ObjectBufferLength) ->
      State2 = update_profiling_state_with_end(State, os:timestamp(),
                                               ObjectBufferLength),
      update_last_request_state(State2, ObjectBuffer).
  
  -spec respond(state(), list(), ordsets:ordset(), boolean()) ->
      fsm_state_return().
  respond(StateData=#state{req=Request},
          Manifests, Prefixes, Truncated) ->
      case enough_results(StateData) of
          true ->
              Response =
              response_from_manifests_and_common_prefixes(Request,
                                                          Truncated,
                                                          {Manifests, Prefixes}),
              try_reply({ok, Response}, StateData);
          false ->
              RiakcPid = StateData#state.riakc_pid,
              case make_2i_request(RiakcPid, StateData) of
                  {NewStateData2, {ok, ReqId}} ->
                      {next_state, waiting_object_list,
                       NewStateData2#state{object_list_req_id=ReqId}};
  