Thanks. Yes that's what my guess. By the time S1 executes it creates two obejcts. One obejct is in the pool. in the second stmt since we are using "new" it should forcefully creates another object but it never creates another one to put in to the pool. Correct ???