The :lockvar and :unlockvar commands fail when there is a recursive references. E.g., try the below:
:let a = {} :let b = {} :let a.b = b :let b:a = a :lockvar! a E743: variable nested too deep for (un)lock You could of course end up with more complicated indirect recursive references as well, so it should guard against it. Also, just noticed that string() fails as well. :echo string(a) E724: variable nested too deep for displaying There are probably others that would fail as well. -- Thanks, Hari __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com