diff -rc db-4.5.20-orig/os/os_flock.c db-4.5.20/os/os_flock.c
*** db-4.5.20-orig/os/os_flock.c	2006-10-13 12:36:12.000000000 +0200
--- db-4.5.20/os/os_flock.c	2006-10-13 12:40:11.000000000 +0200
***************
*** 30,35 ****
--- 30,44 ----
  
  	DB_ASSERT(dbenv, F_ISSET(fhp, DB_FH_OPENED) && fhp->fd != -1);
  
+ #ifdef __CYGWIN__
+ 	/*
+ 	 * Windows file locking interferes with read/write operations, so we
+ 	 * map the ranges to an area past the end of the file.
+ 	 */
+ 	DB_ASSERT(dbenv, offset < (off_t) 1 << 62);
+ 	offset += (off_t) 1 << 62;
+ #endif
+ 
  	fl.l_start = offset;
  	fl.l_len = 1;
  	fl.l_type = acquire ? F_WRLCK : F_UNLCK;
Only in db-4.5.20/os: os_flock.c~