Index: Scribus/scribus/plugins/scriptplugin/cmdtext.cpp
===================================================================
--- Scribus/scribus/plugins/scriptplugin/cmdtext.cpp	(revision 14797)
+++ Scribus/scribus/plugins/scriptplugin/cmdtext.cpp	(working copy)
@@ -1121,6 +1121,33 @@
 	return PyBool_FromLong(0);
 }
 
+/*
+ * Updates items layout data.
+ * 6.3.2010: Ossi Lehtinen
+ */
+PyObject *scribus_updatelayoutdata(PyObject* /* self */, PyObject* args)
+{
+	char *Name = const_cast<char*>("");
+	char *Text;
+	if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+		return NULL;
+	if(!checkHaveDocument())
+		return NULL;
+	PageItem *currItem = GetUniqueItem(QString::fromUtf8(Name));
+	if (currItem == NULL)
+		return NULL;
+	if (!(currItem->asTextFrame()) && !(currItem->asPathText()))
+	{
+		PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot update layout data of non-text frame.","python error").toLocal8Bit().constData());
+		return NULL;
+	}
+
+	currItem->layout();
+	Py_RETURN_NONE;
+}
+
+
+
 /*! HACK: this removes "warning: 'blah' defined but not used" compiler warnings
 with header files structure untouched (docstrings are kept near declarations)
 PV */
Index: Scribus/scribus/plugins/scriptplugin/cmdtext.h
===================================================================
--- Scribus/scribus/plugins/scriptplugin/cmdtext.h	(revision 14797)
+++ Scribus/scribus/plugins/scriptplugin/cmdtext.h	(working copy)
@@ -441,4 +441,14 @@
 /*! Is PDF bookmark? */
 PyObject *scribus_ispdfbookmark(PyObject * /*self*/, PyObject* args);
 
+/*! docstring */
+PyDoc_STRVAR(scribus_updatelayoutdata__doc__,
+QT_TR_NOOP("updateLayoutData( [\"name\"])\n\
+\n\
+Updates the text frame \"name\"'s layout data so that getTextLines and such return up to date values. If \"name\" is\n\
+not given the currently selected Item is used.\n\
+"));
+/*! Insert text */
+PyObject *scribus_updatelayoutdata(PyObject * /*self*/, PyObject* args);
+
 #endif
Index: Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
===================================================================
--- Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp	(revision 14797)
+++ Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp	(working copy)
@@ -507,6 +507,7 @@
 // 	{const_cast<char*>("getChild"), (PyCFunction)scribus_getchild, METH_KEYWORDS, tr(scribus_getchild__doc__)},
 	// by Christian Hausknecht
 	{const_cast<char*>("duplicateObject"), scribus_duplicateobject, METH_VARARGS, tr(scribus_duplicateobject__doc__)},
+	{const_cast<char*>("updateLayoutData"), scribus_updatelayoutdata, METH_VARARGS, tr(scribus_updatelayoutdata__doc__)},
 	// Internal methods - Not for public use
 	{const_cast<char*>("retval"), (PyCFunction)scribus_retval, METH_VARARGS, const_cast<char*>("Scribus internal.")},
 	{const_cast<char*>("getval"), (PyCFunction)scribus_getval, METH_NOARGS, const_cast<char*>("Scribus internal.")},
