A little overlap is to be expectedone with **Box2D**, try increasing the `positionIterations` parameter in the call to `World.step` (also consider experimenting with the `velocityIterations` parameter).

Increasing these values gives a more stable simulation with less collision overlap, but it comes at a performance cost.

You can also try stepping the `World` in smaller increments, [Gaffer on Games's Fix Your Timestep][1] has a good description on how to decouple the physics time from the render time.

Play around with the values and find the compromise that works best for you.


 [1]: http://gafferongames.com/game-physics/fix-your-timestep/ "Gaffer On Games Fix Your Timestep"