anchor.diff:      io:format("EndTime   : ~s~n", [End]),
       io:format("~-36..=s: ~-32..=s ~-32..=s~n",
                 ["Bucket ", "Objects ", "Bytes "]),
  -    %% TODO: Error handling, e.g. StatItems = "{error,{timeout,[]}}"
       [case StatItems of
            ErrorMessage when is_binary(ErrorMessage) ->
                io:format("~-36s: ~s~n", [Bucket, ErrorMessage]);
            _ ->
                {<<"Objects">>, Objects} = lists:keyfind(<<"Objects">>, 1, StatItems),
                {<<"Bytes">>, Bytes}     = lists:keyfind(<<"Bytes">>, 1, StatItems),
  -             io:format("~-36s: ~32B ~32B~n", [Bucket, Objects, Bytes])
  +             io:format("~-36s: ~32B ~32B~n", [Bucket, Objects, Bytes]),
  +             case length(StatItems) =< 2 of
  +                 true -> ok;
  +                 false ->
  +                     [io:format("  +--- ~-29s= ~32B~n", [K, V]) ||
  +                         {K, V} <- StatItems,
  +                         (PrintZeros orelse V =/= 0)]
  +             end
        end || {Bucket, StatItems} <- Buckets].
   
   print_users(RiakcPid, Bucket, Options) ->
  
positive.code: process_command(storage, list, _Opts, RiakcPid) ->
      list_storage(RiakcPid);
  process_command(storage, show, Opts, RiakcPid) ->
      show_storage(RiakcPid, proplists:get_value(key, Opts));
  process_command(block, list, Opts, RiakcPid) ->
      list_blocks(RiakcPid,
                 proplists:get_value(bucket, Opts),
  
negative.code:                    end]]
       || Key <- lists:sort(Keys)].
  
  show_storage(_RiakcPid, undefined, _)->
      usage(storage, show),
      halt(1);
  show_storage(RiakcPid, Key, PrintZeros)->
      [print_storage_stats(Key, SiblingNo, StatsBin, PrintZeros)
       || {SiblingNo, {_RiakMD, StatsBin}}
              <- get_riak_object(RiakcPid, "moss.storage", Key)].
  
  