When attempt is made to access action on controller that does not exist, an HttpException is registered in Application_OnError in global.asax, and Response.StatusCode is set to 200.
However, when Application_EndRequest is reached afterwards, Response.StatusCode is then set to 404.
What module is responsible for this change of StatusCode. Something must have been analyzing the HttpException, although I'm unable to figure out based on what is it determined that it should be changed to 404.
EDIT:
Maybe I wasn't clear. I am not setting response code to 200. It is what I've inspected only, it's been set by something else (presumably MVC).