diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index c560367..051dfac 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -433,8 +433,9 @@
 				This is zero in case it cannot be determined
 				(e.g. when the window object belongs to other
 				tab page).
- 	row, col (read-only)	On-screen window position in display cells.
+	row, col (read-only)	On-screen window position in display cells.
 				First position is zero.
+	tabpage (read-only)	Window tab page.
 
 The height attribute is writable only if the screen is split horizontally.
 The width attribute is writable only if the screen is split vertically.
@@ -490,7 +491,7 @@
 <							*:py3file*
 The |:py3file| command works similar to |:pyfile|.
 
-							*:py3do*
+							*:py3do* *E863*
 :[range]py3do {body}	Execute Python function "def _vim_pydo(line, linenr):
 			{body}" for each line in the [range], with the
 			function arguments being set to the text of each line
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 9539943..f78391c 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -31,6 +31,9 @@
 
 static int ConvertFromPyObject(PyObject *, typval_T *);
 static int _ConvertFromPyObject(PyObject *, typval_T *, PyObject *);
+static PyObject *WindowNew(win_T *, tabpage_T *);
+static PyObject *BufferNew (buf_T *);
+static PyObject *LineToString(const char *);
 
 static PyInt RangeStart;
 static PyInt RangeEnd;
@@ -1670,9 +1673,9 @@
 	/* For current tab window.c does not bother to set or update tp_curwin
 	 */
 	if (this->tab == curtab)
-	    return WindowNew(curwin);
+	    return WindowNew(curwin, curtab);
 	else
-	    return WindowNew(this->tab->tp_curwin);
+	    return WindowNew(this->tab->tp_curwin, this->tab);
     }
     return NULL;
 }
@@ -1754,6 +1757,7 @@
 {
     PyObject_HEAD
     win_T	*win;
+    TabPageObject	*tabObject;
 } WindowObject;
 
 static PyTypeObject WindowType;
@@ -1771,7 +1775,7 @@
 }
 
     static PyObject *
-WindowNew(win_T *win)
+WindowNew(win_T *win, tabpage_T *tab)
 {
     /* We need to handle deletion of windows underneath us.
      * If we add a "w_python*_ref" field to the win_T structure,
@@ -1804,6 +1808,8 @@
 	WIN_PYTHON_REF(win) = self;
     }
 
+    self->tabObject = ((TabPageObject *)(TabPageNew(tab)));
+
     return (PyObject *)(self);
 }
 
@@ -1815,9 +1821,29 @@
     if (this->win && this->win != INVALID_WINDOW_VALUE)
 	WIN_PYTHON_REF(this->win) = NULL;
 
+    Py_DECREF(((PyObject *)(this->tabObject)));
+
     DESTRUCTOR_FINISH(self);
 }
 
+    static win_T *
+get_firstwin(TabPageObject *tabObject)
+{
+    if (tabObject)
+    {
+	if (CheckTabPage(tabObject))
+	    return NULL;
+	/* For current tab window.c does not bother to set or update tp_firstwin
+	 */
+	else if (tabObject->tab == curtab)
+	    return firstwin;
+	else
+	    return tabObject->tab->tp_firstwin;
+    }
+    else
+	return firstwin;
+}
+
     static PyObject *
 WindowAttr(WindowObject *this, char *name)
 {
@@ -1847,10 +1873,20 @@
 	return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow,
 			(PyObject *) this);
     else if (strcmp(name, "number") == 0)
-	return PyLong_FromLong((long) get_win_number(this->win, firstwin));
+    {
+	if (CheckTabPage(this->tabObject))
+	    return NULL;
+	return PyLong_FromLong((long)
+		get_win_number(this->win, get_firstwin(this->tabObject)));
+    }
+    else if (strcmp(name, "tabpage") == 0)
+    {
+	Py_INCREF(this->tabObject);
+	return (PyObject *)(this->tabObject);
+    }
     else if (strcmp(name,"__members__") == 0)
-	return Py_BuildValue("[ssssssss]", "buffer", "cursor", "height", "vars",
-		"options", "number", "row", "col");
+	return Py_BuildValue("[sssssssss]", "buffer", "cursor", "height",
+		"vars", "options", "number", "row", "col", "tabpage");
     else
 	return NULL;
 }
@@ -2016,31 +2052,13 @@
     DESTRUCTOR_FINISH(self);
 }
 
-    static win_T *
-get_firstwin(WinListObject *this)
-{
-    if (this->tabObject)
-    {
-	if (CheckTabPage(this->tabObject))
-	    return NULL;
-	/* For current tab window.c does not bother to set or update tp_firstwin
-	 */
-	else if (this->tabObject->tab == curtab)
-	    return firstwin;
-	else
-	    return this->tabObject->tab->tp_firstwin;
-    }
-    else
-	return firstwin;
-}
-
     static PyInt
 WinListLength(PyObject *self)
 {
     win_T	*w;
     PyInt	n = 0;
 
-    if (!(w = get_firstwin((WinListObject *)(self))))
+    if (!(w = get_firstwin(((WinListObject *)(self))->tabObject)))
 	return -1;
 
     while (w != NULL)
@@ -2055,14 +2073,15 @@
     static PyObject *
 WinListItem(PyObject *self, PyInt n)
 {
+    WinListObject	*this = ((WinListObject *)(self));
     win_T *w;
 
-    if (!(w = get_firstwin((WinListObject *)(self))))
+    if (!(w = get_firstwin(this->tabObject)))
 	return NULL;
 
     for (; w != NULL; w = W_NEXT(w), --n)
 	if (n == 0)
-	    return WindowNew(w);
+	    return WindowNew(w, this->tabObject? this->tabObject->tab: curtab);
 
     PyErr_SetString(PyExc_IndexError, _("no such window"));
     return NULL;
@@ -3227,7 +3246,7 @@
     if (strcmp(name, "buffer") == 0)
 	return (PyObject *)BufferNew(curbuf);
     else if (strcmp(name, "window") == 0)
-	return (PyObject *)WindowNew(curwin);
+	return (PyObject *)WindowNew(curwin, curtab);
     else if (strcmp(name, "tabpage") == 0)
 	return (PyObject *)TabPageNew(curtab);
     else if (strcmp(name, "line") == 0)
diff --git a/src/if_python.c b/src/if_python.c
index 134e7f9..baa8cab 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -610,11 +610,6 @@
 }
 #endif /* DYNAMIC_PYTHON */
 
-static PyObject *BufferNew (buf_T *);
-static PyObject *WindowNew(win_T *);
-static PyObject *DictionaryNew(dict_T *);
-static PyObject *LineToString(const char *);
-
 static int initialised = 0;
 #define PYINITIALISED initialised
 
diff --git a/src/if_python3.c b/src/if_python3.c
index 18987b7..7ceb13d 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -611,9 +611,6 @@
 }
 #endif /* DYNAMIC_PYTHON3 */
 
-static PyObject *BufferNew (buf_T *);
-static PyObject *WindowNew(win_T *);
-static PyObject *LineToString(const char *);
 static PyObject *BufferDir(PyObject *, PyObject *);
 
 static int py3initialised = 0;
diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok
index 2f0d496..8defc5a 100644
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -333,14 +333,14 @@
 Current tab pages:
   <tabpage 0>(1): 1 windows, current is <window object (unknown)>
   Windows:
-    <window object (unknown)>(0): displays buffer <buffer test86.in>; cursor is at (954, 0)
+    <window object (unknown)>(1): displays buffer <buffer test86.in>; cursor is at (954, 0)
   <tabpage 1>(2): 1 windows, current is <window object (unknown)>
   Windows:
-    <window object (unknown)>(0): displays buffer <buffer 0>; cursor is at (1, 0)
+    <window object (unknown)>(1): displays buffer <buffer 0>; cursor is at (1, 0)
   <tabpage 2>(3): 2 windows, current is <window object (unknown)>
   Windows:
-    <window object (unknown)>(0): displays buffer <buffer a.1>; cursor is at (1, 0)
-    <window object (unknown)>(0): displays buffer <buffer 1>; cursor is at (1, 0)
+    <window object (unknown)>(1): displays buffer <buffer a.1>; cursor is at (1, 0)
+    <window object (unknown)>(2): displays buffer <buffer 1>; cursor is at (1, 0)
   <tabpage 3>(4): 4 windows, current is <window 0>
   Windows:
     <window 0>(1): displays buffer <buffer c.2>; cursor is at (1, 0)
diff --git a/src/testdir/test87.ok b/src/testdir/test87.ok
index 6997b7a..ccf4a6c 100644
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -322,14 +322,14 @@
 Current tab pages:
   <tabpage 0>(1): 1 windows, current is <window object (unknown)>
   Windows:
-    <window object (unknown)>(0): displays buffer <buffer test87.in>; cursor is at (930, 0)
+    <window object (unknown)>(1): displays buffer <buffer test87.in>; cursor is at (930, 0)
   <tabpage 1>(2): 1 windows, current is <window object (unknown)>
   Windows:
-    <window object (unknown)>(0): displays buffer <buffer 0>; cursor is at (1, 0)
+    <window object (unknown)>(1): displays buffer <buffer 0>; cursor is at (1, 0)
   <tabpage 2>(3): 2 windows, current is <window object (unknown)>
   Windows:
-    <window object (unknown)>(0): displays buffer <buffer a.1>; cursor is at (1, 0)
-    <window object (unknown)>(0): displays buffer <buffer 1>; cursor is at (1, 0)
+    <window object (unknown)>(1): displays buffer <buffer a.1>; cursor is at (1, 0)
+    <window object (unknown)>(2): displays buffer <buffer 1>; cursor is at (1, 0)
   <tabpage 3>(4): 4 windows, current is <window 0>
   Windows:
     <window 0>(1): displays buffer <buffer c.2>; cursor is at (1, 0)
diff --git a/src/version.c b/src/version.c
index b20a4f5..4fc77b2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    964,
+/**/
     963,
 /**/
     962,
