Query.Post sometimes generates it's own transaction

Environment: D4, BDE, MSSQL 2000

I have somehow created a situation in which Query.Post does a start and
commit/rollback transaction on it's own. (checked with the SQL monitor)

The post may activate a server trigger that rolls back the transaction on
rejection.
Since the Query.Post has started it's own transaction it also tries to
rollback that transaction, but since the server already did a rollback, the
result is:
"General SQL error.
The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION."

The strange thing is that this Post only goes in transaction after dsEdit
and not after dsInsert.
(Query.Database.InTransaction = False in all cases)

If you are able to explain why the Post generates it's own transaction,
help is appreciated :)

mh.