Hello, there is a checking in pl_open_cbk, it's "if (op_ret == 0)", i think it should be "if (op_ret >= 0)", what do you think: following is the patch: $ diff -u posix-locks.c.orig posix-locks.c --- posix-locks.c.orig 2008-03-04 17:45:41.000000000 +0800 +++ posix-locks.c 2008-03-04 17:46:52.000000000 +0800 @@ -735,7 +735,7 @@ posix_locks_private_t *priv = (posix_locks_private_t *)this->private; pthread_mutex_lock (&priv->mutex); - if (op_ret == 0) { + if (op_ret >= 0) { pl_fd_t *pfd = calloc (1, sizeof (pl_fd_t)); pl_inode_t *inode; -- Best Regards, LI Daobing