What is the magic trick to have a sprite scale?

I can’t for the life of me make a sprite scale. Maybe my understanding of display size and content size is imperfect. How do I make a sprite bigger or smaller?

I’m working with code derived from Box2DTest.

CCNode *parent = CCNode::create();
addChild(parent, 0, 1);

...

m_pSpriteTexture = CCTextureCache::sharedTextureCache()->addImage("myimage.png");
CCPhysicsSprite *sprite = CCPhysicsSprite::createWithTexture(m_pSpriteTexture);
parent->addChild(sprite);
sprite->setScale(0.5f); // Not working!
sprite->setBody(body); // from b2Body init earlier on
sprite->setPTMRatio(PTM_RATIO);
sprite->setPosition( ccp( p.x, p.y) );
sprite->setIgnoreBodyRotation(true);

Help?

Ok, I looked at the sample and this works, but not with CCPhysicsSprite (event if used with create()). What gives?

CCSprite* sprite2 = CCSprite::create("myimage.png");
sprite2->setAnchorPoint(CCPointZero);
sprite2->setScaleX(0.6f);
sprite2->setPosition(VisibleRect::center());
addChild(sprite2);