diff --git a/product/ERP5/tests/testOrder.py b/product/ERP5/tests/testOrder.py
index f62380de353db49b7ec732a0412625f4911c4a7e..a06e9799539126f1d122ade2bf6df39d643728d5 100644
--- a/product/ERP5/tests/testOrder.py
+++ b/product/ERP5/tests/testOrder.py
@@ -2018,6 +2018,33 @@ class TestOrder(TestOrderMixin, ERP5TypeTestCase):
     self.assertEquals(cell.getTotalQuantity(), 4)
     self.assertEquals(cell.getTotalPrice(), 12)
 
+    # if cell has no price, the total price is None, but a default value can be
+    # provided
+    cell.setPrice(None)
+    get_transaction().commit()
+    self.tic()
+
+    self.assertEquals(order_line.isMovement(), False)
+    self.assertEquals(cell.isMovement(), True)
+
+    self.assertEquals(order.getTotalQuantity(fast=0), 4)
+    self.assertEquals(order.getTotalQuantity(fast=1), 4)
+    self.assertEquals(order.getTotalPrice(fast=0), 0)
+    self.assertEquals(order.getTotalPrice(fast=1), 0)
+
+    self.assertEquals(order_line.getTotalQuantity(fast=0), 4)
+    self.assertEquals(order_line.getTotalQuantity(fast=1), 4)
+    self.assertEquals(order_line.getTotalPrice(fast=0), 0)
+    self.assertEquals(order_line.getTotalPrice(fast=1), 0)
+
+    self.assertEquals(cell.getTotalQuantity(), 4)
+    self.assertEquals(cell.getTotalPrice(), 0)
+
+    # restore the price on the line
+    cell.setPrice(3)
+    get_transaction().commit()
+    self.tic()
+
     # add sub_line to line, cell and line are not movements
     sub_order_line = order_line.newContent(
         portal_type=self.order_line_portal_type,