I ran into an interesting problem that I hadn't seen before, but it was pretty simple to solve. The problem was manifest by having the Page_Load event firing twice. At first I was a bit disconcerted. However after a little thought, I figured it out.
As it turns out, there is an AutoEventWireup parameter on the @Page directive of an ASP.NET page. The common practice is to explicitly set this to false, thereby enabling developers to be more flexible in naming their methods. If the parameter is true (or omitted - it defaults to true), then the ASP.NET runtime will automatically 'wire-up' method calls by name (e.g. Page_Load, btnSave_Click, etc).
Well, it turned out that I had both omitted the AutoEventWireup attribute (defaulting to true) and had an explicit event handler (via this.Load += new EventHandler(this.Page_Load);). Therefore, the event was being called once by the runtime (by virtue of the AutoEventWireup) and once explicitly (by virtue of my explicit event handler).
The reason I never experienced this before was because I either always have the AutoEventWireup=”false” in my @Page directive or, more frequently, I override the OnLoad() method on the page and bypass the event mechanism all together to achieve greater performance.