diff --git a/addons/stock/models/stock_pack_operation.py b/addons/stock/models/stock_pack_operation.py
index 609898a43806f69aa205bd8a49f27348e2a1ce22..738e2dd384dc82532ea387a982b91e3ca3e37f18 100644
--- a/addons/stock/models/stock_pack_operation.py
+++ b/addons/stock/models/stock_pack_operation.py
@@ -110,10 +110,11 @@ class PackOperation(models.Model):
                 qty -= record.qty
             self.remaining_qty = float_round(qty, precision_rounding=self.product_id.uom_id.rounding)
 
-    @api.one
+    @api.multi
     def _compute_location_description(self):
-        self.from_loc = '%s%s' % (self.location_id.name, self.product_id and self.package_id.name or '')
-        self.to_loc = '%s%s' % (self.location_dest_id.name, self.result_package_id.name or '')
+        for operation, operation_sudo in zip(self, self.sudo()):
+            self.from_loc = '%s%s' % (operation_sudo.location_id.name, self.product_id and operation_sudo.package_id.name or '')
+            self.to_loc = '%s%s' % (operation_sudo.location_dest_id.name, operation_sudo.result_package_id.name or '')
 
     @api.one
     def _compute_lots_visible(self):