Hi! In Firebird the transaction can be parameterizable as: SET TRANSACTION ... [WAIT | NO WAIT] [LOCK TIMEOUT seconds] The "NO WAIT" is force transaction to return instantly with errormsg when some deadlock situation happened, Timeout is define the seconds for wait. This can be set for each transaction I used. I search for same option in pg if exists. Because when I do this (theid field is primary key): Con1.Begin Con2.Begin Con1.Exec(insert into x (theid, value) values (1, 'a')); Con2.Exec(insert into x (theid, value) values (1, 'a')); ... then Con2 is remaining in deadlock state (nothing happened, the code is waiting for the transaction's end). When Con1's transaction is end, Con2 is continue... But users better like the ErrorMessage than incomprehensible "freezed screen". And I also better like the controllable situation (I can re-try 3 times, etc.). Thanks for your help: dd -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general