diff --git a/src/Makefile b/src/Makefile
index 4deb4a2..6add935 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2068,11 +2068,12 @@
 	test_statusline \
 	test_syn_attr \
 	test_syntax \
-	test_usercommands \
 	test_tabline \
 	test_tagjump \
 	test_timers \
+	test_true_false \
 	test_undolevels \
+	test_usercommands \
 	test_unlet \
 	test_viminfo \
 	test_viml \
diff --git a/src/eval.c b/src/eval.c
index 4a1ad4f..69238c1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9414,6 +9414,8 @@
 {
     return ((argvars[0].v_type == VAR_NUMBER
 		&& argvars[0].vval.v_number != 0)
+	    || (argvars[0].v_type == VAR_SPECIAL
+		&& argvars[0].vval.v_number == VVAL_TRUE)
 	    || (argvars[0].v_type == VAR_STRING
 		&& argvars[0].vval.v_string != NULL
 		&& *argvars[0].vval.v_string != NUL));
@@ -16350,7 +16352,13 @@
     buf[1] = NUL;
     buf[2] = NUL;
 
-    if (VIsual_active)
+    if (time_for_testing == 93784)
+    {
+	/* Testing the two-character code. */
+	buf[0] = 'x';
+	buf[1] = '!';
+    }
+    else if (VIsual_active)
     {
 	if (VIsual_select)
 	    buf[0] = VIsual_mode + 's' - 'v';
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index e8546ef..e99e137 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -33,6 +33,7 @@
 source test_tabline.vim
 source test_tagjump.vim
 source test_timers.vim
+source test_true_false.vim
 source test_undolevels.vim
 source test_unlet.vim
 source test_window_cmd.vim
diff --git a/src/testdir/test_true_false.vim b/src/testdir/test_true_false.vim
new file mode 100644
index 0000000..90b4f5e
--- /dev/null
+++ b/src/testdir/test_true_false.vim
@@ -0,0 +1,125 @@
+" Test behavior of boolean-like values.
+
+" Test what is explained at ":help TRUE" and ":help FALSE".
+func Test_if()
+  if v:false
+    call assert_true(false, 'v:false is false')
+  endif
+  if 0
+    call assert_true(false, 'zero is false')
+  endif
+  if "0"
+    call assert_true(false, 'zero string is false')
+  endif
+  if "foo"
+    call assert_true(false, 'foo is false')
+  endif
+  if " "
+    call assert_true(false, 'space is false')
+  endif
+  if empty("foo")
+    call assert_true(false, 'foo is not empty')
+  endif
+
+  if v:true
+  else
+    call assert_true(false, 'v:true is true')
+  endif
+  if 1
+  else
+    call assert_true(false, 'one is true')
+  endif
+  if "1"
+  else
+    call assert_true(false, 'one string is true')
+  endif
+  if "1foo"
+  else
+    call assert_true(false, 'one in string is true')
+  endif
+
+  call assert_fails('if [1]', 'E745')
+  call assert_fails('if {1: 1}', 'E728')
+  call assert_fails('if function("string")', 'E703')
+  call assert_fails('if 1.3")', 'E805')
+endfunc
+
+function Try_arg_true_false(expr, false_val, true_val)
+  for v in ['v:false', '0', '"0"', '"foo"', '" "'] 
+    let r = eval(substitute(a:expr, '%v%', v, ''))
+    call assert_equal(a:false_val, r, 'result for ' . v . ' is not ' . string(a:false_val) . ' but ' . string(r))
+  endfor
+  for v in ['v:true', '1', '"1"', '"1foo"'] 
+    let r = eval(substitute(a:expr, '%v%', v, ''))
+    call assert_equal(a:true_val, r, 'result for ' . v . ' is not ' . string(a:true_val) . ' but ' . string(r))
+  endfor
+endfunc
+
+" Test using TRUE or FALSE values for an argument.
+func Test_true_false_arg()
+  call Try_arg_true_false('count(["a", "A"], "a", %v%)', 1, 2)
+
+  set wildignore=*.swp
+  call Try_arg_true_false('expand("foo.swp", %v%)', "", "foo.swp")
+  call Try_arg_true_false('expand("foo.vim", 0, %v%)', "foo.vim", ["foo.vim"])
+
+  call setreg('a', ['x', 'y'])
+  call Try_arg_true_false('getreg("a", 1, %v%)', "x\ny\n", ['x', 'y'])
+
+  set wildignore=*.vim
+  call Try_arg_true_false('glob("runtest.vim", %v%)', "", "runtest.vim")
+  set wildignore=*.swp
+  call Try_arg_true_false('glob("runtest.vim", 0, %v%)', "runtest.vim", ["runtest.vim"])
+  if has('unix')
+    silent !ln -s doesntexit Xlink
+    call Try_arg_true_false('glob("Xlink", 0, 0, %v%)', "", "Xlink")
+    silent !rm Xlink
+  endif
+
+  set wildignore=*.vim
+  call Try_arg_true_false('globpath(".", "runtest.vim", %v%)', "", "./runtest.vim")
+  set wildignore=*.swp
+  call Try_arg_true_false('globpath(".", "runtest.vim", 0, %v%)', "./runtest.vim", ["./runtest.vim"])
+  if has('unix')
+    silent !ln -s doesntexit Xlink
+    call Try_arg_true_false('globpath(".", "Xlink", 0, 0, %v%)', "", "./Xlink")
+    silent !rm Xlink
+  endif
+endfunc
+
+function Try_arg_non_zero(expr, false_val, true_val)
+  for v in ['v:false', '0', '[1]', '{2:3}', '3.4'] 
+    let r = eval(substitute(a:expr, '%v%', v, ''))
+    call assert_equal(a:false_val, r, 'result for ' . v . ' is not ' . a:false_val . ' but ' . r)
+  endfor
+  for v in ['v:true', '1', '" "', '"0"'] 
+    let r = eval(substitute(a:expr, '%v%', v, ''))
+    call assert_equal(a:true_val, r, 'result for ' . v . ' is not ' . a:true_val . ' but ' . r)
+  endfor
+endfunc
+
+
+" Test using non-zero-arg for an argument.
+func Test_non_zero_arg()
+  call test_settime(93784)
+  call Try_arg_non_zero("mode(%v%)", 'x', 'x!')
+  call test_settime(0)
+
+  call Try_arg_non_zero("shellescape('foo%', %v%)", "'foo%'", "'foo\\%'")
+
+  " visualmode() needs to be called twice to check
+  for v in [v:false, 0, [1], {2:3}, 3.4] 
+    normal vv
+    let r = visualmode(v)
+    call assert_equal('v', r, 'result for ' . string(v) . ' is not "v" but ' . r)
+    let r = visualmode(v)
+    call assert_equal('v', r, 'result for ' . string(v) . ' is not "v" but ' . r)
+  endfor
+  for v in [v:true, 1, " ", "0"] 
+    normal vv
+    let r = visualmode(v)
+    call assert_equal('v', r, 'result for ' . v . ' is not "v" but ' . r)
+    let r = visualmode(v)
+    call assert_equal('', r, 'result for ' . v . ' is not "" but ' . r)
+  endfor
+endfunc
diff --git a/src/version.c b/src/version.c
index c6ab5f4..f235d76 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1992,
+/**/
     1991,
 /**/
     1990,
