diff --git a/scribus/ui/outlinepalette.cpp b/scribus/ui/outlinepalette.cpp
index eba2f42..65788f9 100644
--- a/scribus/ui/outlinepalette.cpp
+++ b/scribus/ui/outlinepalette.cpp
@@ -150,9 +150,9 @@ void OutlineWidget::dropEvent(QDropEvent *e)
 					qFatal("OutlineWidget::dropEvent !itemPg 3");
 			}
 		}
-		if (itemPl->indexOfChild(it) != itemPl->childCount() - 1)
+		if (itemPl->indexOfChild(its.at(0)) <  itemPl->childCount() - idxs.size())
 		{
-			OutlineTreeItem *itemBe = dynamic_cast<OutlineTreeItem*>(itemPl->child(itemPl->indexOfChild(it) + 1));
+			OutlineTreeItem *itemBe = dynamic_cast<OutlineTreeItem*>(itemPl->child(itemPl->indexOfChild(its.at(0)) + idxs.size()));
 			if (!itemBe)
 				qFatal("OutlineWidget::dropEvent !itemBe");
 			if ((itemBe->type == 1) || (itemBe->type == 3) || (itemBe->type == 4))
@@ -164,7 +164,7 @@ void OutlineWidget::dropEvent(QDropEvent *e)
 				if (itemBe->PageItemObject->isGroupChild())
 				{
 					PageItem* group = itemBe->PageItemObject->Parent;
-					int d = group->groupItemList.indexOf(itemBe->PageItemObject);
+					int d = group->groupItemList.indexOf(itemBe->PageItemObject) + 1;
 					double xx = item->PageItemObject->xPos() - itemPar->PageObject->xOffset() + itemPg->PageObject->xOffset();
 					double yy = item->PageItemObject->yPos() - itemPar->PageObject->yOffset() + itemPg->PageObject->yOffset();
 					item->PageItemObject->setXYPos(xx, yy);
