Originally posted by Sandeep Potnis: Santoo, This looks likes a "passing a reference by value" issue. Try to re-think the question on those lines. Sandeep
I believe that is correct. When you pass an object as a parameter, you are passing a reference(actually a copy of the reference) and you can not effect the contents of the object without invoking a method. s2 = s1 simple changes the reference locally and does not effect the reference of the calling method. I hope that makes sense. Maybe somebody else can explain it better.