anchor.diff:  decode_dict_items([], Accum) ->
       {Accum, []};
   decode_dict_items(String, Accum) ->
  -    {Key, Rest1} = attempt_string_decode(String),
  -    {Value, Rest2} = decode_b(Rest1),
  -    decode_dict_items(Rest2, [{Key, Value} | Accum]).
  +    case decode_b(String) of
  +	{end_of_data, Rest} ->
  +	    {Accum, Rest};
  +	{Key, Rest1} -> {Value, Rest2} = decode_b(Rest1),
  +			decode_list_items(Rest2, [{Key, Value} | Accum])
  +    end.
  
positive.code: 
  attempt_string_decode(String) ->
      {Number, Data} = lists:splitwith(charPred($:), String),
      ParsedNumber = string:to_integer(Number),
      Rest1 = tl(Data),
      {StrData, Rest} = lists:split(ParsedNumber, Rest1),
      {{string, StrData}, Rest}.
  
negative.code:     {empty_string, "Empty String"};
  decode_b([H | Rest]) ->
      case H of
  	$i ->
  	    decode_integer(Rest);
  	$l ->
  	    decode_list(Rest);
  	$d ->
  	    decode_dict(Rest);
  	$e ->
  	    {end_of_data, Rest};
  	S ->
  	    %% This might fail, and so what ;)
  	    attempt_string_decode([S|Rest])
      end.
  
  charPred(C) ->
  