diff --git a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountBalance.py b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountBalance.py
index e1983f8f5e6abba7ea07f0337d828bb1dddf6ed7..0129b852223c7a36094db934e6d42f4020fed896 100644
--- a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountBalance.py
+++ b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountBalance.py
@@ -1,5 +1,9 @@
+portal = context.getPortalObject()
+
 kw = {
-  'section_uid': context.getSourceSectionUid(),
+  'section_uid': context.getSourceSection()
+     and portal.Base_getSectionUidListForSectionCategory(
+       context.getSourceSectionValue().getGroup(base=True)),
   'payment_uid': context.getSourcePaymentUid(),
   'node_category': 'account_type/asset/cash/bank',
   'simulation_state': ('stopped', 'delivered', ),
diff --git a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountingTransactionLineList.py b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountingTransactionLineList.py
index f544f3b8774c2a56803eb0fcec4cc658c85fbb67..f1e1a05d12616c3a194bffb644061c6e93a93ca7 100644
--- a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountingTransactionLineList.py
+++ b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getAccountingTransactionLineList.py
@@ -2,7 +2,9 @@ from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, NegatedQuery
 portal = context.getPortalObject()
 
 kw = {
-  'section_uid': context.getSourceSectionUid(),
+  'section_uid': context.getSourceSection()
+     and portal.Base_getSectionUidListForSectionCategory(
+       context.getSourceSectionValue().getGroup(base=True)),
   'payment_uid': context.getSourcePaymentUid(),
   'node_category': 'account_type/asset/cash/bank',
   'simulation_state': ('stopped', 'delivered', ),
diff --git a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getReconciledAccountBalance.py b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getReconciledAccountBalance.py
index 2687837af2240816f5a2e6672216faaf38cb40d1..cdf8c116fceba7ae0f6f7ab1150b0edabe50e958 100644
--- a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getReconciledAccountBalance.py
+++ b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_getReconciledAccountBalance.py
@@ -2,7 +2,9 @@ from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, NegatedQuery
 portal = context.getPortalObject()
 
 kw = {
-  'section_uid': context.getSourceSectionUid(),
+  'section_uid': context.getSourceSection()
+     and portal.Base_getSectionUidListForSectionCategory(
+       context.getSourceSectionValue().getGroup(base=True)),
   'payment_uid': context.getSourcePaymentUid(),
   'node_category': 'account_type/asset/cash/bank',
   'simulation_state': ('stopped', 'delivered', ),
diff --git a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_reconcileTransactionList.py b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_reconcileTransactionList.py
index af88e5925074dc99baf15b3a26b2bda22aac5455..2d04fd5b819c8427ca05814b1b37e6d58430d54c 100644
--- a/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_reconcileTransactionList.py
+++ b/bt5/erp5_bank_reconciliation/SkinTemplateItem/portal_skins/erp5_bank_reconciliation/BankReconciliation_reconcileTransactionList.py
@@ -6,8 +6,8 @@ portal.portal_selections.updateSelectionCheckedUidList(list_selection_name, list
 selection_uid_list = portal.portal_selections.getSelectionCheckedUidsFor(list_selection_name)
 
 if mode == 'reconcile':
-  for uid in selection_uid_list:
-    line = portal.portal_catalog.getObject(uid)
+  for line in portal.portal_catalog(uid=selection_uid_list or -1):
+    line = line.getObject()
     if line.getAggregate(portal_type='Bank Reconciliation'):
       return context.Base_redirect(dialog_id,
                   abort_transaction=True,
@@ -27,8 +27,8 @@ if mode == 'reconcile':
       'reconciled_uid_list': selection_uid_list})
 
 assert mode == 'unreconcile'
-for uid in selection_uid_list:
-  line = portal.portal_catalog.getObject(uid)
+for line in portal.portal_catalog(uid=selection_uid_list or -1):
+  line = line.getObject()
   line.AccountingTransactionLine_setBankReconciliation(None,
     message=translateString("Reconciling Bank Line"))
 
diff --git a/product/ERP5/tests/testBankReconciliation.py b/product/ERP5/tests/testBankReconciliation.py
index cde93ab4172157c11ca175dbe5d4a309b89cb79b..eaabf7aa808a2a8ab71c8c9b6c3d3dff01c2e7c6 100644
--- a/product/ERP5/tests/testBankReconciliation.py
+++ b/product/ERP5/tests/testBankReconciliation.py
@@ -503,8 +503,61 @@ class TestBankReconciliation(AccountingTestCase, ERP5ReportTestCase):
     self.assertEqual(bank_reconciliation, payment1.bank.getAggregateValue())
     self.assertEqual(None, payment2.bank.getAggregateValue())
 
+  def test_BankReconciliation_multiple_section_using_same_bank_account(self):
+    account_module = self.account_module
+    self.bank_account.invalidate()
+    main_section_bank_account = self.main_section.newContent(
+        portal_type='Bank Account',
+        price_currency_value=self.portal.currency_module.euro)
+    main_section_bank_account.validate()
+    
+    payment1 = self._makeOne(
+              portal_type='Payment Transaction',
+              simulation_state='delivered',
+              source_payment_value=main_section_bank_account,
+              start_date=DateTime(2014, 1, 1),
+              lines=(dict(source_value=account_module.bank,
+                          source_debit=100,
+                          id='bank'),
+                     dict(source_value=account_module.receivable,
+                          source_credit=100)))
+
+    payment2 = self._makeOne(
+              portal_type='Payment Transaction',
+              simulation_state='delivered',
+              source_section_value=self.main_section,
+              source_payment_value=main_section_bank_account,
+              start_date=DateTime(2014, 1, 2),
+              lines=(dict(source_value=account_module.bank,
+                          source_debit=200,
+                          id='bank'),
+                     dict(source_value=account_module.receivable,
+                          source_credit=200)))
+
+    bank_reconciliation = self.portal.bank_reconciliation_module.newContent(
+        portal_type='Bank Reconciliation',
+        source_section_value=self.main_section,
+        source_payment_value=main_section_bank_account,
+        stop_date=DateTime(2014, 1, 31))
+    self.tic()
+
+    self.assertEqual(300, bank_reconciliation.BankReconciliation_getAccountBalance())
+    self.assertEqual(
+      [payment1.bank, payment2.bank],
+      [x.getObject() for x in bank_reconciliation.BankReconciliation_getAccountingTransactionLineList()])
+    
+    list_selection_name = bank_reconciliation\
+        .BankReconciliation_viewBankReconciliationFastInputDialog.listbox.get_value(
+            'selection_name')
+    bank_reconciliation.BankReconciliation_reconcileTransactionList(
+        list_selection_name=list_selection_name,
+        uids=(payment1.bank.getUid(), ),
+        mode='reconcile')
+    self.tic()
+    self.assertEqual(100, bank_reconciliation.BankReconciliation_getReconciledAccountBalance())
+
+    
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestBankReconciliation))
   return suite
-