Index: scribus/scribusdoc.cpp
===================================================================
--- scribus/scribusdoc.cpp	(wersja 15654)
+++ scribus/scribusdoc.cpp	(kopia robocza)
@@ -6169,7 +6169,7 @@
 {
 	ParagraphStyle newStyle;
 	newStyle.setParent(name.isEmpty()? Style::INHERIT_PARENT : name);
-	itemSelection_ApplyParagraphStyle(newStyle, customSelection, true);
+    itemSelection_ApplyParagraphStyle(newStyle, customSelection);
 }
 
 
@@ -6861,6 +6861,7 @@
 
 void ScribusDoc::itemSelection_EraseParagraphStyle(Selection* customSelection)
 {
+
 	Selection* itemSelection = (customSelection!=0) ? customSelection : m_Selection;
 	assert(itemSelection!=0);
 	uint selectedItemCount=itemSelection->count();
@@ -6869,11 +6870,13 @@
 	UndoTransaction* activeTransaction = NULL;
 	if (selectedItemCount > 1)
 		activeTransaction = new UndoTransaction(undoManager->beginTransaction(Um::SelectionGroup, Um::IGroup, Um::ApplyTextStyle, tr( "remove direct paragraph formatting" ), Um::IFont));
+
 	for (uint aa = 0; aa < selectedItemCount; ++aa)
 	{
 		PageItem *currItem = itemSelection->itemAt(aa);
 //		int currItemTextCount = currItem->lastInFrame() + 1 - currItem->firstInFrame();
 //		if (currItemTextCount > 0 && ( appMode == modeEdit || !FRAMESELECTION_EDITS_DEFAULTSTYLE))
+
 		int currItemTextCount = currItem->itemText.length();
 		if ((currItemTextCount > 0) && (appMode == modeEdit))
 		{
@@ -6918,7 +6921,63 @@
 	changed();
 	regionsChanged()->update(QRectF());
 }
+void ScribusDoc::itemSelection_ResetParagraphStyle(Selection* customSelection)
+{
+    Selection* itemSelection = (customSelection!=0) ? customSelection : m_Selection;
+    assert(itemSelection!=0);
+    uint selectedItemCount=itemSelection->count();
+    if (selectedItemCount == 0)
+        return;
+    UndoTransaction* activeTransaction = NULL;
+    if (selectedItemCount > 1)
+        activeTransaction = new UndoTransaction(undoManager->beginTransaction(Um::SelectionGroup, Um::IGroup, Um::ApplyTextStyle, tr( "remove direct paragraph formatting" ), Um::IFont));
+    for (uint aa = 0; aa < selectedItemCount; ++aa)
+    {
+        PageItem *currItem = itemSelection->itemAt(aa);
+        int currItemTextCount = currItem->itemText.length();
 
+        ParagraphStyle oldStyle = currItem->itemText.defaultStyle();
+
+        if ((currItemTextCount == 0) || (appMode != modeEdit))
+        {
+            ParagraphStyle dstyle(currItem->itemText.defaultStyle());
+            dstyle.applyStyle(oldStyle);
+            currItem->itemText.setDefaultStyle(dstyle);
+        }
+        if (currItemTextCount > 0)
+        {
+            int start = currItem->asPathText() ? currItem->itemText.startOfItem(currItem->firstInFrame()) : 0;
+            int stop  = currItem->asPathText() ? currItem->itemText.endOfItem(currItem->lastInFrame()) :  currItemTextCount;
+            if (appMode == modeEdit)
+            {
+                start = currItem->itemText.startOfSelection();
+                stop = currItem->itemText.endOfSelection();
+                if (start >= stop)
+                    start = stop = qMax(0, qMin(currItem->itemText.length(), currItem->CPos));
+            }
+            for (int pos=start; pos < stop; ++pos)
+            {
+                if (currItem->itemText.text(pos) == SpecialChars::PARSEP)
+                {
+                    currItem->itemText.applyStyle(pos, oldStyle, true);
+                }
+            }
+            currItem->itemText.applyStyle(stop, oldStyle, true);
+            currItem->invalid = true;
+        }
+        if (currItem->asPathText())
+            currItem->updatePolyClip();
+        currItem->invalidateLayout();
+    }
+    if (activeTransaction)
+    {
+        activeTransaction->commit();
+        delete activeTransaction;
+        activeTransaction = NULL;
+    }
+    changed();
+    regionsChanged()->update(QRectF());
+}
 void ScribusDoc::itemSelection_ApplyParagraphStyle(const ParagraphStyle & newStyle, Selection* customSelection, bool rmDirectFormatting)
 {
 	Selection* itemSelection = (customSelection!=0) ? customSelection : m_Selection;
Index: scribus/scribusdoc.h
===================================================================
--- scribus/scribusdoc.h	(wersja 15654)
+++ scribus/scribusdoc.h	(kopia robocza)
@@ -919,6 +919,7 @@
 	void itemSelection_ApplyCharStyle(const CharStyle & newstyle, Selection* customSelection=0);
 	void itemSelection_SetCharStyle(const CharStyle & newstyle, Selection* customSelection=0);
 	void itemSelection_EraseParagraphStyle(Selection* customSelection=0);
+    void itemSelection_ResetParagraphStyle(Selection* customSelection=0);
 	void itemSelection_EraseCharStyle(Selection* customSelection=0);
 
 	void itemSelection_SetNamedParagraphStyle(const QString & name, Selection* customSelection=0);
Index: scribus/ui/propertiespalette.cpp
===================================================================
--- scribus/ui/propertiespalette.cpp	(wersja 15654)
+++ scribus/ui/propertiespalette.cpp	(kopia robocza)
@@ -4364,7 +4364,7 @@
 		return;
 	if (HaveDoc)
 	{
-		doc->itemSelection_EraseParagraphStyle();
+        doc->itemSelection_ResetParagraphStyle();
 		CharStyle emptyCStyle;
 		doc->itemSelection_SetCharStyle(emptyCStyle);
 	}
