diff --git a/addons/stock/data/stock_demo2.xml b/addons/stock/data/stock_demo2.xml
index 5335ea12533..c9ef3c1868a 100644
--- a/addons/stock/data/stock_demo2.xml
+++ b/addons/stock/data/stock_demo2.xml
@@ -535,18 +535,30 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py
index 4af5eeb1a6b..f58b74cb27d 100644
--- a/addons/stock/models/stock_picking.py
+++ b/addons/stock/models/stock_picking.py
@@ -449,6 +449,8 @@ class Picking(models.Model):
def _set_scheduled_date(self):
for picking in self:
+ if picking.state in ('done', 'cancel'):
+ raise UserError(_("You cannot change the Scheduled Date on a done or cancelled transfer."))
picking.move_lines.write({'date_expected': picking.scheduled_date})
def _has_scrap_move(self):