diff --git a/product/ERP5/Document/Amount.py b/product/ERP5/Document/Amount.py
index f5f79a39ff9e6bfbbc0bb5133f9fb6b229a7cb8d..fa92aeaf2300d8653779e936c2d6a02e3c7077cc 100755
--- a/product/ERP5/Document/Amount.py
+++ b/product/ERP5/Document/Amount.py
@@ -69,8 +69,10 @@ class Amount(Base, Variated):
 
   # A few more mix-in methods which should be relocated
   # THIS MUST BE UPDATE WITH CATEGORY ACQUISITION
-  security.declareProtected(Permissions.AccessContentsInformation, 'getVariationCategoryList')
-  def getVariationCategoryList(self, base_category_list = ()):
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getVariationCategoryList')
+  def getVariationCategoryList(self, base_category_list=(),
+                               omit_option_base_category=0):
     """
       Returns the possible discrete variations
       (as a list of relative urls to categories)
@@ -78,14 +80,15 @@ class Amount(Base, Variated):
     result = []
     resource = self.getDefaultResourceValue()
     if resource is not None:
-      resource_variation_list = resource.getVariationBaseCategoryList()
-
+      resource_variation_list = resource.getVariationBaseCategoryList(
+                           omit_option_base_category=omit_option_base_category)
       if len(base_category_list) > 0 :
-        variation_list = filter(lambda x: x in base_category_list ,resource_variation_list)
+        variation_list = filter(lambda x: x in base_category_list,
+                                resource_variation_list)
       else :
         variation_list = resource_variation_list
       if len(variation_list) > 0:
-        result = self.getAcquiredCategoryMembershipList(variation_list, base = 1)
+        result = self.getAcquiredCategoryMembershipList(variation_list, base=1)
     return result
 
   security.declareProtected(Permissions.AccessContentsInformation,
@@ -141,14 +144,17 @@ class Amount(Base, Variated):
     self._setVariationCategoryList(value)
     self.reindexObject()
 
-  security.declareProtected(Permissions.ModifyPortalContent, 'getVariationBaseCategoryList')
-  def getVariationBaseCategoryList(self):
+  security.declareProtected(Permissions.ModifyPortalContent, 
+                            'getVariationBaseCategoryList')
+  def getVariationBaseCategoryList(self, omit_option_base_category=0):
     """
-      Return the list of base_category from all variation related to amount.
+      Return the list of base_category from all variation related to 
+      amount.
       It is maybe a nonsense, but useful for correcting user errors.
     """
     base_category_list = []
-    for category in self.getVariationCategoryList():
+    for category in self.getVariationCategoryList(
+                      omit_option_base_category=omit_option_base_category):
       base_category = category.split('/')[0]
       if base_category not in base_category_list:
         base_category_list.append(base_category)
@@ -202,7 +208,9 @@ class Amount(Base, Variated):
       Returns possible variation category values for the
       order line according to the default resource.
     """
-    return [x[1] for x in self.getVariationRangeCategoryItemList()]
+    return [x[1] for x in self.getVariationRangeCategoryItemList(
+                                     base_category_list=base_category_list,
+                                     base=base)]
 
   security.declareProtected(Permissions.AccessContentsInformation,
                                             'getVariationRangeBaseCategoryList')