https://aspnetwebstack.codeplex.com/workitem/1762

Registration for disposal happened too late.

Registration was moved up the callstack and now preflight calls dispose correctly.