--- src/jrd/vio.cpp 2011/09/29 03:27:33 53487 +++ jrd/vio.cpp 2011/09/29 07:45:12 53488 @@ -1821,7 +1821,6 @@ bool VIO_get_current(thread_db* tdbb, - //record_param* old_rpb, record_param* rpb, jrd_tra* transaction, MemoryPool* pool, @@ -2025,12 +2024,14 @@ if (rpb->rpb_flags & rpb_deleted) return !foreign_key; - if (rpb->rpb_flags & rpb_uk_modified) - return !foreign_key; - - // clear lock error from status vector - fb_utils::init_status(tdbb->tdbb_status_vector); - return true; + if (foreign_key) + { + // clear lock error from status vector + fb_utils::init_status(tdbb->tdbb_status_vector); + return !(rpb->rpb_flags & rpb_uk_modified); + } + + return !foreign_key; case tra_dead: if (transaction->tra_attachment->att_flags & ATT_no_cleanup) {