diff --git a/sw/qa/core/data/ww8/pass/fdo66692-2.doc b/sw/qa/core/data/ww8/pass/fdo66692-2.doc new file mode 100644 index 000000000000..5042eeeb206c Binary files /dev/null and b/sw/qa/core/data/ww8/pass/fdo66692-2.doc differ diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index e21876d0d7bb..2077882e962b 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -2511,6 +2511,21 @@ void SwWW8ImplReader::StopApo() if (rBrush.GetColor().GetColor() != COL_AUTO) aBg = rBrush.GetColor(); + if (m_pLastAnchorPos.get()) + { + //If the last anchor pos is here, then clear the anchor pos. + //This "last anchor pos" is only used for fixing up the + //postions of things anchored to page breaks and here + //we are removing the last paragraph of a frame, so there + //cannot be a page break at this point so we can + //safely reset m_pLastAnchorPos to avoid any dangling + //SwIndex's pointing into the deleted paragraph + SwNodeIndex aLastAnchorPos(m_pLastAnchorPos->nNode); + SwNodeIndex aToBeJoined(aPref, 1); + if (aLastAnchorPos == aToBeJoined) + m_pLastAnchorPos.reset(); + } + //Get rid of extra empty paragraph pNd->JoinNext(); }