diff --git a/src/Mod/Part/App/TopoShapeExpansion.cpp b/src/Mod/Part/App/TopoShapeExpansion.cpp index 0b38d2be82..d4ad8cfe9f 100644 --- a/src/Mod/Part/App/TopoShapeExpansion.cpp +++ b/src/Mod/Part/App/TopoShapeExpansion.cpp @@ -2697,8 +2697,15 @@ TopoShape& TopoShape::makeElementOffset2D(const TopoShape& shape, if (shape.getShape().ShapeType() == TopAbs_COMPOUND) { if (!intersection) { // simply recursively process the children, independently - expandCompound(shape, shapesToProcess); - outputPolicy = SingleShapeCompoundCreationPolicy::forceCompound; + for(TopoDS_Iterator it(shape.getShape()); it.More() ; it.Next()) { + shapesToReturn.push_back(TopoShape(it.Value()).makeElementOffset2D(offset, + joinType, + fill, + allowOpenResult, + intersection, + op)); + outputPolicy = SingleShapeCompoundCreationPolicy::forceCompound; + } } else { // collect non-compounds from this compound for collective offset. Process other shapes