diff --git a/src/buffer.c b/src/buffer.c
index 2a09a63..4f68882 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -475,7 +475,7 @@
 
     if (win != NULL
 #ifdef FEAT_WINDOWS
-	&& win_valid(win)	/* in case autocommands closed the window */
+	&& win_valid_any_tab(win) /* in case autocommands closed the window */
 #endif
 	    )
     {
@@ -581,7 +581,7 @@
 
     if (
 #ifdef FEAT_WINDOWS
-	win_valid(win) &&
+	win_valid_any_tab(win) &&
 #else
 	win != NULL &&
 #endif
diff --git a/src/proto/window.pro b/src/proto/window.pro
index ebd71ed..d82988e 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -4,6 +4,7 @@
 int win_split(int size, int flags);
 int win_split_ins(int size, int flags, win_T *new_wp, int dir);
 int win_valid(win_T *win);
+int win_valid_any_tab(win_T *win);
 int win_count(void);
 int make_windows(int count, int vertical);
 void win_move_after(win_T *win1, win_T *win2);
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim
index 4c4935b..cbe481c 100644
--- a/src/testdir/test_viminfo.vim
+++ b/src/testdir/test_viminfo.vim
@@ -425,3 +425,33 @@
 
   call delete('Xviminfo')
 endfunc
+
+func Test_viminfo_file_mark_tabclose()
+  tabnew Xtestfileintab
+  call setline(1, ['a','b','c','d','e'])
+  4
+  q!
+  wviminfo Xviminfo
+  sp Xviminfo
+  /^> .*Xtestfileintab
+  let lnum = line('.')
+  while 1
+    if lnum == line('$')
+      call assert_false(1, 'mark not found in Xtestfileintab')
+      break
+    endif
+    let lnum += 1
+    let line = getline(lnum)
+    if line == ''
+      call assert_false(1, 'mark not found in Xtestfileintab')
+      break
+    endif
+    if line =~ "^\t\""
+      call assert_equal('4', substitute(line, ".*\"\t\\(\\d\\).*", '\1', ''))
+      break
+    endif
+  endwhile
+
+  call delete('Xviminfo')
+  silent! bwipe Xtestfileintab
+endfunc
diff --git a/src/version.c b/src/version.c
index 9be301f..c2900c1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2212,
+/**/
     2211,
 /**/
     2210,
diff --git a/src/window.c b/src/window.c
index c6409e1..b015d1d 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1358,7 +1358,7 @@
 
 #if defined(FEAT_WINDOWS) || defined(PROTO)
 /*
- * Check if "win" is a pointer to an existing window.
+ * Check if "win" is a pointer to an existing window in the current tab page.
  */
     int
 win_valid(win_T *win)
@@ -1374,6 +1374,28 @@
 }
 
 /*
+ * Check if "win" is a pointer to an existing window in any tab page.
+ */
+    int
+win_valid_any_tab(win_T *win)
+{
+    win_T	*wp;
+    tabpage_T	*tp;
+
+    if (win == NULL)
+	return FALSE;
+    FOR_ALL_TABPAGES(tp)
+    {
+	FOR_ALL_WINDOWS_IN_TAB(tp, wp)
+	{
+	    if (wp == win)
+		return TRUE;
+	}
+    }
+    return FALSE;
+}
+
+/*
  * Return the number of windows.
  */
     int
