+void transaction_remove(Transaction *ope)
+{
+Account *acc;
+
+ //controls accounts valid (archive scheduled maybe bad)
+ acc = da_acc_get(ope->kacc);
+ if(acc == NULL) return;
+
+ account_balances_sub(ope);
+
+ if( ope->paymode == PAYMODE_INTXFER )
+ {
+ transaction_xfer_remove_child( ope );
+ }
+
+ g_queue_remove(acc->txn_queue, ope);
+ acc->flags |= AF_CHANGED;
+ //#1419304 we keep the deleted txn to a trash stack
+ //da_transaction_free(entry);
+ g_trash_stack_push(&GLOBALS->txn_stk, ope);
+}
+
+
+void transaction_changed(Transaction *txn)
+{
+Account *acc;
+
+ if( txn == NULL )
+ return;
+
+ acc = da_acc_get(txn->kacc);
+ if(acc == NULL)
+ return;
+
+ acc->flags |= AF_CHANGED;
+}
+
+
+Transaction *transaction_add(GtkWindow *parent, Transaction *ope)