diff --git a/addons/mrp_subcontracting/models/stock_move.py b/addons/mrp_subcontracting/models/stock_move.py
index c947ce2b455b15bef2d98697b70fa61856329310..e5e63a1b1898d6e9ab483b20c9ed99a49186ba45 100644
--- a/addons/mrp_subcontracting/models/stock_move.py
+++ b/addons/mrp_subcontracting/models/stock_move.py
@@ -196,7 +196,7 @@ operations.""") % ('\n'.join(overprocessed_moves.mapped('product_id.display_name
     def _update_subcontract_order_qty(self, quantity):
         for move in self:
             quantity_change = quantity - move.product_uom_qty
-            production = move.move_orig_ids.production_id
+            production = move.move_orig_ids.production_id.filtered(lambda p: p.state != 'cancel')
             if production:
                 self.env['change.production.qty'].with_context(skip_activity=True).create({
                     'mo_id': production.id,