Yeah I don't get this either. Once he removes the headers, the Headers property in Connection will be updated and the next call to the PrepareRequest function will pick that up. And with every new request a new instance of HttpWebRequestWrapper is created so old headers won't be stored here either.