diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 32d8dad..01a361d 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -4004,6 +4004,7 @@
 
 		Each returned List item is a dictionary with the following
 		entries:
+			bufnr		buffer number.
 			changed		TRUE if the buffer is modified.
 			changedtick	number of changes made to the buffer.
 			hidden		TRUE if the buffer is hidden.
@@ -4011,7 +4012,6 @@
 			lnum		current line number in buffer.
 			loaded		TRUE if the buffer is loaded.
 			name		full path to the file in the buffer.
-			nr		buffer number.
 			options		dictionary of buffer local options.
 			signs		list of signs placed in the buffer.
 					Each list item is a dictionary with
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 5352630..16e2365 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -3931,7 +3931,7 @@
     if (dict == NULL)
 	return NULL;
 
-    dict_add_nr_str(dict, "nr", buf->b_fnum, NULL);
+    dict_add_nr_str(dict, "bufnr", buf->b_fnum, NULL);
     dict_add_nr_str(dict, "name", 0L,
 	    buf->b_ffname != NULL ? buf->b_ffname : (char_u *)"");
     dict_add_nr_str(dict, "lnum", buflist_findlnum(buf), NULL);
@@ -5001,7 +5001,7 @@
     if (dict == NULL)
 	return NULL;
 
-    dict_add_nr_str(dict, "nr", tp_idx, NULL);
+    dict_add_nr_str(dict, "tabnr", tp_idx, NULL);
 
     l = list_alloc();
     if (l != NULL)
@@ -5125,12 +5125,12 @@
     if (dict == NULL)
 	return NULL;
 
-    dict_add_nr_str(dict, "tpnr", tpnr, NULL);
-    dict_add_nr_str(dict, "nr", winnr, NULL);
+    dict_add_nr_str(dict, "tabnr", tpnr, NULL);
+    dict_add_nr_str(dict, "winnr", winnr, NULL);
     dict_add_nr_str(dict, "winid", wp->w_id, NULL);
     dict_add_nr_str(dict, "height", wp->w_height, NULL);
     dict_add_nr_str(dict, "width", wp->w_width, NULL);
-    dict_add_nr_str(dict, "bufnum", wp->w_buffer->b_fnum, NULL);
+    dict_add_nr_str(dict, "bufnr", wp->w_buffer->b_fnum, NULL);
 
 #ifdef FEAT_QUICKFIX
     dict_add_nr_str(dict, "quickfix", bt_quickfix(wp->w_buffer), NULL);
diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim
index ec1f538..1c88cf5 100644
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -17,7 +17,7 @@
     set tabstop&vim
     let b:editor = 'vim'
     let l = getbufinfo('%')
-    call assert_equal(bufnr('%'), l[0].nr)
+    call assert_equal(bufnr('%'), l[0].bufnr)
     call assert_equal(8, l[0].options.tabstop)
     call assert_equal('vim', l[0].variables.editor)
     call assert_notequal(-1, index(l[0].windows, bufwinid('%')))
@@ -46,25 +46,25 @@
     tabfirst
     let winlist = getwininfo()
     call assert_equal(5, len(winlist))
-    call assert_equal(winbufnr(2), winlist[1].bufnum)
+    call assert_equal(winbufnr(2), winlist[1].bufnr)
     call assert_equal(winheight(2), winlist[1].height)
-    call assert_equal(1, winlist[2].nr)
+    call assert_equal(1, winlist[2].winnr)
     if has('signs')
       call assert_equal('auto', winlist[0].options.signcolumn)
     endif
-    call assert_equal(2, winlist[3].tpnr)
+    call assert_equal(2, winlist[3].tabnr)
     call assert_equal('green', winlist[2].variables.signal)
     call assert_equal(winwidth(1), winlist[0].width)
     call assert_equal(w4_id, winlist[3].winid)
     let winfo = getwininfo(w5_id)[0]
-    call assert_equal(2, winfo.tpnr)
+    call assert_equal(2, winfo.tabnr)
     call assert_equal([], getwininfo(3))
 
     call settabvar(1, 'space', 'build')
     let tablist = gettabinfo()
     call assert_equal(2, len(tablist))
     call assert_equal(3, len(tablist[1].windows))
-    call assert_equal(2, tablist[1].nr)
+    call assert_equal(2, tablist[1].tabnr)
     call assert_equal('build', tablist[0].variables.space)
     call assert_equal(w2_id, tablist[0].windows[0])
     call assert_equal([], gettabinfo(3))
diff --git a/src/version.c b/src/version.c
index f4a340e..efca575 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2226,
+/**/
     2225,
 /**/
     2224,
