diff --git a/gnucash/import-export/ofx/gnc-ofx-import.c b/gnucash/import-export/ofx/gnc-ofx-import.c index f759523450..6423ddbf35 100644 --- a/gnucash/import-export/ofx/gnc-ofx-import.c +++ b/gnucash/import-export/ofx/gnc-ofx-import.c @@ -214,6 +214,10 @@ static const gchar *gnc_ofx_invttype_to_str(InvTransactionType t) return "SPLIT (Stock or mutial fund split)"; case OFX_TRANSFER: return "TRANSFER (Transfer holdings in and out of the investment account)"; +#ifdef HAVE_LIBOFX_VERSION_0_10 + case OFX_INVBANKTRAN: + return "Transfer cash in and out of the investment account"; +#endif default: return "ERROR, this investment transaction type is unknown. This is a bug in ofxdump"; } @@ -586,8 +590,12 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void *user_data) xaccTransSetCurrency(transaction, currency); if (data.amount_valid) { - if (!data.invtransactiontype_valid || - data.invtransactiontype == OFX_INVBANKTRAN) + if (!data.invtransactiontype_valid +#ifdef HAVE_LIBOFX_VERSION_0_10 + || data.invtransactiontype == OFX_INVBANKTRAN) +#else + ) +#endif { double amount = data.amount; #ifdef HAVE_LIBOFX_VERSION_0_10 @@ -1057,7 +1065,9 @@ double ofx_get_investment_amount(const struct OfxTransactionData* data) { double amount = data->amount; #ifdef HAVE_LIBOFX_VERSION_0_10 - if (data->currency_ratio_valid && data->currency_ratio != 0) + if (data->invtransactiontype == OFX_INVBANKTRAN) + return 0.0; + if (data->currency_ratio_valid && data->currency_ratio != 0) amount *= data->currency_ratio; #endif g_assert(data);