diff --git a/product/ERP5/tests/testBPMCore.py b/product/ERP5/tests/testBPMCore.py
index 8b8f7c7e7723f8813f489472f517b27008368773..201f3742b08b728bdcb3ee58a6551eba7b1e8e93 100644
--- a/product/ERP5/tests/testBPMCore.py
+++ b/product/ERP5/tests/testBPMCore.py
@@ -1799,6 +1799,40 @@ class TestBPMTestCases(TestBPMMixin):
     self.assertEquals([q.getReference() for q in trade_model_line_list],
         [q.getReference() for q in [A, B, C, D]])
 
+  def test_tradeModelLineWithFixedPrice(self):
+    """
+      Check it's possible to have fixed quantity on lines. Sometimes we want
+      to say "discount 10 euros" or "pay more 10 euros" instead of saying "10%
+      discount from total"
+    """
+    trade_condition = self.createTradeCondition()
+
+    # create a model line with 100 euros
+    A = self.createTradeModelLine(trade_condition, reference='A',
+        base_contribution_list=['base_amount/total'])
+    A.edit(quantity=100, price=1)
+
+    # add a discount of 10 euros
+    B = self.createTradeModelLine(trade_condition, reference='B',
+        base_contribution_list=['base_amount/total'])
+    B.edit(quantity=10, price=-1)
+
+    order = self.createOrder()
+    order.setSpecialiseValue(trade_condition)
+    amount_list = trade_condition.getAggregatedAmountList(order)
+    self.assertEquals(2, len(amount_list))
+    total_amount_list = [q for q in amount_list
+        if q.getBaseContribution() == 'base_amount/total']
+
+    self.assertEquals(2, len(total_amount_list))
+
+    # the total amount for base_amount/total should be of 100 - 10 = 90 euros
+    total_amount = 0
+    for amount in total_amount_list:
+      total_amount += amount.getTotalPrice()
+
+    self.assertEqual(total_amount, 100 - 10)
+
   def test_getAggregatedAmountList(self):
     """
       Test for case, when discount contributes to tax, and order has mix of contributing lines