As far as #1 goes, the only way to unload an assembly from memory is to unload the entire appdomain, which means that if you want the program to continue running you'll need to be running a seperate appdomain. I haven't messed with this sort of thing in quite a while, so I wouldn't be the best to show you how to do this. Tongue Out