diff --git a/src/if_py_both.h b/src/if_py_both.h
index 641c159..ed66254 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1097,12 +1097,6 @@
 	if (ret == NULL)
 	    return NULL;
 
-	if (PyDict_SetItemString(lookup_dict, ptrBuf, ret))
-	{
-	    Py_DECREF(ret);
-	    return NULL;
-	}
-
 	for (int idx = 0; idx < len; idx++)
 	{
 	    typval_T	*item_tv = TUPLE_ITEM(tuple, idx);
@@ -1113,7 +1107,13 @@
 		Py_DECREF(ret);
 		return NULL;
 	    }
-	    PyTuple_SET_ITEM(ret, idx, newObj);
+	    PyTuple_SetItem(ret, idx, newObj);
+	}
+
+	if (PyDict_SetItemString(lookup_dict, ptrBuf, ret))
+	{
+	    Py_DECREF(ret);
+	    return NULL;
 	}
     }
     else if (our_tv->v_type == VAR_DICT)
@@ -3440,7 +3440,7 @@
 	    return NULL;
 	}
 
-	PyTuple_SET_ITEM(tuple, i, item);
+	PyTuple_SetItem(tuple, i, item);
     }
 
     return tuple;
diff --git a/src/if_python.c b/src/if_python.c
index 594d7e5..5a5e6ea 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -202,6 +202,7 @@
 # define PyList_Size dll_PyList_Size
 # define PyList_Type (*dll_PyList_Type)
 # define PyTuple_GetItem dll_PyTuple_GetItem
+# define PyTuple_SetItem dll_PyTuple_SetItem
 # define PyTuple_New dll_PyTuple_New
 # define PyTuple_Size dll_PyTuple_Size
 # define PyTuple_Type (*dll_PyTuple_Type)
@@ -358,7 +359,6 @@
 static PyTypeObject* dll_PyList_Type;
 static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt);
 static int(*dll_PyTuple_SetItem)(PyObject *, PyInt, PyObject *);
-static int(*dll_PyTuple_SET_ITEM)(PyObject *, PyInt, PyObject *);
 static PyObject*(*dll_PyTuple_New)(PyInt size);
 static PyInt(*dll_PyTuple_Size)(PyObject *);
 static PyTypeObject* dll_PyTuple_Type;
@@ -549,7 +549,6 @@
     {"PyList_Type", (PYTHON_PROC*)&dll_PyList_Type},
     {"PyTuple_GetItem", (PYTHON_PROC*)&dll_PyTuple_GetItem},
     {"PyTuple_SetItem", (PYTHON_PROC*)&dll_PyTuple_SetItem},
-    {"PyTuple_SET_ITEM", (PYTHON_PROC*)&dll_PyTuple_SET_ITEM},
     {"PyTuple_New", (PYTHON_PROC*)&dll_PyTuple_New},
     {"PyTuple_Size", (PYTHON_PROC*)&dll_PyTuple_Size},
     {"PyTuple_Type", (PYTHON_PROC*)&dll_PyTuple_Type},
diff --git a/src/if_python3.c b/src/if_python3.c
index b2eb1d4..8b94e07 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -190,8 +190,6 @@
 # define PyTuple_New py3_PyTuple_New
 # define PyTuple_GetItem py3_PyTuple_GetItem
 # define PyTuple_SetItem py3_PyTuple_SetItem
-# undef PyTuple_SET_ITEM
-# define PyTuple_SET_ITEM py3_PyTuple_SET_ITEM
 # define PyTuple_Size py3_PyTuple_Size
 # define PySequence_Check py3_PySequence_Check
 # define PySequence_Size py3_PySequence_Size
@@ -377,7 +375,6 @@
 static Py_ssize_t (*py3_PyList_Size)(PyObject *);
 static PyObject* (*py3_PyTuple_New)(Py_ssize_t size);
 static int (*py3_PyTuple_SetItem)(PyObject *, Py_ssize_t, PyObject *);
-static int (*py3_PyTuple_SET_ITEM)(PyObject *, Py_ssize_t, PyObject *);
 static Py_ssize_t (*py3_PyTuple_Size)(PyObject *);
 static int (*py3_PySequence_Check)(PyObject *);
 static Py_ssize_t (*py3_PySequence_Size)(PyObject *);
@@ -595,7 +592,6 @@
     {"PyTuple_New", (PYTHON_PROC*)&py3_PyTuple_New},
     {"PyTuple_GetItem", (PYTHON_PROC*)&py3_PyTuple_GetItem},
     {"PyTuple_SetItem", (PYTHON_PROC*)&py3_PyTuple_SetItem},
-    {"PyTuple_SET_ITEM", (PYTHON_PROC*)&py3_PyTuple_SET_ITEM},
     {"PyTuple_Size", (PYTHON_PROC*)&py3_PyTuple_Size},
     {"PySequence_Check", (PYTHON_PROC*)&py3_PySequence_Check},
     {"PySequence_Size", (PYTHON_PROC*)&py3_PySequence_Size},
diff --git a/src/version.c b/src/version.c
index cb559cf..a40a187 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1251,
+/**/
     1250,
 /**/
     1249,
