an obvious bug in CCControlUtils::CCRectUnion

result.origin=ccp(x1,x2);

should be 

result.origin=ccp(x1,y1);