Making static objects in ofxBox2d. What am I doing wrong?

Dear all,
I have officially spent about a week trying to figure this out :). Any help would make me a very happy camper :sunny:.

I am trying to use a static (solid) body in ofxBox2d. Because it’s a concave object I am breaking it up in little triangles with the triangulation function of ofxBox2d. The triangulation is working fine as long as I don’t create the body as static (ie density of zero).

So in my code I have:

//create shape here//

//triangulate shape here//

// now loop through all the triangles and make a box2d triangle
for (int i=0; i<tris.size(); i++)
{
      ofPtr<ofxBox2dPolygon> triangle = ofPtr<ofxBox2dPolygon>(new ofxBox2dPolygon);
      triangle.get()->addTriangle(tris[i].a, tris[i].b, tris[i].c);
      triangle.get()->setPhysics(1, 0, 0); //density, bounce, friction
      //triangle.get()->body->SetType(b2_staticBody);
      triangle.get()->create(box2d.getWorld());
      polyShapes.push_back(triangle);
    }

Top Picture: The object is dynamic (density > 0), it is triangulated properly but it is moved by the forces of the falling balls because it is dynamic. In red: what the original shape looks like.
Bottom Picture: If I set the density to 0 (or explicitly set it to static by uncomment the “SetType” line in the code above then my object is not drawn correctly (notice lines in top left corner of image) but behaves just like before (ie. balls pass through it, but they bump into “ghost” triangles); In red: the original (input) shape - or the solid object I expect.

I have written a very small program the code of which I am attaching.
src.zip (1.5 KB)

I have tried my best to make a simple case to prove the point. Any help much appreciated :).
Thank you.
marinero