diff --git a/product/ERP5/PropertySheet/DivergenceTester.py b/product/ERP5/PropertySheet/DivergenceTester.py
index 01b497b678b270163bfaa44b506f325112a4e193..e1968aadd1caa0615c8637517a043932067e7100 100644
--- a/product/ERP5/PropertySheet/DivergenceTester.py
+++ b/product/ERP5/PropertySheet/DivergenceTester.py
@@ -39,6 +39,11 @@ class DivergenceTester:
        'type'        : 'lines',
        'default'     : (),
        'mode'        : 'w' },
+    {  'id'          : 'testing_provider',
+       'description' : 'Defines whether a divergence tester acts as a testing provider.',
+       'type'        : 'boolean',
+       'default'     : 0,
+       'mode'        : 'rw' },
     {  'id'          : 'matching_provider',
        'description' : 'Defines whether a divergence tester acts as a matching provider.',
        'type'        : 'boolean',
diff --git a/product/ERP5/mixin/rule.py b/product/ERP5/mixin/rule.py
index 4d8b7b04897345076b1ce6201b5f846afbce9d12..b37414d2c5bb08e54d5183f2d1e284f0bd291d52 100644
--- a/product/ERP5/mixin/rule.py
+++ b/product/ERP5/mixin/rule.py
@@ -235,20 +235,14 @@ class RuleMixin:
     """
     raise NotImplementedError
 
-  def _getDivergenceTesterList(self, exclude_quantity=True):
+  def _getDivergenceTesterList(self):
     """
     Return the applicable divergence testers which must
-    be used to test movement divergence.
-
-    exclude_quantity -- if set to true, do not consider
-                        quantity divergence testers
+    be used to test movement divergence. (ie. not all
+    divergence testers of the Rule)
     """
-    tester_list = self.objectValues(
-      portal_type=self.getPortalDivergenceTesterTypeList())
-    if exclude_quantity:
-      return [x for x in tester_list if x.getTestedProperty() != 'quantity']
-    else:
-      return tester_list
+    return filter(lambda x:x.isTestingProvider(), self.objectValues(
+      portal_type=self.getPortalDivergenceTesterTypeList()))
 
   def _getMatchingTesterList(self):
     """
@@ -256,7 +250,8 @@ class RuleMixin:
     be used to match movements and build the diff (ie.
     not all divergence testers of the Rule)
     """
-    raise NotImplementedError
+    return filter(lambda x:x.isMatchingProvider(), self.objectValues(
+      portal_type=self.getPortalDivergenceTesterTypeList()))
 
   def _getQuantityTesterList(self):
     """