Yes, I agree with you :) May I just say that by "shared data" I was attempting to infer "shared state" in the global scope. But shared state can be local too and I didn't make that clear. Therefore I should have been more explicit by specifically mentioning the scope of state. And lastly I should have made it clear that the potential problems of accessing scope outside the scope of the calling context are not limited to multithreading but exacerbated instead. Thanks for your response!