diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py
index b2887bc0de2913fd91dc5a95e04e61895427a151..57498f8a66d77413f3cbd81675c3625e89fa7b11 100644
--- a/addons/account/report/account_aged_partner_balance.py
+++ b/addons/account/report/account_aged_partner_balance.py
@@ -188,9 +188,12 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
                         partial = date and date[0][0] <= form[str(i)]['stop']
                     if partial:
                         # partial reconcilation
+                        limit_date = 'COALESCE(l.date_maturity,l.date) %s %%s' % '<=' if self.direction_selection == 'past' else '>='
                         self.cr.execute('''SELECT SUM(l.debit-l.credit)
                                            FROM account_move_line AS l, account_move AS am
-                                           WHERE l.move_id = am.id AND am.state in %s AND l.reconcile_partial_id = %s''', (tuple(move_state), partner_info[2],))
+                                           WHERE l.move_id = am.id AND am.state in %s
+                                           AND l.reconcile_partial_id = %s
+                                           AND ''' + limit_date, (tuple(move_state), partner_info[2], self.date_from))
                         unreconciled_amount = self.cr.fetchall()
                         partners_amount[partner_info[0]] += unreconciled_amount[0][0]
                 else: