Blob Blame History Raw
--- 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) {