anchor.diff:            , raw_body = RawBody
             }.
   
  -read_response(ResponseFile, Params) ->
  -  Data    = parse_file(ResponseFile, Params),
  +read_response(ResponseFile, SubstituteParams) ->
  +  Data    = parse_file(ResponseFile, SubstituteParams),
     Headers = lk("headers", Data, []),
     #response{ status_code = lk("status_code", Data)
              , headers     = Headers
  -           , body        =
  -               maybe_parse_body(Headers, read_body(ResponseFile, Params))
  +           , body        = maybe_parse_body(
  +                             Headers, read_body(ResponseFile, SubstituteParams))
              }.
   
   %% Get body from a file if the file exists
  -read_body(File, Params)    ->
  +read_body(File, SubstituteParams)    ->
     case file:read_file(get_body_file(all_body_files(File))) of
  -    {ok, Data}      -> substitute(Data, Params);
  +    {ok, Data}      -> substitute(Data, SubstituteParams);
       {error, enoent} -> ""
     end.
   
  
positive.code:     _ -> parse_json(Body)
    end.
  
  parse_file(File, Params) ->
    {ok, Contents} = file:read_file(File),
    parse_json(substitute(Contents, Params)).
  
  parse_json([])  -> [];
  parse_json(Bin) -> to_proplist(mochijson2:decode(Bin)).
  
negative.code:          "Actual response:~n~p~n",
           [ReqFile, Request, ExpResponse, ActualResponse]).
  
  read_request(RequestFile, RequestParams, SubstituteParams) ->
    Data    = parse_file(RequestFile, SubstituteParams),
    Headers = lk("headers", Data),
    RawBody = read_body(RequestFile, SubstituteParams),
    #request{ url      = lk(url, RequestParams, lk("url", Data))
            , host     = lk(host, RequestParams, lk("host", Data))
            , port     = lk(port, RequestParams, lk("port", Data))
  