Errors in making an altered copy of a face

Hi All,

I've got a cylinder face which has inner holes in it, and I want to make a copy without the holes. So I did the following:

TopoDS_Face myFace = ...;

TopoDS_Wire outerWire = BRepTools::OuterWire(myFace);
Handle(Geom_Surface) surf = BRep_Tool::Surface(myFace);

BRepBuilderAPI_MakeFace makeFace(surf, outerWire);
TopoDS_Face copy = makeFace.Face();

However, when I tried to show the copied face, it showed nothing.
I mean, the above code ran well without errors and returned a face object which seems to be NULL.
The code works fine with planar surface.
I displayed the wire as well, which seems good in the attached screenshot. But the copied face is invisible.

Is there anything done wrong in the above code?

Attachments: