diff --git a/src/arglist.c b/src/arglist.c
index 1810367..ab23880 100644
--- a/src/arglist.c
+++ b/src/arglist.c
@@ -778,7 +778,7 @@
 
     if (eap->addr_count > 0 || *eap->arg == NUL)
     {
-	// ":argdel" works like ":argdel"
+	// ":argdel" works like ":.argdel"
 	if (eap->addr_count == 0)
 	{
 	    if (curwin->w_arg_idx >= ARGCOUNT)
diff --git a/src/libvterm/README b/src/libvterm/README
index 3e1ff30..a5b0377 100644
--- a/src/libvterm/README
+++ b/src/libvterm/README
@@ -11,8 +11,11 @@
 - Convert from C99 to C90.
 - Other changes to support embedding in Vim.
 
-To find the diff of a libvterm patch edit this URL, changing "999" to the patch
-number:
+To get the latest version of libvterm you need the "bzr" command and do:
+   bzr co http://bazaar.leonerd.org.uk/c/libvterm/
+
+To find the diff of a libvterm revision edit this URL, changing "999" to the
+patch number:
     https://bazaar.launchpad.net/~libvterm/libvterm/trunk/diff/999?context=3
 
 To merge in changes from Github, do this:
diff --git a/src/map.c b/src/map.c
index 26fce68..dd3139d 100644
--- a/src/map.c
+++ b/src/map.c
@@ -1952,7 +1952,7 @@
 	// when they are read back.
 	if (c == K_SPECIAL && what != 2)
 	{
-	    modifiers = 0x0;
+	    modifiers = 0;
 	    if (str[1] == KS_MODIFIER)
 	    {
 		modifiers = str[2];
diff --git a/src/mbyte.c b/src/mbyte.c
index 46d0392..0abb164 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -1607,7 +1607,7 @@
 {
     int		c;
 
-    // Need to convert to a wide character.
+    // Need to convert to a character number.
     if (*p >= 0x80)
     {
 	c = utf_ptr2char(p);
@@ -1762,7 +1762,7 @@
 }
 
 /*
- * Convert a UTF-8 byte sequence to a wide character.
+ * Convert a UTF-8 byte sequence to a character number.
  * If the sequence is illegal or truncated by a NUL the first byte is
  * returned.
  * For an overlong sequence this may return zero.
diff --git a/src/tag.c b/src/tag.c
index a22a259..e69a6d2 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -687,7 +687,7 @@
 		{
 		    VIM_CLEAR(tagstack[tagstackidx].user_data);
 		    tagstack[tagstackidx].user_data = vim_strnsave(
-			    tagp.user_data, tagp.user_data_end - tagp.user_data);
+			  tagp.user_data, tagp.user_data_end - tagp.user_data);
 		}
 
 		++tagstackidx;
diff --git a/src/testdir/README.txt b/src/testdir/README.txt
index 8bfe475..d3f11b2 100644
--- a/src/testdir/README.txt
+++ b/src/testdir/README.txt
@@ -49,3 +49,12 @@
 Mostly the same as writing a new style test.  Additionally, see help on
 "terminal-dumptest".  Put the reference dump in "dumps/Test_func_name.dump".
 
+
+OLD STYLE TESTS:
+
+There are a few tests that are used when Vim was built without the +eval
+feature.  These cannot use the "assert" functions, therefore they consist of a
+.in file that contains Normal mode commands between STARTTEST and ENDTEST.
+They modify the file and the result gets writtein in the test.out file.  This
+is then compared with the .ok file.  If they are equal the test passed.  If
+they differ the test failed.
diff --git a/src/testdir/test_put.vim b/src/testdir/test_put.vim
index e9d3fc5..6741af1 100644
--- a/src/testdir/test_put.vim
+++ b/src/testdir/test_put.vim
@@ -22,15 +22,13 @@
 
 func Test_put_char_block2()
   new
-  let a = [ 'a'->getreg(), 'a'->getregtype() ]
   call setreg('a', ' one ', 'v')
   call setline(1, ['Line 1', '', 'Line 3', ''])
   " visually select the first 3 lines and put register a over it
   exe "norm! ggl\<c-v>2j2l\"ap"
-  call assert_equal(['L one  1', '', 'L one  3', ''], getline(1,4))
+  call assert_equal(['L one  1', '', 'L one  3', ''], getline(1, 4))
   " clean up
   bw!
-  call setreg('a', a[0], a[1])
 endfunc
 
 func Test_put_lines()
@@ -38,7 +36,7 @@
   let a = [ getreg('a'), getregtype('a') ]
   call setline(1, ['Line 1', 'Line2', 'Line 3', ''])
   exe 'norm! gg"add"AddG""p'
-  call assert_equal(['Line 3', '', 'Line 1', 'Line2'], getline(1,'$'))
+  call assert_equal(['Line 3', '', 'Line 1', 'Line2'], getline(1, '$'))
   " clean up
   bw!
   eval a[0]->setreg('a', a[1])
@@ -53,7 +51,7 @@
   exec "4norm! \"=\<cr>P"
   norm! j0.
   norm! j0.
-  call assert_equal(['A1','A2','A3','4A','5A','6A'], getline(1,'$'))
+  call assert_equal(['A1','A2','A3','4A','5A','6A'], getline(1, '$'))
   bw!
 endfunc
 
diff --git a/src/undo.c b/src/undo.c
index 7c1e597..12f3e96 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -3520,7 +3520,8 @@
 	do_outofmem_msg((long_u)0);
 	return;
     }
-    ml_replace_len(curbuf->b_u_line_lnum, curbuf->b_u_line_ptr.ul_line, curbuf->b_u_line_ptr.ul_len, TRUE, FALSE);
+    ml_replace_len(curbuf->b_u_line_lnum, curbuf->b_u_line_ptr.ul_line,
+				     curbuf->b_u_line_ptr.ul_len, TRUE, FALSE);
     changed_bytes(curbuf->b_u_line_lnum, 0);
     curbuf->b_u_line_ptr = oldp;
 
diff --git a/src/version.c b/src/version.c
index 63de291..b071bf5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1547,
+/**/
     1546,
 /**/
     1545,
