diff --git a/product/ERP5/tests/testTradeModelLine.py b/product/ERP5/tests/testTradeModelLine.py
index 1f327a2cd07b33b904fe6a8fed36f7d124e2ea49..a91dcffac21732c8b791f83370bb2df0871c724a 100644
--- a/product/ERP5/tests/testTradeModelLine.py
+++ b/product/ERP5/tests/testTradeModelLine.py
@@ -2740,6 +2740,46 @@ return current_movement
     self.assertEqual(2, len(amount_list))
     self.assertEqual(508.51000000000005, getTotalAmount(amount_list))
 
+  def test_tradeModelLineWithEmptyBaseContributionMovement(self):
+    """
+    Make sure that a movement which does not have any base_contribution values
+    does not match to any trade model lines.
+    """
+    trade_condition = self.createTradeCondition()
+
+    # create a model line
+    tax = self.createTradeModelLine(trade_condition,
+                                    reference='TAX',
+                                    base_application_list=['base_amount/tax'],
+                                    base_contribution_list=['base_amount/total_tax'])
+    tax.edit(price=0.05)
+
+    # create an order
+    resource_A = self.createResource('Product', title='A')
+    order = self.createOrder()
+    order.setSpecialiseValue(trade_condition)
+    # create a movement which should be aggregated
+    order_line_1 = order.newContent(portal_type=self.order_line_portal_type,
+                                    price=100, quantity=1,
+                                    resource_value=resource_A,
+                                    base_contribution_list=['base_amount/tax'])
+    # create a movement which base contribution is empty.
+    order_line_2 = order.newContent(portal_type=self.order_line_portal_type,
+                                    price=50, quantity=1,
+                                    resource_value=resource_A,
+                                    base_contribution_list=[])
+
+    transaction.commit()
+    self.tic()
+
+    # check the result
+    amount_list = trade_condition.getAggregatedAmountList(order)
+    self.assertEqual(1, len(amount_list))
+    self.assertEqual(set([order_line_1]),
+                     set(amount_list[0].getCausalityValueList()))
+    self.assertEqual(100*0.05, amount_list[0].getTotalPrice())
+
+
 class TestTradeModelLineSale(TestTradeModelLine):
   invoice_portal_type = 'Sale Invoice Transaction'
   invoice_line_portal_type = 'Invoice Line'