diff --git a/gnucash/gnome/assistant-hierarchy.c b/gnucash/gnome/assistant-hierarchy.c index 40160221df..6d39f37ad3 100644 --- a/gnucash/gnome/assistant-hierarchy.c +++ b/gnucash/gnome/assistant-hierarchy.c @@ -1408,7 +1408,8 @@ starting_balance_helper (Account *account, hierarchy_data *data) balance = get_final_balance (data->balance_hash, account); if (gnc_reverse_balance(account)) balance = gnc_numeric_neg(balance); - if (!gnc_numeric_zero_p (balance)) + if (!gnc_numeric_zero_p (balance) && + gnc_commodity_is_currency (xaccAccountGetCommodity (account))) gnc_account_create_opening_balance (account, balance, gnc_time (NULL), gnc_get_current_book ()); } diff --git a/libgnucash/app-utils/gnc-ui-util.c b/libgnucash/app-utils/gnc-ui-util.c index 0a90aafd62..f03183d0d6 100644 --- a/libgnucash/app-utils/gnc-ui-util.c +++ b/libgnucash/app-utils/gnc-ui-util.c @@ -975,6 +975,7 @@ gnc_find_or_create_equity_account (Account *root, g_return_val_if_fail (equity_type < NUM_EQUITY_TYPES, NULL); g_return_val_if_fail (currency != NULL, NULL); g_return_val_if_fail (root != NULL, NULL); + g_return_val_if_fail (gnc_commodity_is_currency(currency), NULL); use_eq_op_feature = equity_type == EQUITY_OPENING_BALANCE && gnc_using_equity_type_opening_balance_account (gnc_get_current_book ()); @@ -1077,16 +1078,19 @@ gnc_account_create_opening_balance (Account *account, Account *equity_account; Transaction *trans; Split *split; + gnc_commodity *commodity; if (gnc_numeric_zero_p (balance)) return TRUE; g_return_val_if_fail (account != NULL, FALSE); + commodity = xaccAccountGetCommodity (account); + g_return_val_if_fail (gnc_commodity_is_currency (commodity), FALSE); equity_account = gnc_find_or_create_equity_account (gnc_account_get_root(account), EQUITY_OPENING_BALANCE, - xaccAccountGetCommodity (account)); + commodity); if (!equity_account) return FALSE;