diff --git a/src/engine/io-gncxml-v2.c b/src/engine/io-gncxml-v2.c index 25cab9a12a..8d56ab7bcf 100644 --- a/src/engine/io-gncxml-v2.c +++ b/src/engine/io-gncxml-v2.c @@ -564,12 +564,27 @@ write_transactions(FILE *out, GNCBook *book) static void write_template_transaction_data( FILE *out, GNCBook *book ) { - fprintf( out, "<%s>\n", TEMPLATE_TRANSACTION_TAG ); - write_account_group( out, gnc_book_get_template_group(book) ); - xaccGroupForEachTransaction( gnc_book_get_template_group(book), - xml_add_trn_data, - (gpointer)out ); - fprintf( out, "\n", TEMPLATE_TRANSACTION_TAG ); + AccountGroup *ag; + GList *gl; + gboolean hasTemplateTransactionData = FALSE; + + ag = gnc_book_get_template_group(book); + gl = xaccGroupGetSubAccounts( ag ); + while ( !hasTemplateTransactionData && + (gl != NULL) ) { + hasTemplateTransactionData |= + (xaccAccountGetSplitList( (Account*)gl->data ) != NULL); + gl = gl->next; + } + + if ( hasTemplateTransactionData ) { + fprintf( out, "<%s>\n", TEMPLATE_TRANSACTION_TAG ); + write_account_group( out, gnc_book_get_template_group(book) ); + xaccGroupForEachTransaction( ag, + xml_add_trn_data, + (gpointer)out ); + fprintf( out, "\n", TEMPLATE_TRANSACTION_TAG ); + } } static void diff --git a/src/gnome/dialog-sxsincelast.c b/src/gnome/dialog-sxsincelast.c index 5ee4ff7e12..1a5334504d 100644 --- a/src/gnome/dialog-sxsincelast.c +++ b/src/gnome/dialog-sxsincelast.c @@ -288,6 +288,7 @@ sxsincelast_populate( sxSinceLastData *sxsld ) if ( sxList == NULL ) { DEBUG( "No scheduled transactions to populate." ); + return; } do {