I'm lost. Is MistyRose() a sub which applies the theme? If so where does it reside and how is it called in the actual program when (presumably) a user chooses it? Is the start up form part of the usual interface or does it just initialise some stuff and then pass control on to another form? Are you using the VB.Net stopwatch to do the grunt work (which would explain the cross threading problem)?