Even I thought so, but I was wrong.
Instead of Boolean("true"),
try either
Boolean b = new Boolean(new String("false"));
OR
Boolean b = new Boolean(null); // same as "false"
The comparison with 's' would still return true.
My guess is the toString() method is referring to the
same anonymous string created in the string pool pointed
to by 's'.
Java Nut, when you say wrapper classes dont' work, are
you saying Boolean is not a wrapper class?

Ajith