Well my thread aware filter is working. It involves 3 threads and two independent Directshow filters sharing data. Debugging realtime apps is a pain! You get a crash and have to try and deduce why. I have found though that start up and shut down sequencing is vital. You can't delete common variables until all threads have ceased to use them.
Thanks again for all your advice. It has been essential.