diff --git a/Filelist b/Filelist
index 71d75cb..6ad49e2 100644
--- a/Filelist
+++ b/Filelist
@@ -87,6 +87,7 @@
 		src/testdir/README.txt \
 		src/testdir/*.in \
 		src/testdir/sautest/autoload/*.vim \
+		src/testdir/runtest.vim \
 		src/testdir/test[0-9]*.ok \
 		src/testdir/test[0-9]*a.ok \
 		src/testdir/test_[a-z]*.ok \
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index aae0522..9442996 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2015 Nov 29
+*eval.txt*	For Vim version 7.4.  Last change: 2015 Nov 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1380,7 +1380,7 @@
 <		"errmsg" also works, for backwards compatibility.
 
 					*v:errors* *errors-variable*
-v:errors	Errors found by assert functions, such as |assertTrue()|.
+v:errors	Errors found by assert functions, such as |assert_true()|.
 		This is a list of strings.
 		The assert functions append an item when an assert fails.
 		To remove old results make it empty: >
@@ -1742,13 +1742,13 @@
 append( {lnum}, {list})		Number	append lines {list} below line {lnum}
 argc()				Number	number of files in the argument list
 argidx()			Number	current index in the argument list
-arglistid( [{winnr}, [ {tabnr}]])
+arglistid( [{winnr} [, {tabnr}]])
 				Number	argument list id
 argv( {nr})			String	{nr} entry of the argument list
 argv( )				List	the argument list
-assertEqual( {exp}, {act})  	none    assert that {exp} equals {act}
-assertFalse( {actual})		none    assert that {actual} is false
-assertTrue( {actual})		none    assert that {actual} is true
+assert_equal( {exp}, {act} [, {msg}]) none    assert that {exp} equals {act}
+assert_false( {actual} [, {msg}])     none    assert that {actual} is false
+assert_true( {actual} [, {msg}])      none    assert that {actual} is true
 asin( {expr})			Float	arc sine of {expr}
 atan( {expr})			Float	arc tangent of {expr}
 atan2( {expr}, {expr})		Float   arc tangent of {expr1} / {expr2}
@@ -2166,30 +2166,36 @@
 <		Without the {nr} argument a |List| with the whole |arglist| is
 		returned.
 
-							*assertEqual()*
-assertEqual({expected}, {actual})
+							*assert_equal()*
+assert_equal({expected}, {actual}, [, {msg}])
 		When {expected} and {actual} are not equal an error message is
 		added to |v:errors|.
 		There is no automatic conversion, the String "4" is different
 		from the Number 4.  And the number 4 is different from the
 		Float 4.0.  The value of 'ignorecase' is not used here, case
 		always matters.
+		When {msg} is omitted an error in the form "Expected
+		{expected} but got {actual}" is produced.
 		Example: >
-	assertEqual('foo', 'bar')
+	assert_equal('foo', 'bar')
 <		Will result in a string to be added to |v:errors|:
 	test.vim line 12: Expected 'foo' but got 'bar' ~
 
-assertFalse({actual})					*assertFalse()*
+assert_false({actual}, [, {msg}])				*assert_false()*
 		When {actual} is not false an error message is added to
-		|v:errors|, like with |assertEqual()|..
+		|v:errors|, like with |assert_equal()|..
 		A value is false when it is zero. When "{actual}" is not a
 		number the assert fails.
+		When {msg} is omitted an error in the form "Expected False but
+		got {actual}" is produced.
 
-assertTrue({actual})					*assertTrue()*
+assert_true({actual}, [, {msg}])				*assert_true()*
 		When {actual} is not true an error message is added to
-		|v:errors|, like with |assertEqual()|..
+		|v:errors|, like with |assert_equal()|..
 		A value is true when it is a non-zeron number.  When {actual}
 		is not a number the assert fails.
+		When {msg} is omitted an error in the form "Expected True but
+		got {actual}" is produced.
 
 asin({expr})						*asin()*
 		Return the arc sine of {expr} measured in radians, as a |Float|
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 28bdbad..eb1d5f7 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.4.  Last change: 2014 Aug 16
+*usr_41.txt*	For Vim version 7.4.  Last change: 2015 Nov 30
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -888,6 +888,11 @@
 	maparg()		get rhs of a mapping
 	wildmenumode()		check if the wildmode is active
 
+Testing:				    *test-functions*
+	assert_equal()       	assert that two expressions values are equal
+	assert_false()		assert that an expression is false
+	assert_true()		assert that an expression is true
+
 Various:					*various-functions*
 	mode()			get current editing mode
 	visualmode()		last visual mode used
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 03384aa..3f65f43 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -68,7 +68,8 @@
 		test_utf8.out \
 		test_writefile.out
 
-NEW_TESTS = test_assert.res
+NEW_TESTS = test_assert.res \
+	    test_undolevels.res
 
 SCRIPTS_GUI = test16.out
 
diff --git a/src/testdir/test100.in b/src/testdir/test100.in
index 7bd88fe..9b140a4 100644
--- a/src/testdir/test100.in
+++ b/src/testdir/test100.in
@@ -1,45 +1,8 @@
-Tests for 'undolevel' and 'lispwords' settings being global-local
+Tests for 'lispwords' settings being global-local
 
 STARTTEST
 :so small.vim
-:set nocompatible viminfo+=nviminfo ul=5
-:fu! FillBuffer()
-  :for i in range(1,13)
-    :put=i
-    :exe "setg ul=" . &g:ul
-  :endfor
-:endfu
-:fu! UndoLevel()
-  :redir @a | setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |redir end
-  :$put a
-:endfu
-:new one
-:0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'
-:call FillBuffer()
-:earlier 10
-:call UndoLevel()
-:set ff=unix
-:%w! test.out
-:new two
-:0put ='TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)'
-:setlocal ul=2
-:call FillBuffer()
-:earlier 10
-:call UndoLevel()
-:setlocal ul=10
-:call UndoLevel()
-:set ff=unix
-:%w >> test.out
-:wincmd p
-:redir >>test.out | echo "global value shouldn't be changed and still be 5!" | echo 'ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'|:setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |echo "" |redir end
-:new three
-:setglobal ul=50
-:1put ='global value should be changed to 50'
-:2put ='THREE: expecting global undolevels: 50, local undolevels: -123456 (default)'
-:call UndoLevel()
-:set ff=unix
-:%w >> test.out
-:"sleep 10
+:set nocompatible viminfo+=nviminfo
 :"
 :" Testing 'lispwords'
 :"
diff --git a/src/testdir/test100.ok b/src/testdir/test100.ok
index 477106b..4048dee 100644
--- a/src/testdir/test100.ok
+++ b/src/testdir/test100.ok
@@ -1,44 +1,3 @@
-ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
-1
-2
-3
-4
-5
-6
-7
-
-
-  undolevels=5 global
-  undolevels=-123456 local
-TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-
-
-  undolevels=5 global
-  undolevels=2 local
-
-  undolevels=5 global
-  undolevels=10 local
-
-global value shouldn't be changed and still be 5!
-ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
-  undolevels=5 global
-  undolevels=-123456 local
-
-global value should be changed to 50
-THREE: expecting global undolevels: 50, local undolevels: -123456 (default)
-
-  undolevels=50 global
-  undolevels=-123456 local
 
 Testing 'lispwords' local value
   lispwords=foo,bar,baz
diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim
index 61c77c5..049ce98 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -1,19 +1,19 @@
 " Test that the methods used for testing work.
 
-func Test_assertFalse()
-  call assertFalse(0)
+func Test_assert_false()
+  call assert_false(0)
 endfunc
 
-func Test_assertTrue()
-  call assertTrue(1)
-  call assertTrue(123)
+func Test_assert_true()
+  call assert_true(1)
+  call assert_true(123)
 endfunc
 
-func Test_assertEqual()
+func Test_assert_equal()
   let s = 'foo'
-  call assertEqual('foo', s)
+  call assert_equal('foo', s)
   let n = 4
-  call assertEqual(4, n)
+  call assert_equal(4, n)
   let l = [1, 2, 3]
-  call assertEqual([1, 2, 3], l)
+  call assert_equal([1, 2, 3], l)
 endfunc
diff --git a/src/testdir/test_undolevels.vim b/src/testdir/test_undolevels.vim
new file mode 100644
index 0000000..427cece
--- /dev/null
+++ b/src/testdir/test_undolevels.vim
@@ -0,0 +1,46 @@
+" Tests for 'undolevels'
+
+set nocompatible viminfo+=nviminfo
+
+func FillBuffer()
+  for i in range(1,13)
+    put=i
+    " Set 'undolevels' to split undo. 
+    exe "setg ul=" . &g:ul
+  endfor
+endfunc
+
+func Test_global_local_undolevels()
+  new one
+  set undolevels=5
+  call FillBuffer()
+  " will only undo the last 5 changes, end up with 13 - (5 + 1) = 7 lines
+  earlier 10
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(-123456, &l:undolevels)
+  call assert_equal('7', getline('$'))
+
+  new two
+  setlocal undolevels=2
+  call FillBuffer()
+  " will only undo the last 2 changes, end up with 13 - (2 + 1) = 10 lines
+  earlier 10
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(2, &l:undolevels)
+  call assert_equal('10', getline('$'))
+
+  setlocal ul=10
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(10, &l:undolevels)
+
+  " Setting local value in "two" must not change local value in "one"
+  wincmd p
+  call assert_equal(5, &g:undolevels)
+  call assert_equal(-123456, &l:undolevels)
+
+  new three
+  setglobal ul=50
+  call assert_equal(50, &g:undolevels)
+  call assert_equal(-123456, &l:undolevels)
+
+endfunc
diff --git a/src/version.c b/src/version.c
index 58cbf1d..89a2986 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    945,
+/**/
     944,
 /**/
     943,
