Thanks for the reply Fabio. However I need to sheepishly hold my hand up here. Looked at the code again this morning with fresh eyes and had a "Doh!" moment. I *thought* I was using different sessions per thread but I realised the problem was that one of the objects was being loaded in the main thread (with its own session) and used again by the child threads (which had their own seperate session) and doing a lazy load in the child sessions.
I fixed this and the problem, so far, has gone away. Very sorry.... but thank's for the link as I'm doing quite a bit of multi-threaded stuff with NH at the moment, so it could be useful.
