updated for version 7.3.672
Problem:    Not possible to lock/unlock lists in Python interface.
Solution:   Add .locked and .scope attributes. (ZyX)
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index 93eb400..1309643 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -211,6 +211,41 @@
     m.extend([e.__class__.__name__])
 EOF
 :$put =messages
+:unlet messages
+:" locked and scope attributes
+:let d={} | let dl={} | lockvar dl
+:for s in split("d dl v: g:")
+:    let name=tr(s, ':', 's')
+:    execute 'py '.name.'=vim.bindeval("'.s.'")'
+:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".pyeval(name.".".v:val)'), ';')
+:    $put =toput
+:endfor
+:silent! let d.abc=1
+:silent! let dl.abc=1
+:py d.locked=True
+:py dl.locked=False
+:silent! let d.def=1
+:silent! let dl.def=1
+:put ='d:'.string(d)
+:put ='dl:'.string(dl)
+:unlet d dl
+:
+:let l=[] | let ll=[] | lockvar ll
+:for s in split("l ll")
+:    let name=tr(s, ':', 's')
+:    execute 'py '.name.'=vim.bindeval("'.s.'")'
+:    let toput=s.' : locked:'.pyeval(name.'.locked')
+:    $put =toput
+:endfor
+:silent! call extend(l, [0])
+:silent! call extend(ll, [0])
+:py l.locked=True
+:py ll.locked=False
+:silent! call extend(l, [1])
+:silent! call extend(ll, [1])
+:put ='l:'.string(l)
+:put ='ll:'.string(ll)
+:unlet l ll
 :"
 :" pyeval()
 :let l=pyeval('range(3)')
@@ -240,6 +275,7 @@
 :call garbagecollect(1)
 :"
 :/^start:/,$wq! test.out
+:call getchar()
 ENDTEST
 
 start: