diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1296,7 +1296,7 @@ class localrepository(object):
 
         l = self._lock(self.vfs, "wlock", wait, unlock,
                        self.invalidatedirstate, _('working directory of %s') %
-                       self.origroot)
+                       self.origroot, parentenvvar='HG_WLOCK_LOCKER')
         self._wlockref = weakref.ref(l)
         return l
 
diff --git a/tests/test-fncache.t b/tests/test-fncache.t
--- a/tests/test-fncache.t
+++ b/tests/test-fncache.t
@@ -205,7 +205,7 @@ Aborting lock does not prevent fncache w
   > from mercurial import commands, util
   > from mercurial.extensions import wrapfunction
   > 
-  > def lockexception(orig, vfs, lockname, wait, releasefn, acquirefn, desc):
+  > def lockexception(orig, vfs, lockname, wait, releasefn, acquirefn, desc, parentenvvar=None):
   >     def releasewrap():
   >         raise util.Abort("forced lock failure")
   >     return orig(vfs, lockname, wait, releasewrap, acquirefn, desc)