diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index af7b083..f9a424f 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -269,8 +269,53 @@
 
   call feedkeys(":set tags=./\\\\ dif\<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:)
-
   set tags&
+
+  " Expanding the option names
+  call feedkeys(":set \<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"set all', @:)
+
+  " Expanding a second set of option names
+  call feedkeys(":set wrapscan \<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"set wrapscan all', @:)
+
+  " Expanding a special keycode
+  call feedkeys(":set <Home>\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"set <Home>', @:)
+
+  " Expanding an invalid special keycode
+  call feedkeys(":set <abcd>\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set <abcd>\<Tab>", @:)
+
+  " Expanding a terminal keycode
+  call feedkeys(":set t_AB\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set t_AB", @:)
+
+  " Expanding an invalid option name
+  call feedkeys(":set abcde=\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set abcde=\<Tab>", @:)
+
+  " Expanding after a = for a boolean option
+  call feedkeys(":set wrapscan=\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set wrapscan=\<Tab>", @:)
+
+  " Expanding a numeric option
+  call feedkeys(":set tabstop+=\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set tabstop+=" .. &tabstop, @:)
+
+  " Expanding a non-boolean option
+  call feedkeys(":set invtabstop=\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set invtabstop=", @:)
+
+  " Expand options for 'spellsuggest'
+  call feedkeys(":set spellsuggest=best,file:xyz\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal("\"set spellsuggest=best,file:xyz", @:)
+
+  " Expand value for 'key'
+  set key=abcd
+  call feedkeys(":set key=\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"set key=*****', @:)
+  set key=
 endfunc
 
 func Test_set_errors()
@@ -327,7 +372,14 @@
   endif
   call assert_fails('set backupext=~ patchmode=~', 'E589:')
   call assert_fails('set winminheight=10 winheight=9', 'E591:')
+  set winminheight& winheight&
+  set winheight=10 winminheight=10
+  call assert_fails('set winheight=9', 'E591:')
+  set winminheight& winheight&
   call assert_fails('set winminwidth=10 winwidth=9', 'E592:')
+  set winminwidth& winwidth&
+  call assert_fails('set winwidth=9 winminwidth=10', 'E592:')
+  set winwidth& winminwidth&
   call assert_fails("set showbreak=\x01", 'E595:')
   call assert_fails('set t_foo=', 'E846:')
   call assert_fails('set tabstop??', 'E488:')
@@ -338,9 +390,11 @@
   call assert_fails('set autoindent@', 'E488:')
   call assert_fails('set wildchar=<abc>', 'E474:')
   call assert_fails('set cmdheight=1a', 'E521:')
+  call assert_fails('set invcmdheight', 'E474:')
   if has('python') && has('python3')
     call assert_fails('set pyxversion=6', 'E474:')
   endif
+  call assert_fails("let &tabstop='ab'", 'E521:')
 endfunc
 
 func CheckWasSet(name)
@@ -798,7 +852,9 @@
 func Test_opt_sandbox()
   for opt in ['backupdir', 'cdpath', 'exrc']
     call assert_fails('sandbox set ' .. opt .. '?', 'E48:')
+    call assert_fails('sandbox let &' .. opt .. ' = 1', 'E48:')
   endfor
+  call assert_fails('sandbox let &modelineexpr = 1', 'E48:')
 endfunc
 
 " Test for setting an option with local value to global value
diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim
index 61be9a1..60ca1ee 100644
--- a/src/testdir/test_python3.vim
+++ b/src/testdir/test_python3.vim
@@ -259,3 +259,76 @@
 
   bwipe!
 endfunc
+
+" Test for resetting options with local values to global values
+func Test_python3_opt_reset_local_to_global()
+  new
+
+  py3 curbuf = vim.current.buffer
+  py3 curwin = vim.current.window
+
+  " List of buffer-local options. Each list item has [option name, global
+  " value, buffer-local value, buffer-local value after reset] to use in the
+  " test.
+  let bopts = [
+        \ ['autoread', 1, 0, -1],
+        \ ['equalprg', 'geprg', 'leprg', ''],
+        \ ['keywordprg', 'gkprg', 'lkprg', ''],
+        \ ['path', 'gpath', 'lpath', ''],
+        \ ['backupcopy', 'yes', 'no', ''],
+        \ ['tags', 'gtags', 'ltags', ''],
+        \ ['tagcase', 'ignore', 'match', ''],
+        \ ['define', 'gdef', 'ldef', ''],
+        \ ['include', 'ginc', 'linc', ''],
+        \ ['dict', 'gdict', 'ldict', ''],
+        \ ['thesaurus', 'gtsr', 'ltsr', ''],
+        \ ['formatprg', 'gfprg', 'lfprg', ''],
+        \ ['errorformat', '%f:%l:%m', '%s-%l-%m', ''],
+        \ ['grepprg', 'ggprg', 'lgprg', ''],
+        \ ['makeprg', 'gmprg', 'lmprg', ''],
+        \ ['balloonexpr', 'gbexpr', 'lbexpr', ''],
+        \ ['cryptmethod', 'blowfish2', 'zip', ''],
+        \ ['lispwords', 'abc', 'xyz', ''],
+        \ ['makeencoding', 'utf-8', 'latin1', ''],
+        \ ['undolevels', 100, 200, -123456]]
+
+  " Set the global and buffer-local option values and then clear the
+  " buffer-local option value.
+  for opt in bopts
+    py3 pyopt = vim.bindeval("opt")
+    py3 vim.options[pyopt[0]] = pyopt[1]
+    py3 curbuf.options[pyopt[0]] = pyopt[2]
+    exe "call assert_equal(opt[2], &" .. opt[0] .. ")"
+    exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
+    exe "call assert_equal(opt[2], &l:" .. opt[0] .. ")"
+    py3 del curbuf.options[pyopt[0]]
+    exe "call assert_equal(opt[1], &" .. opt[0] .. ")"
+    exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
+    exe "call assert_equal(opt[3], &l:" .. opt[0] .. ")"
+    exe "set " .. opt[0] .. "&"
+  endfor
+
+  " Set the global and window-local option values and then clear the
+  " window-local option value.
+  let wopts = [
+        \ ['scrolloff', 5, 10, -1],
+        \ ['sidescrolloff', 6, 12, -1],
+        \ ['statusline', '%<%f', '%<%F', '']]
+  for opt in wopts
+    py3 pyopt = vim.bindeval("opt")
+    py3 vim.options[pyopt[0]] = pyopt[1]
+    py3 curwin.options[pyopt[0]] = pyopt[2]
+    exe "call assert_equal(opt[2], &" .. opt[0] .. ")"
+    exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
+    exe "call assert_equal(opt[2], &l:" .. opt[0] .. ")"
+    py3 del curwin.options[pyopt[0]]
+    exe "call assert_equal(opt[1], &" .. opt[0] .. ")"
+    exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
+    exe "call assert_equal(opt[3], &l:" .. opt[0] .. ")"
+    exe "set " .. opt[0] .. "&"
+  endfor
+
+  close!
+endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_undo.vim b/src/testdir/test_undo.vim
index 2ecc520..3f7b812 100644
--- a/src/testdir/test_undo.vim
+++ b/src/testdir/test_undo.vim
@@ -123,6 +123,11 @@
   call assert_equal(50, &g:undolevels)
   call assert_equal(-123456, &l:undolevels)
 
+  " Resetting the local 'undolevels' value to use the global value
+  setlocal undolevels=5
+  setlocal undolevels<
+  call assert_equal(-123456, &l:undolevels)
+
   " Drop created windows
   set ul&
   new
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index 69c9f56..abd0a7e 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -1411,6 +1411,10 @@
     call assert_equal(["{'a': [1, 2, 3], 'b': [...]}",
 		     \ "{'a': [1, 2, 3], 'b': [1, 2, 3]}"], l)
 
+    call assert_fails('echo &:', 'E112:')
+    call assert_fails('echo &g:', 'E112:')
+    call assert_fails('echo &l:', 'E112:')
+
 endfunc
 
 "-------------------------------------------------------------------------------
diff --git a/src/version.c b/src/version.c
index 3ebee92..4959ab7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    551,
+/**/
     550,
 /**/
     549,
