if test uses bad logic (if ( b = false) instead or if (b== false))
Committed patch with slight modification by using if (!b) instead of if (b == false).
Committed patch with slight modification by using if (!b) instead of if (b == false).