diff --git a/addons/mrp/models/mrp_bom.py b/addons/mrp/models/mrp_bom.py
index 7a154b16d0f69440dedda79e93748fe0cf8b6e78..5256e23a0fd80d866de300ee89162a462e07ef5c 100644
--- a/addons/mrp/models/mrp_bom.py
+++ b/addons/mrp/models/mrp_bom.py
@@ -122,6 +122,14 @@ class MrpBom(models.Model):
             for line in self.bom_line_ids:
                 line.bom_product_template_attribute_value_ids = False
 
+    def copy(self, default=None):
+        res = super().copy(default)
+        for bom_line in res.bom_line_ids:
+            if bom_line.operation_id:
+                operation = res.operation_ids.filtered(lambda op: op.name == bom_line.operation_id.name and op.workcenter_id == bom_line.operation_id.workcenter_id)
+                bom_line.operation_id = operation
+        return res
+
     @api.model
     def name_create(self, name):
         # prevent to use string as product_tmpl_id