My initail though was to close all instances on the variable initializations. This way you can open word without worring about if it is an existing or new instance.

I do not have access to work with so I can not say that the same thing will work for sure but I would think it does.

I would check the processid I think it is, before closing the instance and compare it to the one you are (you are the current instance).

Are you closing and reopening word or access? if you are you may need to make sure you are saving the docs or telling word you do not want to. That one bit me a couple of times.

I don't know how much trouble this would be but try to write a sub that write the values of all of you public vars. Write the staus of each to an ASCII file, this will help in the future when there are problems. Setup a catch all error funtion and dump this information.