diff --git a/src/register/ledger-core/split-register-control.c b/src/register/ledger-core/split-register-control.c index 4b3971ee5d..8e1e6ee16a 100644 --- a/src/register/ledger-core/split-register-control.c +++ b/src/register/ledger-core/split-register-control.c @@ -67,6 +67,13 @@ gnc_split_register_balance_trans (SplitRegister *reg, Transaction *trans) split = xaccTransGetSplit (trans, 0); other_split = xaccSplitGetOtherSplit (split); + if (other_split == NULL) + { + /* Attempt to handle the inverted many-to-one mapping */ + split = xaccTransGetSplit (trans, 1); + if (split) other_split = xaccSplitGetOtherSplit (split); + else split = xaccTransGetSplit (trans, 0); + } if (other_split == NULL) { two_accounts = FALSE; @@ -104,11 +111,13 @@ gnc_split_register_balance_trans (SplitRegister *reg, Transaction *trans) radio_list = g_list_append (radio_list, _("Adjust current account split total")); + default_value = 2; if (two_accounts) + { radio_list = g_list_append (radio_list, _("Adjust other account split total")); - - default_value = 2; + default_value = 3; + } } else default_value = 0;