ASP.NET Profile save overwritten by old values
See the question and my original answer on StackOverflowThe profile is by default automatically saved at the end of the execution of an ASP.NET page, see the profile Element (ASP.NET Settings Schema) documentation on this. This explains the second "mysterious" save that you observe.
You can try to change automaticSaveEnabled to false.