diff --git a/src/backend/sql/gnc-book-sql.c b/src/backend/sql/gnc-book-sql.c index 85b1a59e76..a9e312d6f2 100644 --- a/src/backend/sql/gnc-book-sql.c +++ b/src/backend/sql/gnc-book-sql.c @@ -178,10 +178,14 @@ load_all_books( GncSqlBackend* be ) { GncSqlRow* row = gnc_sql_result_get_first_row( result ); - // If there are no rows, try committing the book + /* If there are no rows, try committing the book; unset + * loading so that it will actually get saved. + */ if ( row == NULL ) { + be->loading = FALSE; (void)gnc_sql_save_book( be, QOF_INSTANCE(be->book) ); + be->loading = TRUE; } else { diff --git a/src/engine/Account.c b/src/engine/Account.c index 3e842ce6ca..c0f120bacf 100644 --- a/src/engine/Account.c +++ b/src/engine/Account.c @@ -951,6 +951,7 @@ gnc_account_create_root (QofBook *book) xaccAccountBeginEdit(root); rpriv->type = ACCT_TYPE_ROOT; CACHE_REPLACE(rpriv->accountName, "Root Account"); + mark_account (root); xaccAccountCommitEdit(root); gnc_book_set_root_account(book, root); return root; diff --git a/src/engine/SX-book.c b/src/engine/SX-book.c index 57ee618282..8d433ae96c 100644 --- a/src/engine/SX-book.c +++ b/src/engine/SX-book.c @@ -118,6 +118,7 @@ sxtg_book_begin (QofBook *book) xaccAccountBeginEdit(root); xaccAccountSetType(root, ACCT_TYPE_ROOT); xaccAccountSetName(root, "Template Root"); + qof_instance_set_dirty (QOF_INSTANCE (root)); xaccAccountCommitEdit(root); gnc_book_set_template_root (book, root); }