--- lock.c 2007-11-29 14:21:10.000000000 +0100 +++ lock.c 2011-02-14 17:58:55.527750000 +0100 @@ -655,9 +655,9 @@ offset += sizeof(ip->key.dsize); ip->key.dptr = apr_pmemdup(p, val.dptr + offset, ip->key.dsize); offset += ip->key.dsize; - if (!dav_fs_lock_expired(ip->timeout)) { + if (!dav_fs_lock_expired(ip->timeout) && dav_dbm_exists(lockdb->info->db, ip->key)) { ip->next = *indirect; *indirect = ip; } else { @@ -1125,8 +1125,9 @@ } else { /* DAV_GETLOCKS_PARTIAL */ newlock->rectype = DAV_LOCKREC_INDIRECT_PARTIAL; + newLock->timeout = ip->timeout; } /* hook into the result list */ newlock->next = lock;