diff --git a/scribus/plugins/scriptplugin/cmdtext.cpp b/scribus/plugins/scriptplugin/cmdtext.cpp
index 6c3b6dcb9..d0e5cb536 100644
--- a/scribus/plugins/scriptplugin/cmdtext.cpp
+++ b/scribus/plugins/scriptplugin/cmdtext.cpp
@@ -267,6 +267,28 @@ PyObject *scribus_getfontfeatures(PyObject* /* self */, PyObject* args)
 	return PyUnicode_FromString(item->currentCharStyle().fontFeatures().toUtf8());
 }
 
+PyObject *scribus_getlinkedtextframe(PyObject* /* self */, PyObject* args)
+{
+	char *Name = const_cast<char*>("");
+	if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+		return nullptr;
+	if (!checkHaveDocument())
+		return nullptr;
+	PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+	if (item == nullptr)
+		return nullptr;
+	if (!item->isTextFrame())
+	{
+		PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get linked frames of non-text frame.","python error").toLocal8Bit().constData());
+		return nullptr;
+	}
+
+	if (item->nextInChain() != nullptr)
+		return PyUnicode_FromString(item->nextInChain()->itemName().toUtf8());
+
+	Py_RETURN_NONE;
+}
+
 PyObject *scribus_getlinespace(PyObject* /* self */, PyObject* args)
 {
 	char *Name = const_cast<char*>("");
@@ -1415,6 +1437,7 @@ void cmdtextdocwarnings()
 	  << scribus_getcolumns__doc__
 	  << scribus_getfont__doc__
 	  << scribus_getfontfeatures__doc__
+	  << scribus_getlinkedtextframe__doc__
 	  << scribus_getfontsize__doc__
 	  << scribus_getframetext__doc__
 	  << scribus_getlinespace__doc__
diff --git a/scribus/plugins/scriptplugin/cmdtext.h b/scribus/plugins/scriptplugin/cmdtext.h
index 034aa126f..b1c302ae5 100644
--- a/scribus/plugins/scriptplugin/cmdtext.h
+++ b/scribus/plugins/scriptplugin/cmdtext.h
@@ -48,6 +48,18 @@ selected item is used.\n\
 /*! Get fontfeatures */
 PyObject *scribus_getfontfeatures(PyObject * /*self*/, PyObject* args);
 
+/*! docstring */
+PyDoc_STRVAR(scribus_getlinkedtextframe__doc__,
+QT_TR_NOOP("getLinkedTextFrame(page: str = None) -> str\n\
+\n\
+Return the next text frame in the chain or None\n\
+if it's the last frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the next frames in the chain */
+PyObject *scribus_getlinkedtextframe(PyObject * /*self*/, PyObject* args);
+
 /*! docstring */
 PyDoc_STRVAR(scribus_gettextcolor__doc__,
 	QT_TR_NOOP("getTextColor([\"name\"]) -> string\n\
diff --git a/scribus/plugins/scriptplugin/scriptplugin.cpp b/scribus/plugins/scriptplugin/scriptplugin.cpp
index aab82fa3b..afab3c345 100644
--- a/scribus/plugins/scriptplugin/scriptplugin.cpp
+++ b/scribus/plugins/scriptplugin/scriptplugin.cpp
@@ -358,6 +358,7 @@ PyMethodDef scribus_methods[] = {
 	{const_cast<char*>("getFillTransparency"), scribus_getfilltrans, METH_VARARGS, tr(scribus_getfilltrans__doc__)},
 	{const_cast<char*>("getFont"), scribus_getfont, METH_VARARGS, tr(scribus_getfont__doc__)},
 	{const_cast<char*>("getFontFeatures"), scribus_getfontfeatures, METH_VARARGS, tr(scribus_getfontfeatures__doc__)},
+	{const_cast<char*>("getLinkedTextFrame"), scribus_getlinkedtextframe, METH_VARARGS, tr(scribus_getlinkedtextframe__doc__)},
 	{const_cast<char*>("getFontNames"), (PyCFunction)scribus_fontnames, METH_NOARGS, tr(scribus_fontnames__doc__)},
 	{const_cast<char*>("getFontSize"), scribus_getfontsize, METH_VARARGS, tr(scribus_getfontsize__doc__)},
 	{const_cast<char*>("getFrameText"), scribus_getframetext, METH_VARARGS, tr(scribus_getframetext__doc__)},
