diff --git a/scribus/scribusXml.cpp b/scribus/scribusXml.cpp
index 191aa6e77..afb196e1b 100644
--- a/scribus/scribusXml.cpp
+++ b/scribus/scribusXml.cpp
@@ -160,14 +160,9 @@ QString ScriXmlDoc::WriteElem(ScribusDoc *doc, Selection* selection)
 	PageItem *item;
 	QString documentStr = "";
 	item = selection->itemAt(0);
-	QList<PageItem*> emG;
-	QMap<int, PageItem*> emMap;
-	emG.clear();
-	for (int cor = 0; cor < selection->count(); ++cor)
-	{
-		emMap.insert(doc->Items->indexOf(selection->itemAt(cor)), selection->itemAt(cor));
-	}
-	emG = emMap.values();
+
+	auto items = getItemsFromSelection(doc, selection);
+
 	double selectionWidth = 0;
 	double selectionHeight = 0;
 	if (selection->isMultipleSelection())
@@ -198,9 +193,9 @@ QString ScriXmlDoc::WriteElem(ScribusDoc *doc, Selection* selection)
 	retImg.fill( qRgba(0, 0, 0, 0) );
 	ScPainter *painter = new ScPainter(&retImg, retImg.width(), retImg.height(), 1, 0);
 	painter->setZoomFactor(scaleI);
-	for (int em = 0; em < emG.count(); ++em)
+	for (int em = 0; em < items.count(); ++em)
 	{
-		PageItem* embedded = emG.at(em);
+		PageItem* embedded = items.at(em);
 		painter->save();
 		painter->translate(-xp, -yp);
 		embedded->invalid = true;
@@ -234,3 +229,13 @@ ScElemMimeData* ScriXmlDoc::WriteToMimeData(ScribusDoc *doc, Selection *selectio
 	md->setScribusElem(WriteElem(doc, selection));
 	return md;
 }
+
+QList<PageItem*> ScriXmlDoc::getItemsFromSelection(ScribusDoc *doc, Selection* selection)
+{
+	QList<PageItem*> result;
+	QMap<int, PageItem*> items;
+	for (auto item: selection->items()) {
+	   items.insert(doc->Items->indexOf(item), item);
+	}
+	return items.values();
+}
diff --git a/scribus/scribusXml.h b/scribus/scribusXml.h
index 53e51237e..5d0a269c3 100644
--- a/scribus/scribusXml.h
+++ b/scribus/scribusXml.h
@@ -53,9 +53,11 @@ public:
 	
 	static QString WriteElem(ScribusDoc *doc, Selection *selection);
 	static ScElemMimeData* WriteToMimeData(ScribusDoc *doc, Selection *selection);
+private:
+	static QList<PageItem*> getItemsFromSelection(ScribusDoc *doc, Selection* selection);
 };
 
-#endif // _SCRIBUS_CONFIG_
+#endif
 
 
 
