Index: Scribus/scribus/canvasmode_normal.cpp
===================================================================
--- Scribus/scribus/canvasmode_normal.cpp	(revision 13079)
+++ Scribus/scribus/canvasmode_normal.cpp	(working copy)
@@ -1014,6 +1014,20 @@
 	const unsigned SELECT_IN_GROUP = Qt::AltModifier;
 	const unsigned SELECT_MULTIPLE = Qt::ShiftModifier;
 	const unsigned SELECT_BENEATH = Qt::ControlModifier;
+	
+	/* OssiLehtinen: If we have an active selection and we click in its area, 
+	the current selection will be preserved even though another item is on 
+	 a higher level at the click location. */
+	bool oldItemUnderCursor = false;
+	PageItem * tempItem = m_canvas->itemUnderCursor(m->globalPos(), NULL, (m->modifiers() & SELECT_IN_GROUP));
+	while(tempItem)
+	{
+		if(m_doc->m_Selection->findItem(tempItem) >= 0) oldItemUnderCursor = true;
+		tempItem = m_canvas->itemUnderCursor(m->globalPos(), tempItem, (m->modifiers() & SELECT_IN_GROUP));
+	}
+	if(oldItemUnderCursor)
+		return true;
+		
 	QMatrix p;
 	PageItem *currItem;
 	m_canvas->m_viewMode.m_MouseButtonPressed = true;
