diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml
index b1968178ec88b25c0aab309daf1ead848d81b756..a7884bdd04a26d8ee174bc5777d15196a57c7833 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml
@@ -68,8 +68,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>"""\n
-Get the report sections for account statement.\n
+            <value> <string>"""Get the report sections for account statement.\n
 Account is the combination of :\n
    - node (the Account in account module)\n
    - destination_section (the Entity in organisation / person module)\n
@@ -89,6 +88,8 @@ transaction_simulation_state = request[\'transaction_simulation_state\']\n
 from_date = request.get(\'from_date\', None)\n
 omit_grouping_reference = request.get(\'omit_grouping_reference\', 0)\n
 \n
+request.other[\'is_accounting_report\'] = True\n
+\n
 params = {\n
   \'at_date\'                      : at_date,\n
   \'section_category\'             : transaction_section_category,\n
@@ -99,16 +100,6 @@ params = {\n
   \'from_date_summary\' : 1\n
 }\n
 \n
-preferences = {\n
-  \'preferred_accounting_transaction_at_date\'          : at_date,\n
-  \'preferred_accounting_transaction_simulation_state\' :\n
-                    transaction_simulation_state,\n
-  \'preferred_accounting_transaction_section_category\' :\n
-                    transaction_section_category,\n
-  # XXX put omit_grouping_reference in preferences ?\n
-  \'preferred_accounting_omit_grouping_reference\' : omit_grouping_reference,\n
-}\n
-\n
 if from_date:\n
   params[\'from_date\'] = from_date\n
   preferences[\'preferred_accounting_transaction_from_date\'] = from_date\n
@@ -121,9 +112,6 @@ if destination_section :\n
 if account:\n
   params[\'node_uid\'] = context.restrictedTraverse(account).getUid()\n
 \n
-from Products.ERP5Type.Cache import clearCache\n
-clearCache() # for preferences\n
-\n
 result = []\n
 portal = context.portal_url.getPortalObject()\n
 \n
@@ -147,8 +135,8 @@ return [ReportSection(\n
               selection_params = params,\n
               selection_columns = account_columns,\n
               listbox_display_mode = \'FlatListMode\',\n
-              selection_sort_order = [(\'delivery.stop_date\', \'ascending\')],\n
-              preferences = preferences )]\n
+              selection_sort_order = [(\'delivery.stop_date\',\n
+                                       \'ascending\')],)]\n
 # vim: syntax=python\n
 </string> </value>
         </item>
@@ -213,11 +201,10 @@ return [ReportSection(\n
                             <string>transaction_simulation_state</string>
                             <string>from_date</string>
                             <string>omit_grouping_reference</string>
+                            <string>True</string>
+                            <string>_write_</string>
                             <string>params</string>
                             <string>preferences</string>
-                            <string>_write_</string>
-                            <string>Products.ERP5Type.Cache</string>
-                            <string>clearCache</string>
                             <string>result</string>
                             <string>portal</string>
                             <string>account_columns</string>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountsReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountsReportSectionList.xml
index ae02d143d77a5c4f9221d38aa130187597769462..25272c8b31a04432f4a37a162751d5fc83051d91 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountsReportSectionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountsReportSectionList.xml
@@ -134,6 +134,12 @@ return result\n
               <none/>
             </value>
         </item>
+        <item>
+            <key> <string>_dav_writelocks</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
         <item>
             <key> <string>_filepath</string> </key>
             <value>
@@ -216,4 +222,25 @@ return result\n
       </dictionary>
     </pickle>
   </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Persistence</string>
+          <string>PersistentMapping</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_container</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
 </ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml
index fbfdead32c9b4403b02c1a71f8e60a5027a8d38d..848b49a088536e72fdb7bd1073886615aefe271c 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml
@@ -68,8 +68,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>"""\n
-  Get the report sections for general ledger\n
+            <value> <string>"""Get the report sections for general ledger\n
 """\n
 from Products.ERP5Form.Report import ReportSection\n
 request  = context.REQUEST\n
@@ -87,13 +86,14 @@ display_categories  = request.get(\'display_categories\', False)\n
 # TODO\n
 omit_grouping_reference = request.get(\'omit_grouping_reference\', False)\n
 \n
+request.other[\'is_accounting_report\'] = True\n
+\n
 params = { \'at_date\'                             : at_date\n
          , \'section_category\'                    : section_category\n
          , \'simulation_state\'                    : simulation_state\n
          , \'accounting_transaction_line_currency\': None\n
          , \'omit_grouping_reference\'             : omit_grouping_reference\n
          , \'from_date_summary\'                   : True\n
-         , \'is_accounting_report\'                : True\n
          }\n
 \n
 if from_date:\n
@@ -116,12 +116,13 @@ account_columns = ( (\'date\', \'Date\')\n
 \n
 if gap:\n
   gap_value_list = [cat_tool.gap.restrictedTraverse(gap)] + \\\n
-                    cat_tool.gap.restrictedTraverse(gap).Category_getSortedCategoryChildValueList()\n
+              cat_tool.gap.restrictedTraverse(gap).getCategoryChildValueList()\n
 else:\n
-  cat = \'gap/%s\' %  context.portal_preferences.getPreferredAccountingTransactionGap() \\\n
-                 or context.getPortalDefaultGapRoot()\n
+  cat = \'gap/%s\' % (\n
+    context.portal_preferences.getPreferredAccountingTransactionGap()\n
+       or context.getPortalDefaultGapRoot())\n
 \n
-  gap_value_list = cat_tool.resolveCategory(cat).Category_getSortedCategoryChildValueList()\n
+  gap_value_list = cat_tool.resolveCategory(cat).getCategoryChildValueList()\n
 \n
 # we don\'t want to display accounts that don\'t have any transactions associated,\n
 # so we use a cache to see if the account contains transaction or not ( regardless\n
@@ -133,13 +134,17 @@ if account_inventory_list_cache_params.has_key(\'from_date\'):\n
 \n
 for c in gap_value_list:\n
   account_list = c.getGapRelatedValueList(portal_type="Account")\n
-  strict_account_list = c.getGapRelatedValueList(portal_type="Account", strict_membership=1)\n
+  strict_account_list = c.getGapRelatedValueList(portal_type="Account",\n
+                                                 strict_membership=1)\n
 \n
   skip_branch = 1\n
   for account in account_list:\n
     if account.getUid() not in account_inventory_list_cache:\n
-      account_inventory_list_cache[account.getUid()] = len(sim_tool.getInventoryList( omit_simulation = 1,\n
-          node_uid = account.getUid(), **account_inventory_list_cache_params))\n
+      account_inventory_list_cache[account.getUid()] = len(\n
+                      sim_tool.getMovementHistoryList(\n
+                          omit_simulation=1,\n
+                          node_uid=account.getUid(),\n
+                          **account_inventory_list_cache_params))\n
     if account_inventory_list_cache[account.getUid()] != 0:\n
       skip_branch = 0\n
 \n
@@ -158,8 +163,9 @@ for c in gap_value_list:\n
   if len(strict_account_list):\n
     for account in strict_account_list:\n
       if account.getAccountTypeId() in (\'payable\', \'receivable\'):\n
-        for third_party_brain in context.Account_zDistinctSectionList( at_date = at_date\n
-                                                                     , simulation_state = simulation_state):\n
+        for third_party_brain in context.Account_zDistinctSectionList(\n
+                                      at_date=at_date,\n
+                                      simulation_state=simulation_state):\n
           third_party_params = params.copy()\n
           third_party_params[\'mirror_section_uid\'] = third_party_brain.uid\n
           third_party_uid = third_party_brain.uid or " = NULL"\n
@@ -167,26 +173,27 @@ for c in gap_value_list:\n
                                   , account.getTitle()\n
                                   , third_party_brain.title\n
                                   )\n
-          if len(sim_tool.getInventoryList( mirror_section_uid = third_party_uid\n
-                                          , node_uid           = account.getUid()\n
-                                          , **account_inventory_list_cache_params\n
-                                          )):\n
-            result.append(ReportSection( path                 = account.getPhysicalPath()\n
-                                       , title                = title\n
-                                       , level                = 9\n
-                                       , form_id              = \'Account_viewAccountingTransactionList\'\n
-                                       , selection_name       = \'acount_preference_selection\'\n
-                                       , selection_params     = third_party_params.copy()\n
-                                       , selection_columns    = account_columns\n
-                                       , listbox_display_mode = \'FlatListMode\'\n
-                                       , selection_sort_order = [(\'delivery.stop_date\', \'ascending\')]\n
-                                       ))\n
+          if len(sim_tool.getMovementHistoryList(\n
+                        mirror_section_uid=third_party_uid,\n
+                        node_uid=account.getUid(),\n
+                        **account_inventory_list_cache_params)):\n
+            result.append(ReportSection(\n
+                      path=account.getPhysicalPath(),\n
+                      title=title,\n
+                      level=9,\n
+                      form_id=\'Account_viewAccountingTransactionList\',\n
+                      selection_name=\'acount_preference_selection\',\n
+                      selection_params=third_party_params.copy(),\n
+                      selection_columns=account_columns,\n
+                      listbox_display_mode=\'FlatListMode\',\n
+                      selection_sort_order=[(\'delivery.stop_date\',\n
+                                             \'ascending\')]))\n
 \n
       elif account.isMemberOf(\'account_type/asset/cash/bank\'):\n
         # Bank Account\n
-        for bank_account_brain in account.Account_zGetDistinctPaymentList( at_date = at_date\n
-                                                                         , simulation_state = simulation_state\n
-                                                                         ):\n
+        for bank_account_brain in account.Account_zGetDistinctPaymentList(\n
+                                      at_date=at_date,\n
+                                      simulation_state=simulation_state):\n
           bank_params = params.copy()\n
           if bank_account_brain.path is not None:\n
             bank_params[\'payment_uid\'] = bank_account_brain.uid\n
@@ -198,34 +205,35 @@ for c in gap_value_list:\n
           else :\n
             bank_params[\'no_payment_uid\'] = 1\n
             title = "%s: %s" % ( c.getId(), account.getTitle())\n
-          if len(sim_tool.getInventoryList( payment_uid = bank_account_uid\n
-                                          , node_uid = account.getUid()\n
-                                          , **account_inventory_list_cache_params\n
-                                          )):\n
-            result.append(ReportSection( path                 = account.getPhysicalPath()\n
-                                       , title                = title\n
-                                       , level                = 9\n
-                                       , form_id              = \'Account_viewAccountingTransactionList\'\n
-                                       , selection_name       = \'acount_preference_selection\'\n
-                                       , selection_params     = bank_params.copy()\n
-                                       , selection_columns    = account_columns\n
-                                       , listbox_display_mode = \'FlatListMode\'\n
-                                       , selection_sort_order = [(\'delivery.stop_date\', \'ascending\')]\n
-                                       ))\n
-      else:\n
-        if len(sim_tool.getInventoryList( node_uid = account.getUid()\n
-                                        , **account_inventory_list_cache_params\n
-                                        )):\n
-          result.append(ReportSection( path                 = account.getPhysicalPath()\n
-                                     , title                = "%s: %s" % (c.getId(), account.getTitle())\n
-                                     , level                = 9\n
-                                     , form_id              = \'Account_viewAccountingTransactionList\'\n
-                                     , selection_name       = \'acount_preference_selection\'\n
-                                     , selection_params     = params\n
-                                     , selection_columns    = account_columns\n
-                                     , listbox_display_mode = \'FlatListMode\'\n
-                                     , selection_sort_order = [(\'delivery.stop_date\', \'ascending\')]\n
-                                     ))\n
+          if len(sim_tool.getMovementHistoryList(\n
+                          payment_uid=bank_account_uid,\n
+                          node_uid=account.getUid(),\n
+                          **account_inventory_list_cache_params)):\n
+            result.append(ReportSection(\n
+                      path=account.getPhysicalPath(),\n
+                      title=title,\n
+                      level=9,\n
+                      form_id=\'Account_viewAccountingTransactionList\',\n
+                      selection_name=\'accounting_report_selection\',\n
+                      selection_params=bank_params.copy(),\n
+                      selection_columns=account_columns,\n
+                      listbox_display_mode=\'FlatListMode\',\n
+                      selection_sort_order=[(\'delivery.stop_date\',\n
+                                             \'ascending\')]))\n
+      elif len(sim_tool.getMovementHistoryList(\n
+                                node_uid=account.getUid(),\n
+                                **account_inventory_list_cache_params)):\n
+          result.append(ReportSection(\n
+                        path=account.getPhysicalPath(),\n
+                        title="%s: %s" % (c.getId(), account.getTitle()),\n
+                        level=9,\n
+                        form_id=\'Account_viewAccountingTransactionList\',\n
+                        selection_name=\'accounting_report_selection\',\n
+                        selection_params=params,\n
+                        selection_columns=account_columns,\n
+                        listbox_display_mode=\'FlatListMode\',\n
+                        selection_sort_order=[(\'delivery.stop_date\',\n
+                                               \'ascending\')]))\n
 \n
 return result\n
 </string> </value>
@@ -296,8 +304,8 @@ return result\n
                             <string>False</string>
                             <string>display_categories</string>
                             <string>omit_grouping_reference</string>
-                            <string>params</string>
                             <string>_write_</string>
+                            <string>params</string>
                             <string>result</string>
                             <string>account_columns</string>
                             <string>gap_value_list</string>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getOtherPartiesReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getOtherPartiesReportSectionList.xml
index 6b2890467aea78c20579f570a4fd787440bd97b4..e975f4e1211e48c95bd7db81536d1422a60da232 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getOtherPartiesReportSectionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getOtherPartiesReportSectionList.xml
@@ -70,8 +70,7 @@
             <key> <string>_body</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-"""\n
-  Client & vendors accounts.\n
+"""Client & vendors accounts.\n
 """\n
 \n
 from Products.ERP5Form.Report import ReportSection\n
@@ -84,6 +83,8 @@ role_filter_list = request.get(\'entity_role\', None)\n
 omit_balanced_accounts = request[\'omit_balanced_accounts\']\n
 from_date = request.get(\'from_date\', None)\n
 \n
+request.other[\'is_accounting_report\'] = True\n
+\n
 # role_filter_list == None means no filter on the role\n
 if role_filter_list == [\'\'] :\n
   role_filter_list = None\n
@@ -126,11 +127,17 @@ entity_columns = [\n
 # will tell wether this third party account is balanced or not.\n
 valid_node_uids = []\n
 if omit_balanced_accounts :\n
-  for account in portal.portal_categories.resolveCategory(\'account_type/asset/receivable\'\n
-                ).getAccountTypeRelatedValueList(strict_membership = 1, portal_type = "Account") :\n
+  for account in portal.portal_categories.resolveCategory(\n
+                    \'account_type/asset/receivable\'\n
+                ).getAccountTypeRelatedValueList(\n
+                    strict_membership=1,\n
+                    portal_type=\'Account\'):\n
     valid_node_uids.append(account.getUid())\n
-  for account in portal.portal_categories.resolveCategory(\'account_type/liability/payable\'\n
-                ).getAccountTypeRelatedValueList(strict_membership = 1, portal_type = "Account") :\n
+  for account in portal.portal_categories.resolveCategory(\n
+                    \'account_type/liability/payable\'\n
+                ).getAccountTypeRelatedValueList(\n
+                    strict_membership=1,\n
+                    portal_type=\'Account\'):\n
     valid_node_uids.append(account.getUid())\n
 \n
 if not params[\'hide_grouping\']  :\n
@@ -142,12 +149,15 @@ for party in context.Account_zDistinctSectionList():\n
   if role_filter_list and o.getProperty(\'role\', []) not in role_filter_list:\n
     continue\n
 \n
-  if o.getPortalType() == \'Person\' or not o.isMemberOf(transaction_section_category):\n
+  if o.getPortalType() == \'Person\' or\\\n
+      not o.isMemberOf(transaction_section_category):\n
         # don\'t show entities belonging to the group we are reporting\n
-    if omit_balanced_accounts and (simulation_tool.getInventoryAssetPrice(\n
-                    mirror_section_uid=o.uid, node_uid = valid_node_uids, **params) == 0) :\n
+    if omit_balanced_accounts and (\n
+            simulation_tool.getInventoryAssetPrice(\n
+                    mirror_section_uid=o.uid,\n
+                    node_uid=valid_node_uids, **params) == 0):\n
       pass\n
-    else :\n
+    else:\n
       title = o.getTitle()\n
       if o.getProperty(\'role\', None):\n
         title += \' (%s)\' % o.getRoleTitle()\n
@@ -234,9 +244,10 @@ return result\n
                             <string>role_filter_list</string>
                             <string>omit_balanced_accounts</string>
                             <string>from_date</string>
+                            <string>True</string>
+                            <string>_write_</string>
                             <string>result</string>
                             <string>params</string>
-                            <string>_write_</string>
                             <string>portal</string>
                             <string>simulation_tool</string>
                             <string>entity_columns</string>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getTrialBalanceReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getTrialBalanceReportSectionList.xml
index 2ca6e23090e38db6e32ec0143394a322a8ce6d02..bf2907c1a07c12ed4868697c7ed236d69e032b03 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getTrialBalanceReportSectionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getTrialBalanceReportSectionList.xml
@@ -68,8 +68,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>"""\n
-  Trial balance.\n
+            <value> <string>""" Trial balance.\n
 """\n
 from Products.ERP5Form.Report import ReportSection\n
 \n
@@ -85,6 +84,8 @@ from_date            = request.get(\'from_date\'           , None)\n
 expand_accounts      = request.get(\'expand_accounts\'     , False)\n
 show_parent_accounts = request.get(\'show_parent_accounts\', False)\n
 \n
+request.other[\'is_accounting_report\'] = True\n
+\n
 # flat_mode is a boolean that indicate wether we should use a report tree\n
 #   or a flat list of all accounts.\n
 if request.get(\'tree_mode\', False):\n
@@ -209,8 +210,9 @@ return result\n
                             <string>False</string>
                             <string>expand_accounts</string>
                             <string>show_parent_accounts</string>
-                            <string>result</string>
                             <string>True</string>
+                            <string>_write_</string>
+                            <string>result</string>
                             <string>params</string>
                             <string>balance_columns</string>
                           </tuple>
diff --git a/bt5/erp5_accounting/bt/revision b/bt5/erp5_accounting/bt/revision
index 8fdd954df9831dfd29ceec0d74829b02f3f5d8c3..b39356075901abfb43d27aef2ae5b76b6aee19c4 100644
--- a/bt5/erp5_accounting/bt/revision
+++ b/bt5/erp5_accounting/bt/revision
@@ -1 +1 @@
-22
\ No newline at end of file
+23
\ No newline at end of file