I am writing a Vehicle Details page that populates a series of fields with vehicle information (make,model,reg etc) from a database table based on a VehicleKey passed in via a query string. One of the controls on the page is a listbox containing a list of all the options (sunroof,air con etc) that the vehicle has. It is not directly bound, rather it is populated by a piece of code that loops through an xml doc. All works fine. I then added an "add new vehicle" button that calls a javascript routine on the page to clear all the fields. When the user presses the "Update" button, a server side routine fires to validate the users inputs before saving the new vehicle to the database. If this routine encounters an input error, it pops up a javascript alert with the relevant error message. When this happens, all the fields remain in the state they were in before "Update" was pressed EXCEPT the ListBox. It reverts back to the contents of the previous vehicle entry.<BR><BR>I&#039;ve stepped through the code and the listbox populate routines don&#039;t run on postback so I can only assume that the offending records still exist in the viewstate. How do I clear the viewstate and more to the point why isn&#039;t .NET doing it when it is for all the other controls on the form?<BR><BR>Any help would be greatly appreciated.