--- story.cpp	2007-04-29 14:54:45.000000000 -0500
+++ story.cpp.storyinit.cpp	2007-04-29 14:55:08.000000000 -0500
@@ -2789,11 +2789,15 @@
 		{
 			Editor->currentParaStyle = currItem->textAlignment;
 			//Moved to separate method to ensure consistency for #5484 - Michael Koren 2007-4-21
-			setEditorPropsFromFrame();
-			c = 0;
-			StrokeTools->SetShade(currItem->ShTxtStroke);
-			FillTools->SetShade(currItem->ShTxtFill);
-			QString b = currItem->TxtFill;
+			//Added test to initialize values from style instead of frame when appropriate
+			if ((Editor->currentParaStyle > 4) && (!currDoc->docParagraphStyles[Editor->currentParaStyle].Font.isEmpty()))
+				setEditorPropsFromStyle();
+			else
+				setEditorPropsFromFrame();
+			//Draw these from editor rather than frame to catch both cases above - taken from below
+			StrokeTools->SetShade(Editor->CurrTextStrokeSh);
+			FillTools->SetShade(Editor->CurrTextFillSh);
+			QString b = Editor->CurrTextFill;
 			if ((b != CommonStrings::None) && (!b.isEmpty()))
 			{
 				c++;
@@ -2806,7 +2810,7 @@
 			}
 			FillTools->SetColor(c);
 			c = 0;
-			b = currItem->TxtStroke;
+			b = Editor->CurrTextStroke;
 			if ((b != CommonStrings::None) && (!b.isEmpty()))
 			{
 				c++;
@@ -2818,17 +2822,17 @@
 				}
 			}
 			StrokeTools->SetColor(c);
-			AlignTools->SetAlign(currItem->textAlignment);
-			StyleTools->SetKern(currItem->ExtraV);
-			StyleTools->SetStyle(currItem->TxTStyle);
-			StyleTools->SetShadow(currItem->TxtShadowX, currItem->TxtShadowY);
-			StyleTools->setOutline(currItem->TxtOutline);
-			StyleTools->setUnderline(currItem->TxtUnderPos, currItem->TxtUnderWidth);
-			StyleTools->setStrike(currItem->TxtStrikePos, currItem->TxtStrikeWidth);
-			FontTools->SetSize(currItem->fontSize());
-			FontTools->SetFont(currItem->font());
-			FontTools->SetScale(currItem->TxtScale);
-			FontTools->SetScaleV(currItem->TxtScaleV);
+			StyleTools->SetKern(Editor->CurrTextKern);
+			StyleTools->SetStyle(Editor->CurrentStyle);
+			StyleTools->SetShadow(Editor->CurrTextShadowX, Editor->CurrTextShadowY);
+			StyleTools->setOutline(Editor->CurrTextOutline);
+			StyleTools->setUnderline(Editor->CurrTextUnderPos, Editor->CurrTextUnderWidth);
+			StyleTools->setStrike(Editor->CurrTextStrikePos, Editor->CurrTextStrikeWidth);
+			FontTools->SetSize(Editor->CurrFontSize);
+			FontTools->SetFont(Editor->CurrFont);
+			FontTools->SetScale(Editor->CurrTextScale);
+			FontTools->SetScaleV(Editor->CurrTextScaleV);
+			AlignTools->SetAlign(Editor->currentParaStyle);
 		}
 		if (Editor->CurrentStyle & 4)
 		{
@@ -2843,7 +2847,10 @@
 		Editor->setStyle(Editor->CurrentStyle);
 		firstSet = true;
 		updateUnicodeActions();
-		return;
+		//Continue to next part if a paragraph exists - hack to correctly initialize properties from first paragraph
+		if ((p >= static_cast<int>(Editor->StyledText.count())) || (Editor->StyledText.count() == 0))
+			return;
+		c = 0;
 	}
 	chars = Editor->StyledText.at(p);
 	Editor->currentParaStyle = Editor->ParagStyles[p];
