diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index a5932311c29cb3a83c86edf467e690863156977d..e6163a3750c22e63a13e0c5fb9439133f6c7e1ff 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -186,6 +186,16 @@ class PurchaseOrder(models.Model):
                 raise UserError(_('In order to delete a purchase order, you must cancel it first.'))
         return super(PurchaseOrder, self).unlink()
 
+    @api.multi
+    def copy(self, default=None):
+        new_po = super(PurchaseOrder, self).copy()
+        for line in new_po.order_line:
+            seller = line.product_id._select_seller(
+                line.product_id, partner_id=line.partner_id, quantity=line.product_qty,
+                date=line.order_id.date_order and line.order_id.date_order[:10], uom_id=line.product_uom)
+            line.date_planned = line._get_date_planned(seller)
+        return new_po
+
     @api.multi
     def _track_subtype(self, init_values):
         self.ensure_one()